第一步:下载,编译linux内核
mkdir LinuxKernel cd LinuxKernel wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v5.x/linux-5.0.1.tar.xz xz -d linux-5.0.1.tar.xz tar -xvf linux-5.0.1.tar cd linux-5.0.1 sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev make i386_defconfig make menuconfig #配置编译需要的debug信息,如下图所示make -j4 多核make,提升速度#升级内核重启一直报错,所以就跳过了这一步
第二步 构造MenuOS
cd ~/LinuxKernel/ sudo apt install qemu git clone https://github.com/mengning/menu.git mkdir rootfs sudo apt-get install libc6-dev-i386 #修改Makefile,使用一个软连链接将qemu和emu-system-i386链接起来 cd menu vim Makefile qemu -kernel ../linux-3.18.6/arch/x86/boot/bzImage -initrd ../rootfs.img #修改前 qemu -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img #修改后 :wq sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu make rootfs#初始化根目录
第三步 gdb调试
qemu -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img -append nokaslr -s -S#打开QEMU #打开另一个终端 gdb file ~/LinuxKernel/linux-5.0.1/vmlinux break start_kernel target remote:1234 c list
第四步:构建MenuOS的网络功能
#将 TCP 网络通信程序的服务端集成到 MenuOS 系统中 cd ~/LinuxKernel git clone https://github.com/mengning/linuxnet.git cd linuxnet/lab2 make cd ../../menu/ make rootfs #将 TCP 网络通信程序的客户端集成到 MenuOS 系统中 cd ~/LinuxKernel git clone https://github.com/mengning/linuxnet.git cd linuxnet/lab3 make rootfs #记得在Makefile中更改一下linux内核的版本#
原文地址:https://www.cnblogs.com/yxzh-ustc/p/12024309.html
时间: 2024-11-07 02:50:59