跟踪分析Linux内核的启动过程

学号尾号:450
原创,转载请注明出处:https://github.com/mengning/linuxkernel/
实验环境:实验楼
实验要求:
举例跟踪分析Linux内核5.0系统调用处理过程
编译内核5.0
qemu -kernel linux-5.0.1/arch/x86/boot/bzImage -initrd rootfs.img
选择系统调用号后两位与您的学号后两位相同的系统调用进行跟踪分析
https://github.com/mengning/menu
给出相关关键源代码及实验截图,撰写一篇博客(署真实姓名或学号最后3位编号),并在博客文章中注明“原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ ”,博客内容的具体要求如下:
题目自拟,内容围绕系统调用进行;
博客中需要使用实验截图
博客内容中需要仔细分析系统调用、保护现场与恢复现场、系统调用号及参数传递过程
1.启动Menu

在这里插入图片描述

2.找到50号系统调用

在这里插入图片描述

50号系统调用:getegid:用来取得执行目前进程有效组识别码

执行并跟踪系统调用:
在这里插入图片描述
输出了组织识别码。
在这里插入图片描述

使用gdb查看
在这里插入图片描述

在这里插入图片描述

系统调用:
Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。

猜你喜欢

转载自blog.csdn.net/weixin_42888394/article/details/88665317