系统调用
操作系统服务的编程接口
通常由高级语言编写(C或C++)
程序访问通常通过高层次 的API接口(C标准库的库函数)而不是直接进行系统调用
每个系统调用对应一个系统调用编号
系统调用与函数调用的区别
系统调用
1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备
2.依赖于内核,不保证移植性
3.在用户空间和内核上下文环境间切换,开销较大
4. 是操作系统的一个入口点
函数调用
1.使用CALL和RET指令,调用时没有堆栈切换
2.平台移植性好
3.属于过程调用,调用开销较小
4.一个普通功能函数的调用
原文地址:https://www.cnblogs.com/tianzeng/p/9692418.html
时间: 2024-10-01 05:14:50