一、安裝環境
1. Ubuntu 16.04 x64
2. Java jdk 7
二、peter-dbg 介面
a. 顯示記憶體上的值,另外可以切換GDT、IDT、LDT等等欄位,並觀察就些資訊
b. 顯示程式碼
c. 顯示暫存器和Stack,特別是可以觀察Control Register,另外可以切換Paging(觀察Page table的狀態)、Address translate (Virtual address或Linear address的Physical address轉換)
二、GDT 介面
切換到GDT的欄位,可以觀察GDT設置狀態。
三、IDT 介面
切換到IDT的欄位,可以觀察IDT是否設置正確。
四、LDT 介面
切換到LDT的欄位,可以確認LDT是否設置無誤。
五、Paging 介面
切換到Paging介面,可以觀察Page table分配的狀態,在設置Paging錯誤時可能會造成系統的崩潰,因此這樣就能確保是如預期的分配情形。
六、Address translate 介面
切換到Address translate介面,可以將Virtual address或Linear address轉換成Physical address,這樣能檢查GDT和Paging是否設置成功。
七、運行結果
bochs配置如下:
./configure --enable-debugger --enable-disasm --enable-debugger-gui --with-x11
運行指令如下:
這邊要記得加上-q的參數,不然bochs模擬器可能會運行不起來。
java -jar peter-bochs-debugger20130922.jar bochs -q bochsrc
此系統模擬3個不同的task,分別是task1、task2、task3,對應到的PID是2、3、4,實作簡易的Multi-tasking,這樣就完成非常小型的作業系統測試。