构建MenuOS系统
1.将指定文件拷贝到本地:
git clone https://github.com/mengning/linuxnet.git
此过程可能需要输入github账号和密码。
2.进入目录linuxnet
,使用make
命令编译根文件系统:
cd linuxnet
make rootfs
3.在Makefile
文件中有一条指令用于开启menu系统(不需要自己输入):
qmenu -kernel ../../linux-3.18.6/arch/x86/bzImage -initrd ../rootfs.img
测试QEMU
1.在QEMU中完成TCP客户端和服务器发送和接收hello/hi以验证MenuOS正常工作:
MenuOS>> replyhi
# Please input hello...
MenuOS>> hello
- 结果显示TCP客户端和服务器正常工作,打印出了预期的信息
2.修改Makefile内容,rootfs
标签下启动QEMU的命令尾部添加-s
3.重新make rootfs
,启动QEMU
4.启动调试,连接到server
gdb
(gdb) file ../../linux-3.18.6/vmlinux
(gdb) target remote:1234 # 连接到gdbserver
5.设置断点,验证gdb对start_kernel
和sys_socketcall
这两个内核函数的跟踪是否可行
(gdb) break start_kernel
(gdb) break sys_socketcall
- 结果显示gdb可以追踪到
start_kernel
函数,断点在init/mian.c
的501行;也可以追踪到sys_socketcall
函数,断点在net/socket.c
文件的2492行
原文地址:https://www.cnblogs.com/Mr-Tiger/p/11992061.html
时间: 2024-10-12 20:09:12