2020-2021-1 20209303《Linux内核原理与分析》第五周作业
2020-2021-1 20209303《Linux内核原理与分析》第五周作业
系统调用的三层机制
用户态、内核态和中断
用户态。较低的执行级别,只能访问一部分内存,只能执行一部分指令。
内核态。高级执行级别,可以访问任意物理内存,可以执行特权指令。
中断。系统从用户态进入内核态的主要方式。有硬件中断和软中断。系统调用就是通过软中断进入内核态。
Intel x86 CPU有4种不同的执行级别,分别是0、1、2、3,数字越小,特权越高,Linux操作系统中只是采用了其中0和3两个特权级别,分别对应内核态和用户态。
API和系统调用
API(应用程序编程接口)就是系统调用的库函数,是一个函数定义。
系统调用是通过软中断向内核发出了中断请求,int指令的执行就会触发一个中断请求,一般每个系统调用对应一个系统调用的封装例程,函数库再用这些封装历程定义出给程序员调用的API。这样把系统调用最终封装成方便程序员使用的库函数。
实验:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
参考文章:
1