BOchs虚拟机可以让我们像上帝一样,随时让时间“停住”钻进计算机里的小计算机里,CPU、内存、硬盘等尽收眼底
Bochs虚拟机的安装
安装环境:Window7 64位下的Vm虚拟机(11.0.4)下的Ubuntu16.0.4 Bochs2.6.9
安装过程:
1我在官网下载好bochs-2.6.9.tar.gz后,放在MyOS目录下,第一步解压
1 | sudo tar zxvf bochs-2.6.9.tar.gz |
2进入bochs-2.6.9目录下开始编译安装:
1 | sudo make |
1
sudo make install
3安装完成后如图
Bochs的使用
1创建一个软盘映像代码如图所示:
完成以后,在当前目录下就多出了一个a.img
现在我们有了“计算机”和“软盘”,是时候将引导扇区写进软盘了。我们使用dd命令:1
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
其中 boot.bin 文件需要复制到和a.img同一目录下。这行代码中“conv=notrunc”若不用,a.img会被截断,因为boot.bin比a.img小。
2配置Bochs
这一步是为了说明虚拟级的内存大小、硬盘映射和软盘映射都是哪些文件。配置文件bochsrc内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25###############################################################
# Configuration file for Bochs
###############################################################
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
# 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: keymap=$BXSHARE/keymaps/x11-pc-us.map
然后再输入命令:1
bochs -f bochsrc
会出现下面内容,然后选择6,若出现黑色的框也就是Bochs那就是成功啦,然后再终端输入c,大功告成!!
用Bochs调试操作系统
我们以开始的引导扇区为例,在07c00h处设置断点,从这里开始执行,然后单步执行,和其他调试工具一样。同时在任何时刻你都可以查看CPU寄存器,或者查看某个内存地址处的内容。下面我们具体操作一下:
注意!!!: bochs 2.3.5 以上的版本没有dump_cpu了,可以用r,fp,mmx,sse,dreg,sreg,creg命令代替。
附录调试命令:
接着安装GCC和NASM
查看某软件是否安装的命令 * -v
下载安装某软件的命令,1
2
3sudo apt-get install build-essential ***
例子:安装nasm
sudo apt-get install build-essential nasm