2019年8月31日 星期六

Linux 0.11 Compile and running on bochs

對於資訊工程或是駭客技術有興趣的同學,不妨嘗試撰寫作業系統,絕對會讓您的技術更上一層樓,那麼不知道如何從哪裡開始撰寫作業系統的同學,可以參考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