2012/11/5

【Linux】Bochs模擬器模擬器

Bochs是一套用來模擬IA32架構的模擬器,可以模擬一台完整的PC:CPU, Memory, Disk...等,更棒的是在Debug模式中可以單步執行並隨時觀察CPU暫存器狀態或是記憶體資訊,對於學習PC底層有滿大的幫助,以下記錄下載Source包裝編譯安裝與執行的步驟。
  1. Bochs官網下載Source Code與Disk Image
    目前最新Source Code版本是bochs-20121103.tar.gz
    Disk Image這裡用FreeDos作為範例
  2. 完成下載後先對Source Code解壓縮
    tar zxvf bochs-20121103.tar.gz
  3. 作編譯前的設定:這邊開啟Debug與反組譯功能
    ./configure --enable-debugger --enable-disasm
  4. 編譯與安裝
    make
    sudo make install
  5. 以上步驟完成安裝程序, 接下來把下載好的FreeDos映像檔解壓縮
    tar zxvf freedos-img.tar.gz
  6. 切到解壓縮的目錄裡會看到會看到a.img, b.img, bochsrc, 與c.img這幾個檔案, 用gedit編輯器編輯bochsrc設定檔如下[註]
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    megs: 32
    romimage: file=$BXSHARE/BIOS-bochs-latest
    vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
    vga: extension=vbe
    floppya: 1_44=a.img, status=inserted
    ata0-master: type=disk, path=c.img, cylinders=306, heads=4, spt=17
    boot: floppy
    log: bochsout.txt
    mouse: enabled=0
    cpu: ips=15000000
    vga_update_interval: 150000
    
  7. 接著執行bochs即可, 第一個選擇畫面直接選擇6. Begin simulation即可運行模擬器
  8. 但因為編譯設定時有選擇debug模式, 所以會先trap在一開始, 畫面如下:只要輸入c並按下enter模擬器就會繼續執行
  9. 最後成功進入Dos的畫面截圖如下:
[註] bochs執行時可以用-f參數指定要帶起的模擬器參數設定檔, 若沒指定的話則會在當前目錄下依序找尋以下檔案作為設定檔:
  1. .bochsrc
  2. bochsrc
  3. bochsrc.txt
  4. bochsrc.bxrc (Windows Only)

沒有留言:

張貼留言