原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/
学号 088
实验要求
- 编译内核5.0
- 选择系统调用号后两位与您的学号后两位相同的系统调用进行跟踪分析
实验环境
- Ubuntu18
- 内核:Linux Kernel 5.0.1
- qemu:运行内核代码的模拟器
- gdb:断点调试工具
编译内核5.0
1.下载内核5.0压缩包,配置编译Linux内核
> https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz //下载内核压缩包
> tar -xvf linux-5.0.1.tar // 解压得到内核文件
> cd linux-5.0.1 // 进入linux-5.0.1目录下
> make menuconfig //编译信息进行配置
> make 或 make -j* # *为cpu核⼼心数
编译信息进行配置

遇到的问题
HOSTCC scripts/basic/fixdep
Unable to find the ncurses package.
Install ncurses (ncurses-devel or libncurses-dev
dependin

本文详细记录了在Ubuntu18环境下,编译内核5.0,选择88号系统调用reboot进行跟踪分析的过程。通过查询系统调用表,插入reboot代码,并使用gdb在QEMU中调试,分析了系统调用的执行流程,包括进入内核空间、执行处理程序和返回用户空间的步骤,对比了系统调用与用户态函数调用的区别。

1728

被折叠的 条评论
为什么被折叠?



