系统调用是程序如何从操作系统内核请求服务。
它们可以发生在用户模式和内核模式中。
有什么区别?
例如:
- 高架
- 系统时间
系统调用是程序如何从操作系统内核请求服务。
它们可以发生在用户模式和内核模式中。
有什么区别?
例如:
系统调用是您在应用程序(“用户模式”)和内核之间转换的方式。
系统调用比普通函数调用慢,但来自英特尔和 AMD 的较新的 x86 芯片有一个特殊的sysenter
/syscall
操作码,使其只需一百纳秒左右,给予或接受。
@Leo,
您能否详细说明在内核空间中进行系统调用时的变化?为了更好地理解 Linux 内核,它是用 C 和汇编语言编写的
请注意,系统调用只是用户空间和内核空间之间的接口。当您需要一些计算机资源(文件、网络……)时,您要求内核将其提供给您(在幕后您要求内核运行内核代码,由内核负责)。
系统调用的开销是您需要执行 CPU 中断。正如 Will 提到的,它的时间很大程度上取决于 CPU 类型。