构建调试Linux内核网络代码的环境MenuOS系统
作者:互联网
本实验在“实验楼”的虚拟环境上完成(https://www.shiyanlou.com):
一共3个任务:
1、通过本地Linux系统或实验楼在线环境完成构建调试Linux内核网络代码的环境MenuOS系统
2、证实已经在MenuOS上能够完成TCP客户端和服务器发送和接收hello/hi,也就是MenuOS的网络可以正常工作
3、证实通过gdb可以跟踪到内核代码,比如start_kernel、sys_socketcall等内核函数
一、搭建MenuOS系统
打开桌面上的“Xface终端”:
打开LINUX内核,然后从GitHub下载程序文件:
使用make来编译lab2,然后make rootfs编译并生成根文件系统:
然后运行MenuOS操作系统:
二、验证MenuOS的网络可以正常工作
使用命令replyhi,用hello来回复TCP服务:
可以通信,验证成功!
三、gdb跟踪内核代码
重新打开一个终端,使用跟踪分析 LinuxKernel(内核) 的启动过程的 -s 和 -S 选项启动 MenuOS 系统。
接着再重新打开一个终端,进入gdb调试阶段:
(gdb)file linux-3.18.6/vmlinux // 在targe remote 之前加载符号表 (gdb)target remote:1234 // 建立 gdb 和 gdbserver 之间的连接
start_kernel、sys_socketcall内核函数,设置断点跟踪:
可以看出,函数start_kernel()在main函数的501行,函数sys_socketcall在2492行。
实验完成!
标签:kernel,MenuOS,start,gdb,内核,Linux 来源: https://www.cnblogs.com/qyf2199/p/12030091.html