Roc*_*der 15 c operating-system process system-calls
系统调用如何工作?
系统调用期间会发生什么操作?
有各种各样的系统调用open , read, write, socket等我想知道他们一般如何工作?
hac*_*cks 26
简而言之,这是系统调用的工作原理:
- 首先,用户应用程序设置系统调用的参数.
- 参数全部设置完毕后,程序执行"系统调用"指令.
该指令导致异常:导致处理器跳转到新地址并开始在那里执行代码的事件.
新地址处的指令保存用户程序的状态,找出所需的系统调用,调用实现该系统调用的内核中的函数,恢复用户程序状态,并将控制权返回给用户程序.
调用open()系统调用的用户应用程序的直观说明:

应该注意的是,系统调用接口(它用作操作系统可用的系统调用的链接)调用OS内核中的预期系统调用,并返回系统调用的状态和任何返回值.调用者不需要知道系统调用的实现方式或执行期间的操作.
另一个例子:AC程序调用printf()库调用,它调用write()系统调用

有关更详细的说明,请参阅CH-1中的第1.5.1节和来自操作系统概念的 CH-2中的第2.3节.