03 - 调试环境的搭建(Bochs)

---- 整理自狄泰软件唐佐林老师课程

查看所有文章链接:(更新中)深入浅出操作系统 - 目录

文章目录

  • 1. Bochs(另一款优秀的虚拟机软件)
  • 2. Bochs的安装与配置
  • 3. Bochs的启动文件
    • 3.1 启动Bochs虚拟机
    • 3.2 调试环境验证
  • 4. Bochs中的常用调试命令

1. Bochs(另一款优秀的虚拟机软件)

专业模拟x86架构的虚拟机
开源且高度可移植,由C++编写完成
支持操作系统开发过程中的断点调试
通过简单配置就能运行绝大多数主流的操作系统

2. Bochs的安装与配置

  1. 下载源码
  2. 解压缩bochs-2.4.5.tar.gz ==>bochs-2.4.5
  3. 进入源码目录:
cd bochs-2.4.5
  1. 配置
./configure -enable-debugger -enable-disasm
  1. 编译
make
  1. 安装
sudo make install
  • 小贴士
    • 确定bochs的安装路径(which bochs
    • 安装vgabios(apt-get install vgabios
    • 确定vgabios的安装路径(whereis vgabios

03 - 调试环境的搭建(Bochs)_第1张图片

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 调试环境验证

03 - 调试环境的搭建(Bochs)_第2张图片
03 - 调试环境的搭建(Bochs)_第3张图片
03 - 调试环境的搭建(Bochs)_第4张图片
03 - 调试环境的搭建(Bochs)_第5张图片
此时bochs中显示的黑屏,需要我们手动在控制台输入c:
03 - 调试环境的搭建(Bochs)_第6张图片
03 - 调试环境的搭建(Bochs)_第7张图片

4. Bochs中的常用调试命令

03 - 调试环境的搭建(Bochs)_第8张图片

注:将关键寄存器的值初始化为0

org 0x7c00
start:
    mov ax, cs
    mov ss, ax
    mov ds, ax
    mov es, ax

在主引导程序加载运行时,cs段寄存器已经被初始化为0。eip初始化为7c00。
03 - 调试环境的搭建(Bochs)_第9张图片
03 - 调试环境的搭建(Bochs)_第10张图片

你可能感兴趣的:(深入浅出操作系统,linux,ubuntu,windows)