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


    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 的抽象与虚拟化。
    在这里插入图片描述

  • 相关阅读:
    使用股票程序交易系统应该注意哪些问题?
    拒绝一次性芯片,新技术:无线升级芯片
    创建型模式 - 简单工厂模式StaticFactoryMethod
    2. Vue3 Composition API
    shell脚本入门
    C++库封装JNI接口——实现java调用c++
    RabbitMQ 使用细节 → 优先级队列与ACK超时
    IDC_ISP网络之IDC机房内网络架构及配置
    【目标检测】-----YOLOV5网络结构详解
    多源最短路径的原理及C++实现
  • 原文地址:https://blog.csdn.net/qq_67733273/article/details/134016072