2020-2021-1 20209311《Linux内核原理与分析》第六周作业
作业信息
作业正文
一、实验五 分析system_call中断处理过程
1.实验过程
删除并重新git新版本的menu文件夹,修改源文件,添加getPid命令。
重新编译后,打开系统。
进行测试。
使用gdb分析系统调用内核函数。
2.实验分析
系统通过 int 0x80从用户态进入内核态,在这个过程中系统先保存了中断环境,然后执行系统调用函数。system_call() 函数通过系统调用号查找系统调用表 sys_cal_table 来查找到具体的系统调用服务进程。在执行完系统调用后在执行 iret 之前,内核做了一系列检查,用于检查是否有新的中断产生。如果没有新的中断,则通过已保存的系统中断环境返回用户态。这样就完成了一个系统调用过程。