1
安装、编译、升级Linux内核
在此过程中,建议更换/etc/apt/sources.list下的源,如阿里、科大源等,否则等待时间特别长。
换源后记得使用sudo apt-get update更新一下。
(如果报错很多也可以考虑换源,因为新安装的ubuntu 本身的源可能会无法下载依赖包(在没有vpn的情况下),例如make git这些命令都是需要下载的。
你换源也许就能解决这个问题)
编译make也需要不少的时间。
2
安装qemu加载menuOS
安装成功后如下图所示
在这一步主要就是注意你的处理器是32位还是64位的
qemu-system-i386 -kernel ../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img
像这条命令是32位下使用的
如果是64位,就用
qemu-system-x86_64 -kernel ../linux-5.0.1/arch/x86_64/boot/bzImage -initrd ../rootfs.img
其次就是 linux-5.0.1是你下载的内核文件夹,如果下的版本不同也要注意替换
3
检测tcp 网络能否正常工作
即下载老师的实验文件代码,linuxnet/lab2和linuxnet/lab3
具体步骤:
cd ~/your menu git clone https://github.com/mengning/linuxnet.git cd linuxnet/lab2 make //make是将lab2的文件拷贝至menu下 //lab2不需要修改Makefile cd ../../menu/ make rootfs
在执行make rootfs时候可能会提示
fatal error: asm/socket.h: No such file or directory
出现这个问题安装gcc-multilib即可
cd ~/your menu cd linuxnet/lab3 //lab3 需要修改Makefile vim Makefile //将 //qemu -kernel ../../linux-3.18.6/arch/x86/boot/bzImage -initrd ../rootfs.img //修改成 //qemu-system-x86_64 -kernel ../../linux-5.0.1/arch/x86/boot/bzImage -initrd ../rootfs.img make rootfs
最后在menuOS中输入help可以查看到出现relyhi和hello两条新命令
4
gdb调试
可以看到在内核出打了断点后qemu不会继续执行
可以输入c让内核继续跑,也可以输入别的gdb命令调试