- 系统调用
在计算机中,系统调用(system call),又称为系统呼叫,指运行在用户空间(用户态)的程序向操作系统内核请求需要更高权限运行的服务。系统调用提供了用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态执行。如设备IO操作、进程间通信。
- API
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
- 系统调用与API
- API侧重于向上层提供服务,而系统调用则侧重于通过软中断向下层的内核发出一个明确的请求。API属于用户态,而系统调用属于内核态。
- 一般来说,操作系统所提供的API库都会遵循一定的标准,以实现应用程序在不同的系统之上的可移植性。标准规定了API向上提供的接口,至于API的功能如何实现,各个操作系统可以有所不同。
- API是提供给应用程序的接口,其实现的功能不仅仅只是底层的服务和资源,还包括封装了其他的应用程序,因此,API和系统调用没有必然的联系。第一:一个API可以不调用任何系统调用,只提供用户态的服务(如数学运算的函数)。第二:一个API可能调用多个系统调用。第三:多个API可以调用封装了不同功能的同一系统调用。