编译 linux 0.01

1.下载linux-0.11-devel-060625(这个有gar,编译时要用),bochs 2.5

2.建新硬盘img
  用bochs自带的bxp_w_picpath建,按<linux-0.11内核完全解析>里的说明进行,也是256M.
  然后fdisk,mkfs,然后把mkdir root, 然后把/bin,/dev,/usr复制过来,这样硬盘的minix系统就OK了。

2.按这个patch修改内核代码:
  http://www.oldlinux.org/oldlinux/viewthread.php?tid=4827    
  只能手动改,那个patch从网页上COPY下来,不能用了。
  boot.s里的|改!,用vi的一个命令就搞定了,好在用不了几分钟.

  *** 为了防止将来的linux0.01启动后报 HD controller not ready.    ***
  *** 需要修改hd.c -> controller_ready()                          ***
  *** 1000改为100000                                              ***
  *** (inb(HD_STATUS)&0xc0)!=0x40 改为 (inb(HD_STATUS)&0x80)      ***
  *** 这个参考 http://www.eetop.cn/blog/html/15/193015-21187.html ***

  *** 还要改下硬盘的参数:(config.h)         ***
  *** #elif    defined(LINUS_HD)            ***
  *** #define HD_TYPE { 16,63,520,300,980,0} ***

3.把修改后的代码放到linux-0.11-devel-060625
  修改后的代码打个包:
  tar cf linux.tar linux (在centos或redhat打包,然后用WinSCP取出来)
  然后把linux.tar通过winp_w_picpath放入rootp_w_picpath-0.11,(也可以在centos,或redhat里进行)
  然后启动bochs(用bochs-hd那个),启动后,把rootp_w_picpath放入A盘,(最初放在B盘,怎么都不好用).
  然后mdir a:看一下,会看到linux.tar
  然后mcopy a:linux.tar /usr/src2(在哪里都行,在/mnt里也行)
  另外,删除文件可用mdel a:filename

4.然后就进入/usr/src2,解开linux.tar: tar xf linux.tar
  然后cd linux,然后make

5.把生成的Image再通过rootp_w_picpath-0.11传出来.
  mcopy Image a:
  再用winp_w_picpath从rootp_w_picpath-0.11里取出这个Image,新建个目录linux0.01,把linux-0.01-devel-060625里的bochs-hd.bxrc弄过来。
  改里面的参数:
  floppya: 1_44="Image", status=inserted  #这个Image就是编译生成的,只要和实际的文件对应就行了。
  ata0-master: type=disk, path="hd256.img", mode=flat, cylinders=520, heads=16, spt=63

6.启动,OK了.