編譯 linux 0.01
1.下載linux-0.11-devel-060625(這個有gar,編譯時要用),bochs 2.5
2.建新硬盤img
用bochs自帶的bximage建,按<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通過winimage放入rootimage-0.11,(也可以在centos,或redhat裏進行)
然後啓動bochs(用bochs-hd那個),啓動後,把rootimage放入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再通過rootimage-0.11傳出來.
mcopy Image a:
再用winimage從rootimage-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了.