第五周——扒开系统调用的“三层皮”(下)

【洪韶武 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 】

第五周 扒开系统调用的“三层皮”(下)

一、给MenuOS增加time和time-asm命令


 

更新menu代码到最新版本,在main函数中增加MenuConfig,增加对应点time函数和timeasm函数,Make rootfs。

二、实验过程


 

  • 执行rm menu -rf,强制删除原有的menu文件夹,使用git命令更新menu代码至最新

  • 在main函数中增加MenuConfig和详细函数

  • Make rootfs

  • 使用help查看系统调用

  • 调试过程

 

三、总结分析


 

①Entry(system-call)
②save-all保护现场
③call *sys-call-table(,%eax,4),调用分度表,找到对应的系统调用
④syscall- exit检查是否需要跳转,若不需要,执行⑤,需要执行⑥
⑤restore-all恢复现场,然后iret结束
⑥work-pending然后进行work-notifysig处理信号(或者work-resched处理调度,然后call schedule)最后返回restore-all,然后iret结束。

 

posted @ 2016-03-27 22:45  5219hsw  阅读(146)  评论(0编辑  收藏  举报