- 系统内核中自带了一些实现某些系统功能的子程序,称为系统调用。是内核提供给应用程序的接口,是操作系统的一部分。
- 比如C语言的库函数fread,对应调用的就是系统的系统调用read。
- 为了执行内核的系统功能,当进行系统调用,CPU会从用户态陷入内核态,也就是能进行一些特权操作,比如I/O操作,修改寄存器等,系统调用完,再返回到用户态。
- 操作系统中的状态分为管态(核心态)和目态(用户态),用户程序只在用户态下运行,有时需要访问系统核心功能,这时通过系统调用接口使用系统调用。
- 操作系统为每个系统调用提供的一个整型编号,比如AMD64 Linux平台约定在进行系统调用时使用rax寄存器存放系统调用编号,同时约定使用rdi, rsi, rdx, r10, r8和r9来传递前6个系统调用参数。