教材学习
-
API(应用程序编程接口): API 是一组定义了应用程序与其他软件组件(通常是操作系统、库或服务)如何互相交互的规范。API 定义了函数、数据结构和协议,以便不同的软件组件能够进行通信和互操作。API 可以包括各种级别的抽象,从高级语言的库函数到底层系统调用。API 通常是用于编程的接口,它们隐藏了底层细节,简化了应用程序开发。
-
系统调用: 系统调用是操作系统内核提供的编程接口,它允许应用程序请求操作系统提供的服务和资源,如文件访问、进程管理、网络通信等。系统调用是应用程序与操作系统内核之间的界面,它涉及到从用户空间到内核空间的切换,因此通常是操作系统提供的最底层接口。
他们的关系:
-
API 可以包括系统调用,但不限于系统调用。API 可以包括库函数、框架、协议等。系统调用是 API 的一部分,是 API 中最底层的部分,用于访问操作系统的核心功能。
-
API 可以在不同的操作系统之间具有不同的实现,但通常会提供类似的功能。这使得应用程序可以在不同的操作系统上运行,只需根据不同的操作系统实现适应性地修改 API 调用。
-
应用程序通过调用 API 来与操作系统和其他软件组件进行交互。如果应用程序需要访问底层的系统资源和功能,它可以通过调用系统调用来实现。
实验内容
选择一个系统调用(13 号系统调用 time 除外),系统调用列表参见 torvalds/linux。
实际选择了39号mkdir
参考视频中的方式使用库函数 API 和 C 代码中嵌入汇编代码两种方式使用同一个系统调用
编写mkdir.c文件若编译成功则返回
使用gcc进行编译
然后对mkdir.c文件进行加入汇编语言修改,修改为以下代码并汇编
再次使用gcc进行编译
成功编译