分享

清华训练营悟道篇之操作系统的调用接口

 芥子c1yw3tb42g 2024-05-15 发布于陕西

API与ABI

API (Application Programming Interface)定义了源码级(如 C 语言)函数的参数,参数的类型,函数的返回值等。API 是用来约束编译器 (Compiler) 的,给编译器的一些指令,它规定了源代码的规范。API 与编程语言相关,如 libc 是基于 C 语言编写的标准库,那么基于 C 的应用程序就可以通过编译器建立与 libc 的联系,并能在运行中正确访问 libc 中的函数。

ABI (Application Binary Interface)定义了二进制机器代码级别的规则,主要包括基本数据类型、通用寄存器的使用、参数的传递规则、以及堆栈的使用等等。ABI 与处理器和内存地址等硬件架构相关,是用来约束链接器 (Linker) 和汇编器 (Assembler) 的。在同一处理器下,基于不同高级语言编写的应用程序、库和操作系统,如果遵循同样的 ABI 定义,那么它们就能正确链接和执行。

System Call (系统调用)是操作系统提供给应用程序访问操作系统核心功能的一种机制。应用程序通过调用系统调用接口来请求操作系统执行特定的任务,例如创建进程、打开文件、读写文件、分配内存等。系统调用是应用程序与操作系统之间的接口,它可以提供更底层、更直接地访问操作系统功能的能力。

在这里插入图片描述

系统调用接口的功能

操作系统对计算机硬件重要组成的抽象和虚拟化,这样会有助于应用程序开发。应用程序员只需访问统一的抽象概念(如文件、进程等),就可以使用各种复杂的计算机物理资源(处理器、内存、外设等)

文件 (File) 是外设的一种抽象和虚拟化。特别对于存储外设而言,文件是持久存储的抽象。

地址空间 (Address Space) 是对内存的抽象和虚拟化。

进程 (Process) 是对计算机资源的抽象和虚拟化。而其中最核心的部分是对 CPU 的抽象与虚拟化。
在这里插入图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多