转自:http://blog.csdn.net/rosetta/article/details/8933240
这里的Linux-0.00由Linus Torvalds写的Linux最初版本,只是打印AAA和BBB,此源码在redhat9.0中无法编译,但在《Linux内核完全剖析》一书中其作者给出了可以在redhat9.0中编译通过的Linux-0.00版本。
运行环境使用Bochs虚拟机,以后也会使用VMware虚拟机运行由redhat9.0中编译出来的Linux-0.11系统。
准备工具:
VMware 7.0.0,
Bochs 2.2,
Linux-0.00源码包,
下载redhat9.0 ISO安装包并在VMware中安装好,
FTP服务器:ftpserv(从windows到redhat9.0之前传送数据使用),
终端工具(可选):AbsoluteTelnet或SecureCRT。
Bochs 2.2 ,Linux-0.00源码包可在www.oldlinux.org中下载,其它软件自行下载。
1,下载Bochs 2.2并安装
2,下载linux-0.00-050613.zip。里面有Linux-0.00原始代码和经《Linux内核完全剖析》作者修改后可在redhat9.0在编译的Linux-0.00源码,以及bochs配置文件和已经编译好的内核引导启动映像文件。
3,双击运行“bochsrc-0.00.bxrc”,此时如果正确运行会一直打印AAA……和BBB……。
4,下面介绍如何编译及修改源码,把打印A,B变成打印D,E。、
先使用ftpserv把linux-0.00-rh9.tar.gz传到redhat9.0并解压。
tar -zxvf linux-0.00-rh9.tar.gz
cd linux-0.00-rh9
make
成功后会在当前目录生成Image文件,先不忙把Image弄到bochs下运行,先把A,B改成D,E。
执行:vim head.s 把如下图所示的65,66(A,B的ASCII码)改成68,69(D,E的ASCII码)后保存退出,再执行make,把生成的Image传到windows中,替换刚才执行过的Image,再次运行bochsrc-0.00.bxrc就可以体现出更改。