区分应用程序编程接口(API)和系统调用。
让我们学习一下应用程序编程接口。
应用程序编程接口
我们知道,多个设备和应用程序之间共享数据。一些设备包括在线预订,一些在预订系统中。
API(应用程序编程接口)用于在设备和应用程序之间建立连接。但是,它是一个接口,它接收用户的请求,并通知系统需要做什么,并将响应返回给用户。
示例
考虑一个拥有多家航空公司信息的在线旅行社。旅行社与航空公司的 API 进行交互。
应用程序接口接收客户预订座位以及从旅行服务到航空公司系统选择餐食的请求。然后,API 将航空公司的响应传递回在线旅行社,他们将详细信息显示给用户。
这是一个 API 在现实世界中的应用示例。
系统调用
系统调用提供了一个用户程序和操作系统之间的接口。
当用户想要向操作系统发出指令时,它将通过系统调用来实现。或者用户程序可以通过系统调用访问操作系统的一部分内核。
它是一种程序化方式,计算机程序通过它向操作系统内核请求服务。
程序以两种模式执行,如下所示:
用户模式 - 无法访问任何硬件资源,仅执行用户操作。
内核模式 - 可以访问硬件资源,如 RAM、打印机。
计算机中的处理器根据处理器上运行的代码类型在两种模式之间切换。在用户模式下运行的进程无法访问为操作系统保留的虚拟地址。
当操作系统运行用户应用程序(例如处理文本编辑器)时,系统处于用户模式。当应用程序请求操作系统的帮助或发生中断或系统调用时,就会发生从用户模式到内核模式的转换。
在用户模式下,模式位设置为 1。当程序需要任何硬件资源时,它需要向内核发出调用。
通过系统调用,程序将切换到内核。它将与内核模式下的硬件资源一起发生。在硬件资源工作编译完成后,它将再次回到用户模式。只有在需要硬件时,它才会进入内核模式。
下图显示了操作系统中系统调用的结构:
出于安全原因,用户应用程序不允许访问硬件资源,当它们需要进行任何 I/O 或需要一些内存时,它会请求操作系统提供所有这些资源。此请求是通过系统调用发出的。
差异
应用程序编程接口(API)和系统调用的主要区别如下:
应用程序编程接口 | 系统调用 |
---|---|
API 是一组协议、例程和函数,允许在各种应用程序和设备之间交换数据。 | 系统调用允许程序向内核请求服务。 |
API 中定义各种组件之间通信方法的协议和函数。 | 这是一种方法,允许程序向操作系统的内核请求服务。 |
它可以是基于 Web 的系统、操作系统、数据库或软件库。 | 它提供了一个用户程序和操作系统之间的接口。 |