输入以下命令安装
c
切换到管理员
创建目录
mkdir bochs && cd bochs
下载
wget http://downloads.sourceforge.net/sourceforge/bochs/bochs-2.7.tar.gz
解压
tar -xzf bochs-2.7.tar.gz
进入目录
cd bochs-2.7
安装依赖项
sudo apt-get update
sudo apt-get install build-essential libx11-dev libxpm-dev libgtk2.0-dev
sudo apt-get install libsdl2-dev libx11-dev
sudo apt-get install libncurses5-dev libncursesw5-dev
配置编译选项
./configure \
--prefix=/usr \
--without-wx \
--with-x11 \
--with-x \
--with-term \
--disable-docbook \
--enable-cpu-level=6 \
--enable-fpu \
--enable-3dnow \
--enable-long-phy-address \
--enable-pcidev \
--enable-usb \
--enable-all-optimizations \
--enable-gdb-stub \
--with-nogui
修改 Makefile 以包含 pthread 库
sed -i 's/^LIBS = /LIBS = -lpthread/g' Makefile
编译 Bochs
make -j$(nproc)
安装 Bochs
sudo make install
可以用bochs生成配置文件,在我这个环境出问题不能用 用一下配置可以正常执行引导代码
c
# 设置内存为32MB
megs: 32
# 设置对应机器的BIOS
romimage: file="/usr/share/bochs/BIOS-bochs-latest"
# 设置对应机器的VGA BIOS
vgaromimage: file="/usr/share/bochs/VGABIOS-lgpl-latest"
# 选择启动盘
boot: disk
# 设置日志文件的输出
#log: bochs_out.log
# xchg bx,bx 断点
magic_break: enabled=1
# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="boot.img", mode=flat
keyboard: type=mf, serial_delay=250, paste_delay=100000, user_shortcut=none
mouse: type=ps2, enabled=false, toggle=ctrl+mbutton
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
配置调试
菜单栏找到配置默认生成任务 任意点一个 会生成tack.json 在同目录生成 一个文件 launch.json 输入一下内容
c
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(onix) kernel debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/kernel.bin",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerServerAddress": "localhost:1234",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}