验证linux下系统调用

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

l操作系统为了保证系统的稳定性、安全性等对程序的执行环境进行了分级,linux下有两个等级,0级和3级,0级有最高权限,3级有较低的权限,绝大多数的程序的多数时间是运行在3级状态下,当有些指令需要比较高的权限的时候就会通过中断来进行执行特权指令。

linux下的中断列表:http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/syscall_32.tbl 点击打开链接

为了方便程序员的使用,系统对系统调用进行了封装,一般程序员看到的都是API,并且被封装到线程的函数库中。 程序员看到的是API,实际使用的是中断处理函数,而中断向量就是将API和中断处理函数结合起来。  

下面图中是使用两种方法进行系统调用,查看当前系统的pid,首先是通过汇编进行实现并打印,然后打印直接调用库函数打印。

验证linux下系统调用_第1张图片

下图是程序的编译并执行的结果:

验证linux下系统调用_第2张图片

由于中断向量是最底层的函数了,所以库函数 是调用中断向量来实现的具体功能,详细的验证可以使用gcc进行追踪调试获得。



你可能感兴趣的:(linux内核源代码学习)