bochs簡介
bochs是一個x86平台模擬器;
Win10 WSL2(Ubuntu 18.04)下安裝
安裝bochs
sudo apt install bochs
sudo apt install bochs-x
WSL2支持GUI
- 安裝X server
由於bochs默認使用到X window,也就是說需要X server,而WSL2是不包括X server的,因此需要在Windows上安裝X server來處理WSL2(X client)發送來的圖形顯示請求;
最簡單的方式就是安裝MobaXterm了,MobaXterm由於內建有一個X server,它在啟動后會默認監聽6000端口,接受來自X client的請求;
- 配置X client
由於Linux(WSL2)通過環境變量DISPLAY來獲取X server服務地址,我們可以在.bashrc文件末尾添加如下命令保證在WSL2(X client)啟動后自動獲取到X server地址;
export DISPLAY=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`:0.0
demo測試
bochs提供了一個linux demo給我們測試,我們運行如下命令來測試:
wget https://sourceforge.net/projects/bochs/files/Disk%20Images/DLX%20Linux/dlxlinux4.tar.gz
tar -xvf dlxlinux4.tar.gz && cd dlxlinux
bochs -f bochsrc.txt
在出現如下界面時按c
繼續運行:
最終將會出現如下界面(提示dlx login時輸入用戶名root
直接登錄進去):
bochs常用調試命令
在上一步我們按鍵c
使demo linux往下運行,bochs常用的調試命令如下表所示:
調試命令 | 功能 |
---|---|
b 0x7c00 | 在內存0x7c00處設置斷點 |
d n | 刪除第n個斷點 |
info break | 查詢已設置斷點 |
c | 執行程序 |
s | 單步執行 |
s n | 執行n步 |
r | 查看寄存器信息 |
sreg | 查看段寄存器信息 |
print-stack | 打印當前棧里的內容 |
u /6 0xfe05b | 反匯編從內存地址0xfe05b起的6條命令 |
help | 查看幫助 |