请问我对系统调用的理解是否正确?

我最近在学操作系统,我想请问一下我对系统调用的理解是否正确,下面是我的理解:
系统调用在POSIX上可以查到有很多英文名,这些名字和C语言的一些函数可能重名,但其实它们都只是一段包含中断的汇编代码

阅读 1.4k
3 个回答

你理解的没错,系统调用就是操作系统内核提供的一组接口,可以让程序请求执行一些特殊操作,比如文件 I/O、进程控制、内存管理等。普通的程序无法直接执行这些操作,因为它们涉及到操作系统的敏感部分和硬件控制。系统调用通常是一段汇编代码,通过中断或特定指令的方式将控制权从用户空间切换到内核空间,然后内核执行所请求的操作,并把结果返回给用户空间程序。POSIX 是一组操作系统接口标准,定义了一组系统调用和库函数。

这个理解没错,但是比较肤浅。系统调用的本质是提升特权级,使得操作系统能够为3特权级提供服务。中断、syscall、包装函数,都是表相,只是完成这件事的手段而已。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏