《操作系统真象还原》——1.4 配置bochs-阿里云开发者社区

开发者社区> 数据库> 正文

《操作系统真象还原》——1.4 配置bochs

简介: Bochs既然是模拟硬件的,它就得知道,您需要它模拟的计算机是什么样的,换句话说,在这个虚拟机中有哪些硬件,启动顺序是什么,是从软盘开始,还是从硬盘开始?人家也得像模像样地跟BIOS差不多才行。

本节书摘来自异步社区《操作系统真象还原》一书中的第1章,第1.4节,作者:郑钢著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 配置bochs

安装完成后该配置bochs了,它是通过配置文件完成的。

要说这个配置文件,它有点类似BIOS。我们在开机时按下的del、esc,或者F2键,各个机型进入BIOS方式有所不同,但差不多就那几种方式。BIOS中会显示各种硬件的信息,还有启动顺序等。Bochs既然是模拟硬件的,它就得知道,您需要它模拟的计算机是什么样的,换句话说,在这个虚拟机中有哪些硬件,启动顺序是什么,是从软盘开始,还是从硬盘开始?人家也得像模像样地跟BIOS差不多才行。给bochs配置硬件的方法,就是写一个配置文件给它,bochs启动时会找到此文件,根据文件内容创建自己,这样咱们的虚拟机就健全了。

在安装目录下有样本文件:share/doc/bochs/bochsrc-sample.txt。由于此文件有1130行,确实有些长,就不贴出来了,摘点重点内容,关于启动顺序,可参见该文件的以下几行(左列的数字是行号)。

…
…
 531 #================================================
 532 # BOOT:
 533 # This defines the boot sequence. Now you can specify up to 3 boot drives,
 534 # which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
 535 # Legacy 'a' and 'c' are also supported.
 536 # Examples:
 537 #  boot: floppy
 538 #  boot: cdrom, disk
 539 #  boot: network, disk
 540 #  boot: cdrom, floppy, disk
 541 #===============================================
 542 #boot: floppy
 543 boot: disk


下面是能够支持gdb的bochs配置文件,给大家当作参考。
[work@localhost bochs]$ cat bochsrc.disk  用cat命令显示bochsrc.disk
###############################################
# Configuration file for Bochs
###############################################

# 第一步,首先设置Bochs在运行过程中能够使用的内存,本例为32MB。
# 关键字为:megs

megs: 32

# 第二步,设置对应真实机器的BIOS和VGA BIOS。
# 对应两个关键字为:romimage 和 vgaromimage

romimage: file=/实际路径/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/实际路径/bochs/share/bochs/VGABIOS-lgpl-latest

# 第三步,设置Bochs所使用的磁盘,软盘的关键字为floppy。
# 若只有一个软盘,则使用floppya即可,若有多个,则为floppya,floppyb…
#floppya: 1_44=a.img, status=inserted

# 第四步,选择启动盘符。
#boot: floppy  #默认从软盘启动,将其注释
boot: disk    #改为从硬盘启动。我们的任何代码都将直接写在硬盘上,所以不会再有读写软盘的操作。

# 第五步,设置日志文件的输出。
log: bochs.out

# 第六步,开启或关闭某些功能。
# 下面是关闭鼠标,并打开键盘。
mouse: enabled=0
keyboard_mapping: enabled=1, 
map=/实际路径/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, text_base=0, data_base=0, bss_base=0

################### 配置文件结束 #####################

好了,现在将上面的配置文件存为bochsrc.disk放在bochs安装目录下。(bochs配置文件位置不固定,名字也不要求固定),后缀.disk是我人为加的,为了表示此配置文件配置的内容是从硬盘启动,这样较明确。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章