操作系统为用户态进程与硬件设备进行交
互提供了一组接口——系统调用
系统调用完成了下述功能:
a.把用户从底层的硬件编程中解放出来
b.极大的提高了系统的安全性
c.使用户程序具有可移植性
? ? 我们在编程时通过系统调用可以避免直接对硬件以及内核部分内存的访问。这样可以避免大多数的认为失误导致的系统挂掉,大大增加了系统的安全性。
? ? 系统调用的访问是通过内核软中断与内核进行交互的,每一个系统调用都有一个明确的系统调用号,当应用程序进行系统调用时,就会根据此系统调用号与内核进行连接。系统调用的流程如下:
? ? a.当用户态进程调用一个系统调用时, CPU切换到内核态并开始执行一个内核函数。
? ? b.在Linux中是通过执行int $0x80来执行系统调用的,这条汇编指令产生向量为128的编程异常.
下面分析一个系统调用的例子:
点击(此处)折叠或打开