可以運行的linux-0.00和linux-0.11

這兩個版本的linux都是根據 趙炯的<<Linux內核完全註釋>>修正版V3.0 整理出來的.已經在Ubuntu 12.04.1版本(bochs 2.4.6)上運行過

https://github.com/voidccc/linux0.00

https://github.com/voidccc/linux0.11


linux 0.00

說明:

這是一個假想中的版本, 並不是由Linus所寫,因爲當時Linux寫好這個版本後,由於不小心錯誤地用modem撥號程序撥到了自己的硬盤設備上,造成他開發Linux系統的MINIX分區毀壞。因此原始的Linux 0.00不復存在了 這個版本是趙炯根據Linux事後描述仿寫出來的,很有意思.Linux原話是這樣的,很有意思,細節可參見趙炯的描述連接 .

"it switched between two processes that printed AAAA...  and BBBB...  respectively by using the timer-interrupt - Gods I was proud over that"

"它使用時鐘中斷在兩個分別顯示AAAA...和BBBB...的進程之間切換。上帝啊,當時我真自豪!"

Makefile 參考了cheerchoumao的文章 鏈接 源碼在書中原有註釋基礎上加了一點註釋,根據書上的版本head.s有幾處需要修改

1 movl scr_loc, %bx => movlscr_loc, %ebx
2 movl $65, %al => movb $65, %al
3 movl $66, %al => movb $66, %al
4 align 2 => align 4
5 align 3 => align 8   

運行:

$ make

$ bochs

注:配置文件已經命名爲.bochsrc 所以可以直接啓動bochs不需要使用-f參數了

github:

https://github.com/voidccc/linux0.00




linux 0.11

說明:

這個版本不超過2萬行代碼量,但是已經具備Linux的基本雛形,包括內核用戶態,多進程切換,內存管理,文件系統,可謂麻雀雖小五臟俱全.

根據tigercn的版本 連接 稍微做修改來的,包含了大多數下載版本里沒有的MINIX根文件系統hdc-0.11-new.img,下面3處做了修改

1 修改/tools/bochs/bochsrc/bochsrc-hd.bxrc,在開頭添加"display_library:sdl",否則會出現下面的錯誤
bochs-bin: symbol lookup error: /usr/lib/bochs/plugins/libbx_x.so: undefined symbol: XpmCreatePixmapFromData

2 修改/tools/bochs/bochsrc/bochsrc-hd.bxrc裏的ata0-master屬性的Image文件路徑

3 將Image的硬盤版MINIX根文件系統加入進來,趙炯介紹了怎麼製作的這個根文件系統,鏈接 因爲原始文件比較大127M,壓縮之後只有7M

運行:

$ make

$ tar zxvf tools/bochs/hdc-0.11-new.tar.gz -C ./tools/bochs/

$ bochs -f ./tools/bochs/bochsrc/bochsrc-hd.bxrc

github:

https://github.com/voidccc/linux0.11



發佈了28 篇原創文章 · 獲贊 46 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章