20233810《Linux内核原理与分析》第五周作业

本文探讨了API与系统调用的关系,特别聚焦于13号系统调用之外的39号mkdir,展示了如何通过库函数API和C代码嵌入汇编实现。作者介绍了如何使用gcc编译,并演示了在C代码中使用mkdir的系统调用进行实际操作。
摘要由CSDN通过智能技术生成

教材学习

  1. API(应用程序编程接口): API 是一组定义了应用程序与其他软件组件(通常是操作系统、库或服务)如何互相交互的规范。API 定义了函数、数据结构和协议,以便不同的软件组件能够进行通信和互操作。API 可以包括各种级别的抽象,从高级语言的库函数到底层系统调用。API 通常是用于编程的接口,它们隐藏了底层细节,简化了应用程序开发。

  2. 系统调用: 系统调用是操作系统内核提供的编程接口,它允许应用程序请求操作系统提供的服务和资源,如文件访问、进程管理、网络通信等。系统调用是应用程序与操作系统内核之间的界面,它涉及到从用户空间到内核空间的切换,因此通常是操作系统提供的最底层接口。

他们的关系:

  • API 可以包括系统调用,但不限于系统调用。API 可以包括库函数、框架、协议等。系统调用是 API 的一部分,是 API 中最底层的部分,用于访问操作系统的核心功能。

  • API 可以在不同的操作系统之间具有不同的实现,但通常会提供类似的功能。这使得应用程序可以在不同的操作系统上运行,只需根据不同的操作系统实现适应性地修改 API 调用。

  • 应用程序通过调用 API 来与操作系统和其他软件组件进行交互。如果应用程序需要访问底层的系统资源和功能,它可以通过调用系统调用来实现。

实验内容

选择一个系统调用(13 号系统调用 time 除外),系统调用列表参见 torvalds/linux

实际选择了39号mkdir

参考视频中的方式使用库函数 API 和 C 代码中嵌入汇编代码两种方式使用同一个系统调用

编写mkdir.c文件若编译成功则返回

使用gcc进行编译

然后对mkdir.c文件进行加入汇编语言修改,修改为以下代码并汇编

再次使用gcc进行编译

成功编译

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值