安装 Bochs 2.6

1. 下载 Bochs 源码包
在 Bochs 的官方网站上下载 Bochs 的 2.6 版本的源码包,保存到本地。
2. 安装依赖库
在终端中运行以下命令安装 Bochs 所需的依赖库:

sudo apt-get install build-essential libgtk2.0-dev libncurses5-dev libx11-dev libxrandr-dev
Bash

3. 解压缩源码包
打开终端,进入下载目录,使用以下命令解压缩 Bochs 源码包:
tar -zxvf bochs-2.6.tar.gz
Bash

4. 进入源码目录
使用以下命令进入源码目录:
cd bochs-2.6
Bash

5. 配置与编译
在终端中运行以下命令,进行配置和编译:
./configure --enable-debugger --enable-x11 --with-x --with-xrandr --with-gtk --enable-ne2000 --enable-all-optimizations
make
Bash

6. 安装
编译完成后,运行以下命令安装 Bochs:
sudo make install
Bash

安装完成后,Bochs 2.6 就安装在系统中了。

配置 Bochs 和编译 linux-0.11 内核

1. 创建 Bochs 配置文件
在任意目录下创建一个名为 bochsrc.txt 的文本文件,并添加以下内容:

# ROM images, disk image, and tty term type
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest, address=0xf0000
vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest
floppya: 1_44=a.img, status=inserted
boot: a
display_library: x
ata0-master: type=none
ata0-slave: type=none
ata1-master: type=none
ata1-slave: type=none
# 允许调试内核
magic_break: on
Bash

2. 创建 a.img
在终端中运行以下命令,创建一个 1.44MB 大小的空白软盘映像文件 a.img:
dd if=/dev/zero of=a.img bs=1024 count=1440
Bash

3. 修改 linux-0.11 内核的 Makefile
进入 linux-0.11 内核源码目录,找到 Makefile 文件,使用文本编辑器打开文件,找到以下两行,并注释掉:
 #CFLAGS = -Wall -O -fstrength-reduce -fomit-frame-pointer -nostdinc -I../include
#CPP = gcc -E -nostdinc -I../include
Bash

4. 编译内核
在终端中运行以下命令,编译 linux-0.11 内核:
make all
Bash

编译成功后,在 linux-0.11 目录下生成了一个命名为 Image 的文件,该文件就是编译后的内核文件。

使用 Bochs 调试 linux-0.11 内核

1. 运行 Bochs
运行以下命令,启动 Bochs:

bochs -f bochsrc.txt
Bash

2. 进入 Bochs
在 Bochs 的命令行界面中,输入 c 命令,按回车键,运行内核。
3. 打开调试器
在启动内核的过程中,按 Ctrl+D 键,可以进入 Bochs 的调试器界面。
4. 设置和观察断点
在调试器中,通过以下命令设置断点:
b main
b breakpoint_address
Bash

通过以下命令观察断点:
info break
Bash

5. 单步调试
通过以下命令进行单步调试:
s
Bash

通过以下命令查看寄存器的内容:
info r
Bash

通过以下命令查看内存的内容:
x memory_address
Bash

6. 结束调试
调试完成后,通过以下命令退出 Bochs 的调试器和命令行界面:
q
Bash