【发布时间】:2011-01-18 23:09:54
【问题描述】:
当线程通过引发中断 80 进行系统调用时(详细)会发生什么? Linux 对线程的堆栈和其他状态做了什么工作?对处理器进行了哪些更改以使其进入内核模式?运行中断处理程序后,如何将控制权恢复到调用进程?
如果系统调用不能快速完成怎么办:例如从磁盘读取。中断处理程序如何放弃控制权,以便处理器在加载数据时执行其他操作,然后如何再次获得控制权?
【问题讨论】:
-
我想一个很好的练习是检查源代码。也许从内核 0.0.1 开始并向上移动。
-
现在还有其他几种方法可以进行系统调用。您可以对特殊映射的内存页进行常规函数调用。您可以使用 SYSENTER 或 SYSCALL 指令。
标签: linux operating-system linux-kernel