API

API(Application Programming Interface),应用程序接口。

开发人员可以直接实现和调用API中的接口来完成自己想要的功能而无需了解更为底层或者复杂的实现细节。

那么API有什么作用呢?

首先需要明确一个概念:系统调用。

计算机的各种资源是有限的,进程不能直接访问这些资源,必须通过操作系统的控制。

操作系统为这些进程访问系统资源提供了唯一入口。这个入口就是系统调用(System call)。

通过系统调用,用户进程可以和硬件设备交互。

例如,Linux系统,从上到下是这样一种结构:

用户进程->系统调用->Linux内核子系统->硬件。

那么API与系统调用有什么联系与区别呢?

API(应用编程接口)侧重于向上层提供给定的服务,而系统调用则侧重于通过软中断向下层的内核发出一个明确的请求。API属于用户态,而系统调用属于内核态。

API和系统调用没有必然的联系。第一:一个API可以不调用任何系统调用,只提供用户态的服务(如数学运算的函数)。第二:一个API可能调用多个系统调用。第三:多个API可以调用封装了不同功能的同一系统调用。

当一个应用程序需要跟底层硬件交互时,就会通过API内的系统调用跟底层交互。也就是说此时应用程序是通过 API->系统调用->os->底层的方式来完成整个功能的。

这时我们就可以说API(库函数)是用户进程与内核的桥梁。

   

原文地址:https://www.cnblogs.com/cuglkb/p/5710387.html