扒开系统调用的三层皮(下)

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

1.给MenuOS增加time和time-asm命令

步骤

  • rm menu -rf //强制删除
  • git clonehttp://github.com/menging/menu.git // 克隆相关信息到menu
  • cd menu
  • make rootfs //自动编译,自动生成根文件系统,还能自动启动menuOS
  •  

2.使用gdb跟踪系统调用内核函数sys_time

  • qemu -kernel linux-3.18.6/arch/x86/bzImage -initrd rootfs.img -s -S
  • gdb
  • file linux-3.18.6/vmlinux
  • target remote:1234
  • 设置断点
  • 使用s进行单步的运行

3.系统调用在内核代码中的处理过程

  

系统调用的初始化:

4.实验:分析system_call中断处理过程

将getpid添加到menu中

首先在test.c的main函数中添加MenuConfig和相应函数

测试添加成功

调试过程如system_time,故不再重复

从system_call到iret可以用下图表示

 

 

posted @ 2016-03-27 09:54  pottermqy  阅读(227)  评论(0编辑  收藏  举报