一.Linux内核源码下载
下载网址为:
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz
下载完成后放入home/MenuOS中
然后解压缩包:tar -xvf linux-5.0.1.tar
二.安装内核编译工具
sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses dev make x86_64_defconfig #生成64位x86的配置文件 make menuconfig #配置编译内核
三.准备qemu模拟器加载内核
1.下载安装QEMU
cd .. sudo apt install qemu qemu-system-x86_64 -kernel linux-5.0.1/arch/x86_64/boot/bzImage #构建MenuOS的根文件目录rootfs mkdir rootfs #git clone所给的munuOS文件 git clone https://github.com/mengning/menu.git cd menu sudo apt-get install libc6-dev-i386
2.构造MenuOS
需要编辑一下menu目录下Makefile文件的如下内容
然后在~/MenuOS/menu路径下执行make rootfs命令,
成功在能看到如下界面
四.MenuOS上能够完成TCP客户端和服务器发送和接收hello/hi
1.把程序集成至MenuOS中测试
'''
cd .. git clone https://github.com/mengning/linuxnet.git cd ./linuxnet/lab2 make cd ../../menu/ make rootfs
'''
在QEMU下测试输入如下命令:
Replyhi Hello
五.GDB进行内核代码跟踪
首先,修改menu目录下的Makefie文件
此时在~/MenuOS/menu路径下输入 make rootfs
出现下图所示情况。此时不需要关闭终端以及QEMU界面
gdb file ./linux-5.0.1/vmlinux target remote:1234 break start_kernel list
gdb跟踪到内核代码start_kernel
来源:https://www.cnblogs.com/lhx9527/p/12018849.html