Linux之系统调用
1、背景
在应用开发中,我们经常会去操作IO设备,文件,网络,内存等,基本上都是通过高级语音(C/C++,JAVA等)提供的一些标准库或API去操作,那这些是怎么和操作系统联系在一起的呢?答案就是今天的主角–系统调用。
这里我们只讨论:
硬件: Arm64
系统: Linux系统 (Kernel-5.15-rc1)
高级语言: C (glibc-2.34)
模式: 64位 (即未定义CONFIG_COMPAT)
2、什么是系统调用
Linux系统分为内核态和用户态,两者是相互隔离的。为了防止各种应用程序可能对系统资源的破坏,用户态的应用程序是没有权限直接去访问系统资源的,当需要访问时,就需要通过系统调用。
系统调用是内核提供给用户态应用程序的一系列统一接口,标准库或API在系统调用的基础上做了进一步抽象和封装。用户态的应用程序可以直接进行系统调用,也可以通过标准库或API来调用
......
作者: Shell