系统调用和函数调用的区别

Posted tianzeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统调用和函数调用的区别相关的知识,希望对你有一定的参考价值。

系统调用

  操作系统服务的编程接口

  通常由高级语言编写(C或C++)

  程序访问通常通过高层次 的API接口(C标准库的库函数)而不是直接进行系统调用

  每个系统调用对应一个系统调用编号

系统调用与函数调用的区别

系统调用

  1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备

  2.依赖于内核,不保证移植性

  3.在用户空间和内核上下文环境间切换,开销较大

  4. 是操作系统的一个入口点

函数调用

  1.使用CALL和RET指令,调用时没有堆栈切换

  2.平台移植性好

  3.属于过程调用,调用开销较小

  4.一个普通功能函数的调用

以上是关于系统调用和函数调用的区别的主要内容,如果未能解决你的问题,请参考以下文章

系统调用和函数调用的区别

C库函数和系统调用的区别

linux系统调用和库函数调用的区别

第二篇:库函数和系统调用的区别

linux操作系统 啥是系统调用?啥是库函数?二者有何区别?

函数调用和软中断调用的区别