一、我的环境
1.VMware® Workstation 16 Pro 16.0.0 (Win10)
2.Ubuntu16.04(32位)
二、bochs的安装
1.下载bochs-2.6.2.tar.gz
2.配置好VMwareTools的前提下(三、1.),把bochs-2.6.2.tar.gz拖入Ubuntu中
3.解压(我把bochs-2.6.2.tar.gz放在**/home/forrest**主目录下)
4.cd bochs-2.6.2
三、configure + make + make install
1.configure
./configure \
--prefix=/home/forrest/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11
《操作系统真象还原》书上解释了意思,此处以及下文均不解释,只给流程以及出现问题的解决办法
2.make
(1)报错1
解决办法:
(2)报错2
解决办法:
sudo apt-get install xorg-dev
(3)报错3
解决办法(来自参考文献):
(4)注意
但凡搭建过环境的小伙伴应该懂搭环境的辛酸,表面一样的报错可能在网上有不同的解决方案,但有的方案“解决了”当前的问题之后又会引发一些问题。所以在参考别人的解决办法时请思考下,而不是无脑操作。
我的辛酸之处:①这个问题,有的解决方案是,在configure中增加
--with-nogui
;这仅仅是忽略问题从而没报错…(之后会安装失败)
②正确的思路应该是:既然缺少文件/目录,很可能少装了库。
③
一个经验之谈:搭环境遇到的问题大多是因为缺少依赖库导致的。
3.make install
如果把库都补齐了,这步基本顺利通过
4.安装成功的标致:生成了bochs文件夹(在我们自己定义的安装目录下)
四、配置bochs
1.bochsrc.disk(进入bochs, 新建bochsrc.disk)
# 设置 Bochs 在运行过程中能够使用的内存,本例为 32MB
megs: 32
# 设置对应真实机器的 BIOS 和 VGA BIOS
romimage: file=/home/forrest/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/forrest/bochs/share/bochs/VGABIOS-lgpl-latest
# 设置 Bochs 使用的磁盘
# floppya: 1_44=a.img, status=inserted
# 选择启动盘符
boot: disk # 从硬盘启动
# 设置日志文件输出
log: bochs.out
# 关闭鼠标,打开键盘
mouse: enabled=0
#keyboard: enabled=1,
keyboard:keymap=/home/forrest/bochs/share/bochs/keymaps/x11-pc-us.map
# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
# 增加 Bochs 对 GDB 的支持,GDB 远程连接到此机器的 1234 端口便可调试
#gdbstub: enabled=1, port=1234, test_base=0, data_base=0, bss_base=0
五、运行bochs
1.bin/bochs -f bochsrc.disk
①在bochs目录下
②没有-f bochsrc.disk也行,之后会请求输入配置文件bochsrc.disk
2.流程
enter->出现黑框->键入c
启动盘的实验在第2章
3.创建虚拟硬盘
(1)流程
等效于
bin/bximage -hd -mode="flat" -size=60 -q hd60M.img
(2)更新配置文件
六、参考文献
1.简易内核实现笔记(一)