上一篇博文讲了如何制作bochs硬盘镜像并且将grub装进去,这样我们可以在启动bochs后进入到grub界面。
这篇博文我们将2.4内核写入硬盘镜像,这就可以使用bochs直接启动内核了。
我的实验系统是这么部署的:CentOS 6.4 VMware虚拟机上修改代码和配置文件,用git做版本管理,同时还开着另一台虚拟机RedHat Linux 7.3,专门用来编译内核代码,毕竟2.4内核很老了,编译环境不能使用现代Linux系统,必须使用2001年左右的系统。每次在CentOS上修改完代码或配置就在RedHat上用rsync将数据同步下来,进行编译、安装、测试,这样最方便。用于开发的系统不必反复重启,用于编译的系统就是实验平台。
编译内核(这一步在RedHat上进行)
这一步在这里就不展开讲了,我对内核做了精简,不必要的选项全部关闭了,大大缩短了编译时间。其中,
Block devices ---> RAM disk support
这个选项也被我关闭了,那内核启动的时候自然就不需要Initial RAM disk (initrd)了,所以待会儿更改grub.conf的时候不用配置下面这一行了。
initrd /boot/initrd-2.4.0.img
在RedHat上编译完内核后,arch/i386/boot/bzImage
这个文件就是内核核心了。如果执行 make install
的话,这个文件会被复制到 /boot/vmlinuz-2.4.0
。我们不需要安装这个内核,而是直接将bzImage复制到CentOS上做后续处理。