Linux内核分析:实验四
2016-03-18 20:39
387 查看
使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
安常青 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 当我们使用某些库函数的API时,实际上该库函数啥都没干,它只是一个系统调用的封装。X86为例,系统调用会执行int 0x80指令,也就是陷入。操作系统会变为内核态,查找系统调用表,跳转到相应的系统调用。每个系统调用都对应一个唯一的系统调用号,系统调用之前,会从eax寄存器读系统调用号,系统调用的返回值也会保存在eax中。
下面我们在C代码中嵌入汇编,实现一个getpid的系统调用。该系统调用获取当前进程的pId号。
首先,看代码:
编译运行:
总结:
通过这次实验,更加熟练使用嵌入汇编,对系统调用有了更深的理解。相关文章推荐
- linux为什么比windows做服务器更好
- LINUX编程学习路线
- CentOS6.5+Theano+Keras安装
- CentOS6.6服务器系统配置(LAMP+phpMyAdmin)全流程
- CentOs6.6 安装PHPAdmin
- Linux学习进阶路线图
- 最全面的linux信号量解析
- centos7 安装ftp服务
- CentOS yum 源的配置与使用
- Linux--进程间通信(管道及有名管道FIFO)(转)
- linux 从一台机器复制文件到另一台linux机器上去
- CentOS7.2共享文件夹_安装配置SAMBA服务器
- dpkg查看软件包和共享库信息
- linux基础指令(三)scp
- linux 排序 文本统计
- 在VMware Workstation 12 PRO上安装CentOS 7 Minimal版
- 《Linux内核分析》第四周学习总结 扒开系统调用的三成皮(上)
- 解决HP ProLiant DL380 G5的Centos 7安装与启动不能识别硬盘问题
- linux下查找文件包含关键字
- linux 常用的基本命令