分析system_call中断处理过程

  分析system_call中断处理过程
沙雨济
原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 
一 、 实验内容
使用gdb跟踪分析一个系统调用内核函数(上周所选) ,从system_call开始到iret结束之间的整个过程,并画出简要准确的流程图。
 
二 、实验过程
首先进入实验楼环境,进入LinuxKernel 文件夹,更新 menu 文件。
 

然后进入menu文件夹,test.c文件进行函数添加。
 

在如图所示处进行函数添加,具体操作如下。
 
 

 

然后开始进行make rootfs,但是运行出现错误,修改了两次仍无法运行(待修改)
 
 

三 、实验总结
 

系统调用的过程:通常,在OS的核心中都设置了一组用于实现各种系统功能的子程序(过程),并将它们提供给用户调用。每当用户在程序中需要OS提供某种服务时,变可利用一条系统调用命令,去调用系统过程。它一般运行在系统态;通过中断进入;返回时通常需要重新调度(因此不一定直接返回到调用过程)。 
   Linux系统调用的流程非常简单,它由0x80号中断进入系统调用入口,通过使用系统调用表保存系统调用服务函数的入口地址来实现。
 
posted @ 2015-05-03 19:59  zumer  阅读(191)  评论(0编辑  收藏  举报