1 .什么是系统调用APP程序通过系统调用请求操作系统服务
APP应用不能直接申请系统资源。 必须通过系统调用向操作系统发出服务请求,由操作系统代为完成。 这保证了系统的稳定性和安全性。
系统调用分为设备管理、文件管理、过程控制、过程通信、内存管理
系统调用的相关处理均处于核心状态
2 .系统调用与库函数的差异库函数可以是也可以不是封装的系统调用。 APP应用程序可能发出系统调用,而库函数可能发出系统调用。
高级语言被编译成汇编语言,汇编语言指令可能需要发出系统调用请求。
3 .系统调用背后的进程
在linux上,系统调用实际上是与0x80号中断对应的中断处理程序的子程序
系统调用陷入命令的是int0x80
' int0x80;' 在中断正在运行的操作之前,APP应用层将执行以下操作:
1 .为寄存器EAX分配系统呼叫号码;
2 .将系统调用所需的参数按顺序分配给寄存器EBX、ECX、EDX等。
这样,当发生0x80中断时,系统调用所需的所有信息都将通过这些寄存器传递给中断处理程序。
系统调用处理
进入80号中断处理程序后,根据系统呼叫号码选择相应的中断处理子程序
4 .总结