使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
2017-03-19 19:09
316 查看
王宣 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
第一部分:回顾
系统调用的意义:
操作系统为用户态进程与硬件设备进行交互提供了一组接口--------系统调用
1.把用户从底层的硬件编程中解放出来
2.极大的提高了系统的安全性
3.使用户程序具有可移植行
API和系统接口:
应用编程接口(即API)和系统调用不同
1.API只是一个函数定义
2.系统调用通过软中断向内核发出一个明确的请求
Libc库定义的一些API引用了封装例程(wrapper routine,唯一目的就是发布系统调用)
1.一般每个系统调用对应一个封装例程
2.库再用这些封装例程定义出给用户的API
关于返回值
1.大部分封装例程会返回一个整数,其中值的含义依赖于相应的系统调用
2.大多数情况下,-1表示内核不能满足进程的请求
3.Libc中定义的errno变量包含特定的出错码
需要注意的地方:并不是每个API都对应一个特定的系统调用,有可能直接提供用户态的服务
一个单独的API也可能调用几个系统调用,而且不同的API也可能调用同一个系统调用
第二部分: API,system_call和sys_xyz
回顾中已经说明了,API中封装了系统调用;system_call则是运行于内核态,从名字上也能大概猜出来,它是
所有系统调用在内核态的入口点,而sys_xyz则是执行具体的系统调用操作,完成系统调用请求
上图中的xyz()在用户态,int 0x80触发系统调用,然后进入system_call,然后通过sys_xyz()执行具体的调用操作
第三部分:实验部分
这里采用的是fork(),首先是c语言的格式
这里是汇编形式
结果,就截了一幅图
第四部分:总结
每次课程都有不少的收获,也要感觉老师的通俗讲解,希望自己能坚持下去。
第一部分:回顾
系统调用的意义:
操作系统为用户态进程与硬件设备进行交互提供了一组接口--------系统调用
1.把用户从底层的硬件编程中解放出来
2.极大的提高了系统的安全性
3.使用户程序具有可移植行
API和系统接口:
应用编程接口(即API)和系统调用不同
1.API只是一个函数定义
2.系统调用通过软中断向内核发出一个明确的请求
Libc库定义的一些API引用了封装例程(wrapper routine,唯一目的就是发布系统调用)
1.一般每个系统调用对应一个封装例程
2.库再用这些封装例程定义出给用户的API
关于返回值
1.大部分封装例程会返回一个整数,其中值的含义依赖于相应的系统调用
2.大多数情况下,-1表示内核不能满足进程的请求
3.Libc中定义的errno变量包含特定的出错码
需要注意的地方:并不是每个API都对应一个特定的系统调用,有可能直接提供用户态的服务
一个单独的API也可能调用几个系统调用,而且不同的API也可能调用同一个系统调用
第二部分: API,system_call和sys_xyz
回顾中已经说明了,API中封装了系统调用;system_call则是运行于内核态,从名字上也能大概猜出来,它是
所有系统调用在内核态的入口点,而sys_xyz则是执行具体的系统调用操作,完成系统调用请求
上图中的xyz()在用户态,int 0x80触发系统调用,然后进入system_call,然后通过sys_xyz()执行具体的调用操作
第三部分:实验部分
这里采用的是fork(),首先是c语言的格式
这里是汇编形式
结果,就截了一幅图
第四部分:总结
每次课程都有不少的收获,也要感觉老师的通俗讲解,希望自己能坚持下去。
相关文章推荐
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- LInux内核分析--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用(Linux)
- 网易公开课《Linux内核分析》学习心得-使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用----20135334赵阳林
- 实验四——使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用