系统调用如何工作?
系统调用期间会发生什么操作?
有各种系统调用,如open , read, write, socket
等。我想知道他们一般如何工作?
答案 0 :(得分:22)
简而言之,这就是系统调用的工作原理:
- 首先,用户应用程序设置系统调用的参数。
- 参数设置完毕后,程序执行"系统调用"指令。
此指令导致异常:导致处理器跳转到新地址并开始执行代码的事件。
< / LI>新地址的说明保存用户程序的状态,找出你想要的系统调用,调用实现该系统调用的内核中的函数,恢复用户程序状态,然后返回控制回用户程序。
调用open()
系统调用的用户应用程序的直观说明:
应该注意,系统调用接口(它作为操作系统可用的系统调用的链接)调用OS内核中的预期系统调用,并返回系统调用的状态和任何返回值。 调用者无需了解系统调用的执行方式或执行期间的操作
另一个例子:一个C程序调用{{1}}库调用,调用printf()
系统调用
有关更详细的说明,请阅读CH-1中的第1.5.1节和来自Operating System Concepts的CH-2中的第2.3节。