linux系统调用
2016-03-18 17:10:19 张超《Linux内核分析》MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 我的实验平台以及代码见 https://www.shiyanlou.com/courses/reports/986221 实验要求: 扒开系统调用的三层皮 使用库函数触发一个系统调用 C代码中嵌入汇编代码的写法 使用嵌入式汇编代码触发同一个系统调用 系统调用在内核代码中的处理过程 系统调用: 操作系统为用户态进程与硬件设备进行交互提供了一组接口——系统调用 把用户从底层的硬件编程中解放出来 极大的提高了系统的安全性 使用户程序具有可移植性 API和系统调用 应用编程接口(application program interface, API) 和系统调用是不同的 API只是一个函数定义 系统调用通过软中断向内核发出一个明确的请求 Libc库定义的一些API引用了封装例程(wrapper routine,唯一目的就是发布系统调用) 一般每个系统调用对应一个封装例程 库再用这些封装例程定义出给用户的API 不是每个API都对应一个特定的系统调用。 API可能直接提供用户态的服务 一个单独的API可能调用几个系统调用 不同的API可能调用了同一个系统调用 返回值 大部分封装例程返回一个整数