---- 整理自狄泰软件唐佐林老师课程
1. Bochs(另一款优秀的虚拟机软件)
专业模拟x86架构的虚拟机
开源且高度可移植,由C++编写完成
支持操作系统开发过程中的断点调试
通过简单配置就能运行绝大多数主流的操作系统
2. Bochs的安装与配置
- 下载源码
- 解压缩bochs-2.4.5.tar.gz ==>bochs-2.4.5
- 进入源码目录:
cd bochs-2.4.5
- 配置
./configure -enable-debugger -enable-disasm
- 编译
make
- 安装
sudo make install
- 小贴士
- 确定bochs的安装路径(
which bochs
) - 安装vgabios(
apt-get install vgabios
) - 确定vgabios的安装路径(
whereis vgabios
)
- 确定bochs的安装路径(
3. Bochs的启动文件
###############################################################
# Configuration file for Bochs
###############################################################
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/vgabios/vgabios.bin
# what disk images will be used
floppya: 1_44=a.img, status=inserted
# choose the boot disk.
boot: floppy
# where do we send log messages?
# log: bochsout.txt
# disable the mouse
mouse: enabled=0
# enable key mapping, using US layout as default.
keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/x11-pc-us.map
3.1 启动Bochs虚拟机
-
显式方式:
bochs -f bochsrc_file -
隐式方式:
bochs -
当前目录下的启动文件优先级:
(从上往下依次查找当前目录下是否有如下启动文件)- .bochsrc
- bochsrc
- bochsrc.txt
3.2 调试环境验证
此时bochs中显示的黑屏,需要我们手动在控制台输入c:
4. Bochs中的常用调试命令
注:将关键寄存器的值初始化为0
org 0x7c00
start:
mov ax, cs
mov ss, ax
mov ds, ax
mov es, ax
在主引导程序加载运行时,cs段寄存器已经被初始化为0。eip初始化为7c00。