标签:tar uos initrd 三层 输入 技术 remote 调用 解决方案
1.在前两章的基础上进行本次实验,因此需要删除menu克隆已经集成好前面两个命令的新版本的的menu
cd ~/LinuxKernel/
cd menu
rm -rf menu
git clone https://github.com/mengning/menu.git
make rootfs//自动编译并生成根文件系统
2.MenuOS系统增加命令
test.c中增加命令函数Time、TimAsm和MenuConfig
重新编译启动Menu
输入Time命令,运行成功
1.返回LinuxKernel目录下,启动内核
cd ..
qemu -kernel linux_3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -S -s
2..打开一个新的命令窗口,启动gdb,加载内核建立连接cd LinuxKernel/
gdb
file linux-3.18.6/vmlinux
target remote:1234
3.设置断点b sys_time
,按c继续运行,运行到断点停止。time系统调用的是sys_time函数,因此在sys_time函数处设置断点,我们可以看到的就是输入time命令后没有反应
4.sys_time是在宏中实现的,无法直接看到。用`list
命令列出sys_time对应代码
5.单步执行gdb调试
6.system_call代码分析
标签:tar uos initrd 三层 输入 技术 remote 调用 解决方案
原文地址:https://www.cnblogs.com/20189224sxy/p/9978283.html