使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
攥写人:于涵 学号:20132119
( *原创作品转载请注明出处*)
( 学习课程:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
实验要求:
-
选择一个系统调用(13号系统调用time除外),系统调用列表参见
2.参考视频中的方式使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,推荐在环境下完成实验。
实验过程:
首先,选择使用的系统调用:我选择的是49号 geteuid
第二步,用C语言编程
第三步,用gcc编译运行。
第四步,将C的代码改为嵌入式汇编语句。
第五步,编译并运行。
总结:
(*笔记部分*)
(*问题部分*):
简述系统调用的工作机制:
系统调用的三层皮是:
API xyz
中断向量 system_call
中断服务程序 sys_xyz
其中,API和中断向量使用系统调用号连接(存储在eax里),int 0x80进入内核代码入口起点,进入中断服务程序。