對於資訊工程或是駭客技術有興趣的同學,不妨嘗試撰寫作業系統,絕對會讓您的技術更上一層樓,那麼不知道如何從哪裡開始撰寫作業系統的同學,可以參考Torvalds在大學時期撰寫的Linux 0.11版本,不過為什麼要選擇那麼舊的0.11版本,因為此版本僅單純的處理bootloader、paging、heap、virtual filesystem (VFS)、Multitasking、User mode、syscalls,並沒有關於tcp/ip和複雜的演算法等等的程式碼,因此可以很專注的分析基本作業系統的原理。
安裝環境
1. Ubuntu 16.04 x64
2. Linux 0.11
3. bochs 2.6.9
4. peter-bochs-debugger20130922.jar
Linux 0.11 下載資源
https://drive.google.com/file/d/1m5JvOuJudrpILDRrTX2FEkiOVolxivON/view?usp=sharing
一、Linux Compile
要編譯原版本的Linux 0.11,在現今的Linux環境可能會出現很多Error,修正所有Error也非常麻煩,不過在網路上有蠻多熱血的駭客,將它修改成現在版本的Linux都能編譯成功,因此我們只要打make就可以直接編譯完成。
二、Linux 0.11 on bochs
bochs 配置參數
romimage: file=/home/bochs/bochs-2.6.9/bios/BIOS-bochs-latest
megs: 32
vgaromimage: file=/home/bochs/bochs-2.6.9/bios/VGABIOS-lgpl-latest
floppya: 1_44="Image", status=inserted
ata0-master: type=disk, path="hdc-0.11-new.img", mode=flat, cylinders=410, heads=16, spt=38
boot: a
log: bochsout.txt
mouse: enabled=0
private_colormap: enabled=0
fullscreen: enabled=0
screenmode: name="sample"
bochs -f bochsrc
三、Linux 0.11 on peter-bochs-debugger
在分析Linux 0.11的程式碼,有哪裡不清楚,可以使用Debugger,一步一步的理解程式碼。
java -jar peter-bochs-debugger20130922.jar bochs -q -f bochsrc