在学习操作系统时需要用虚拟机进行实验,Bochs虚拟机即是免费的又能够在里面进行调试,因此现在改用Bohcs虚拟机。以下记录了安装和配置的过程(仅在windows下)。
下载安装Bochs
可以在此处进行下载:
下载完成后运行安装,建议安装到不需要管理员权限的位置。
配置虚拟机
参考自,在bochs根目录下新建一个文件bochsrc
,内容为:1
2
3
4
5
6
7
8
9
10
11
12
13
14megs:32
romimage:file=$BXSHARE/BIOS-bochs-latest
vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
floppya:1_44=a.img,status=inserted
boot:floppy
log:bochsout.txt
mouse:enabled=0
keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map
其中,floppya为A盘的软盘映像,若需要使用B盘,可以加上一行floppyb的配置。
创建虚拟软盘
运行bximage
,进行软盘创建:
可以看到这个默认的a.img
就是上一步中的a盘,我们将二进制文件复制进去运行。
运行虚拟机
在Bochs的根目录下,按shift+右键
打开power shell窗口,输入1
.\bochs.exe -qf bochsrc
运行刚刚配置好的虚拟机(注意,此时a.img
中的首扇区必须有正确格式的引导程序,否则会报错)
使用dd进行文件合并
在修改软盘时,每次都要用WinHex
进行手动修改实在是太麻烦了,Linux上有dd进行文件合并、分割,万幸,在Windows下也有dd for Windows
可以帮助我们进行文件合并与分割,下载链接在这里(已修改)
使用时,可以用以下语句:1
dd if=3_2_0.bin of=a.img bs=512 count=1
- if:输入文件
- of:输出文件
- bs:每一块的默认大小(512字节)
- seek:在输出时,跳过of的块数量
- skip:在复制时,跳过if的块数量
- count:复制的块的数量
- conv:输出时文件格式,其中conv=notrunc为不截断输出文件
- 还有其它参数及conv的其它值可进行选择,这里只举出常用的不一一列举。