bochs是一个x86平台模拟器;
sudo apt install bochs sudo apt install bochs-x
由于bochs默认使用到X window,也就是说需要X server,而WSL2是不包括X server的,因此需要在Windows上安装X server来处理WSL2(X client)发送来的图形显示请求;
最简单的方式就是安装MobaXterm了,MobaXterm由于内建有一个X server,它在启动后会默认监听6000端口,接受来自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
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
直接登录进去):
在上一步我们按键c
使demo linux往下运行,bochs常用的调试命令如下表所示:
调试命令 | 功能 |
---|---|
b 物理地址 | 设置断点 |
info break | 查询已设置断点 |
c | 执行程序 |
s | 单步执行 |
step n | 执行n条命令 |
r | 查看寄存器信息 |
sreg | 查看段寄存器信息 |
print-stack | 打印当前栈里的内容 |
help | 查看帮助 |