Linux内核实验作业四

时间:2023-03-08 19:13:24

实验作业:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

20135313吴子怡.北京电子科技学院

【第一部分】使用库函数API来获取用户标识号。库函数为getuid()

代码如下:

Linux内核实验作业四

编译运行之后,将用户id号1000打印输出在屏幕上。

Linux内核实验作业四

【第二部分】使用汇编方式触发系统调用来获取用户标识号。库函数依旧为getuid()

代码如下:

Linux内核实验作业四

可以看出,打印出来的用户id和之前的一样都是1000.

Linux内核实验作业四

【第三部分】系统调用的工作机制学习总结

我认为系统调用的工作机制就是系统调用经过封装包装成为一个封装例程,然后交由Libc库,被Libc库引用保留,然后Libc库再将其提供给API去用。用户通过API间接地使用系统调用各种功能。即是说,系统调用是通过库函数封装的内核态的功能操作。

它的三层皮是:API、中断向量、中断服务程序。

【第四部分】附录

学习过程笔记详见:http://www.cnblogs.com/paperfish/p/5283727.html

==========================================================

作者:吴子怡

学号:20135313

原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000