在Linux下安裝帶調試功能的bochs

1.下載bochs源碼

bochs下載網站

2.解壓後進入該目錄進行配置

sudo ./configure --enable-debugger --enable-disasm

3.編譯安裝

sudo make

sudo make install

bochs 使用配置文件中的信息來尋找所使用的磁盤映像文件、運行環境外圍設備的配置以及其他一些虛擬機器的設置信息。

4.新建自己的目錄進行配置

4.1配置文件解析

4.1.1. megs

用於設置被模擬系統所含內存量。默認值:32MB
修改示例:

megs:128

4.1.2.floppya(floppyb)

floppya表示第一個軟驅,floppyb代表第二個軟驅。
如果需要從一個軟盤上來引導系統,floppya需要指向一個可引導的磁盤。
示例:

在這裏插入圖片描述

4.1.3. ata0 ata1 ata2 ata3

4個參數名用來啓動模擬系統中最多4ATA通道。
對於每個啓用的通道,必須指明IO基地址和一箇中斷請求信號。
默認只有ata0是啓用的,並且參數默認如下。
在這裏插入圖片描述

4.1.4. ata0-master(ata0-slave)

ata0-master用來指明模擬系統中第1ATA通道(0通道)上連接的第1ATA設備(硬盤或CDROM等);
ata0-slave指明第1個通道上鍊接的第2ATA設備。
在這裏插入圖片描述
177  表17-7\;設備配置的選項

選項 說明 可取的值
type 連接的設備類型 [ disk | cdrom ]
path 映像文件路徑名
mode 映像文件類型、僅對disk有效 [ flat | concat | external | dll | sparse | vmware3 | undoable | growing | volatile ]
cylinders 僅對disk有效
heads 僅對disk有效
spt 僅對disk有效
status 僅對cdrom有效 [ inserted | ejected ]
biosdetect bios 進行變換的類型(int 13),僅對disk有效 [ none | lba | large | rechs | auto ]
model 確認設備ATA命令返回的字符串

在配置ATA設備時,必須指明連接設備的類型type,可以是diskcdrom。還必須指明設備的“路徑名” path。“路徑名”可以是一個硬盤映像文件、CDROMISO文件或者直接指向系統的CDROM驅動器。在Linux系統中,可以使用系統設備作爲Bochs的硬盤,但由於安全原因,在Windows下不贊成直接使用系統上的物理盤。
對於類型是disk的設備,選項pathcylindersheadsspt是必須的。對於類型是cdrom的設備,選項path是必須的。
磁盤變換方案(在傳統int 13 BIOS功能中實現,並且用於像DOS這樣的老式操作系統)可以定義爲:

名稱 說明
none 無需變換,適用於容量小於512MB1032192個扇區)的硬盤。
large 標準移位算法,用於容量小於4.2GB8257536個扇區)的硬盤。
rechs 修正移位算法,使用15磁頭的僞物理硬盤參數,適用於容量小於7.9GB15482880個扇區)的硬盤。
lba 標準lba-輔助算法。適用於容量小於8.4GB16450560個扇區)的硬盤。
auto 自動選擇最佳變換方案(如果模擬系統啓動不了就應該改變)。

mode選項用於說明如何使用硬盤映像文件。它可以是一些模式之一。

名稱 說明
flat 一個平坦順序文件。
concat 多個文件。
external 開發者專用,通過C++類來指定。
dll 開發者專用,通過DLL來使用。
sparse 可堆砌、可確認、可退回的。
vmware3 支持vmware3的硬盤格式。
undoable 具有確認重做日誌的平坦文件。
growing 容量可擴展的映像文件。
volatile 具有易變重做日誌的平坦文件。

以上選項默認值是:
在這裏插入圖片描述

4.1.5. boot

boot用來定義模擬機器中用於引導啓動的驅動器。
示例:
在這裏插入圖片描述

4.1.6.cpu

cpu用來定義模擬系統中仿真的CPU的參數。四個參數如下:
|參數|說明|
|COUNT|指明系統模擬的處理器個數。(支持SMP最多爲8,否則爲1)|
|QUANTUM|指定控制從一個處理器切換到另一個之前最多可執行的指令數量。|
|RESET_ON_TRIPLE_FAULT|指定當處理器發生三重錯誤時需要對CPU執行復位操作而不是僅僅讓其停機(PANIC)。|
|IPS(Instructions Per Second)|指定每秒鐘仿真的指令條數。

在這裏插入圖片描述

4.1.7.log

指定log的路徑名可以讓Bochs記錄執行的一些日誌信息。
在這裏插入圖片描述

4.2 新建配置文件bochsrc

在這裏插入圖片描述

4.3 新建系統調試代碼boot.s

在這裏插入圖片描述

4.4 創建軟盤floppy

4.4.1 使用bximage工具

在這裏插入圖片描述

4.4.2 創建名爲a.img,大小爲1.44MB的軟盤。

在這裏插入圖片描述

4.5 編譯boot.s

as86 -0 -a -o boot.o boot.s
ld86 -0 -s -o boot boot.o
dd bs=32 if=boot of=./a.img skip=1

4.6 部分 Bochs 調試指令

在這裏插入圖片描述

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