许松原创,转载请注明出处。
《Linux内核分析》MOOC课程 http://mooc.study.163.com/course/USTC-1000029000
上一节课程展示了如何用库函数API和C内嵌汇编代码完成同一个系统调用,本次将会在其基础上对system_call中断处理过程进行分析。
准备工作:
首先根据视频指导将上次的系统调用集成到MenuOS中,并额外添加ls命令(这里不再提供代码,参考上篇博文以及课程指导可以很容易做出):
红框中为创建文件夹之前根目录的文件列表,蓝框部分执行创建命令,绿框部分则是结果,可以看到命令顺利集成到MenuOS中了。
分析system_call:
在对start_kernel的分析时,我们曾经看到过他所调用的个函数:trap_init()。这个函数位于x86/kernel/traps.c第792行,在这个函数中,我们第一次看到了system_call,位于第834行的宏之中&#