bochs模拟器:使用

本文将介绍bochs模拟器的使用,前面介绍了bochs如何通过源码的方式安装,参考这里,安装之后是没法直接使用的,要正常的将bochs模拟器运行起来,还需要至少两样东西:一是bochs的配置文件,主要是描述待启动的虚拟机的配置,例如内存大小、启动镜像、网络功能、存储配置等;二是一个可用的操作系统镜像,用于在虚拟机上运行操作。下面分别做简单介绍。

bochs的配置文件

bochs运行后,会先查找配置文件,解析模拟器要虚拟的系统相关信息后启动系统。

配置文件的查找顺序

默认的配置文件一般命名为bochsrc或.bochsrc或bochsrc.txt,当然可以在命令行时通过-f命令直接指令配置文件路径,这样对配置文件命名就没有特定的要求。如果未通过-f命令指令待加载的配置文件,bochs会按照如下顺序去自动查找配置文件:

  • 在当前目录(bochs命令执行的目录)下查找.bochsrc文件
  • 在当前目录下查找bochsrc文件
  • 在当前目录下查找bochsrc.txt文件
  • 在当前目录下查找bochsrc.bxrc文件(仅限于本地系统为win32)
  • 在用户的主目录下查找.bochsrc文件(仅限于本地系统为类Unix)
  • 在用户的主目录下查找bochsrc文件(仅限于本地系统为类Unix)

配置文件内容解析

下面只是简单介绍几个配置参数,配置文件的内容解析更多细节请参考这里

配置文件中是以key: value来配置参数,通常一个简单的bochs的配置文件看起来如下:

megs: 32
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vga: extension=vbe, update_freq=15
floppya: 1_44=a.img, status=inserted
boot: floppy
log: bochsout.txt
mouse: enabled=0
cpu: ips=15000000
  • megs:指定主机给虚拟机分配的内存大小,以及指定虚拟机模拟的内存大小。如果主机和虚拟机内存大小分配不一样,可以使用memory: guest=A, host=B的方式。megs相当于指定虚拟机模拟的内容大小和主机给虚拟机分配的物理内存大小一致,等同于memory: guest=A, host=A,默认情况下,内存大小是32M。
  • romimage:指定bios镜像的路径,一般使用bochs提供的默认值即可,安装完成后bochs提供的bios镜像位置位于=$BXSHARE/BIOS-bochs-latest
  • vgaromimage:指定vga bios镜像的路径,一般使用bochs提供的默认值即可,安装完成后bochs提供的bios镜像位置位于=$BXSHARE/VGABIOS-lgpl-latest
  • vga:定义vga显示的参数,例如update_freq表示屏幕显示每秒刷新的次数
  • floppya:指定软盘镜像的位置
  • boot:指定启动顺序,本文中boot: floppy只指定了先从软盘中读取是否有启动分区,也可以指定从硬盘、cd等中启动系统
  • log:指定bochs日志记录的位置
  • mouse:指定鼠标启用的信息
  • cpu:指定bochs模拟的虚拟机中的cpu信息

bochs镜像

按照上文配置之后,还需要一个能启动的软盘镜像,才能真正的进入到虚拟机系统。还好,bochs官方提供了一些已经制作好的软盘虚拟机系统供我们使用,我们可以从官网下载的镜像直接使用,下载地址:https://bochs.sourceforge.io/diskimages.html

我们下载一个来测试一下,本文下载的是freedos的一个软盘启动镜像,下载地址参考这里,下载之后解压,会出现目录freedos-img,进入目录后如下:

freedos-img
├── a.img
├── b.img
├── bochsrc
├── bx_enh_dbg.ini
└── c.img

可以查看一下配置文件bochrc的内容:

$ cat bochsrc
megs: 32
romimage: file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vga: extension=vbe, update_freq=15
floppya: 1_44=a.img, status=inserted
floppyb: 1_44=b.img, status=inserted
ata0-master: type=disk, path=c.img, cylinders=306, heads=4, spt=17
boot: c
log: bochsout.txt
mouse: enabled=0
cpu: ips=15000000

从软盘镜像启动,使用命令启动bochs -f bochsrc,用freedos自带的配置文件,启动如下:

freedos-img$ bochs -f bochsrc 
========================================================================
                        Bochs x86 Emulator 2.7
              Built from SVN snapshot on August  1, 2021
                Timestamp: Sun Aug  1 10:07:00 CEST 2021
========================================================================
00000000000i[      ] BXSHARE not set. using compile time default '/usr/local/share/bochs'
00000000000i[      ] reading configuration from bochsrc
------------------------------
Bochs Configuration: Main Menu
------------------------------

This is the Bochs Configuration Interface, where you can describe the
machine that you want to simulate.  Bochs has already searched for a
configuration file (typically called bochsrc.txt) and loaded it if it
could be found.  When you are satisfied with the configuration, go
ahead and start the simulation.

You can also start bochs with the -q option to skip these menus.

1. Restore factory default configuration
2. Read options from...
3. Edit options
4. Save options to...
5. Restore the Bochs state from...
6. Begin simulation
7. Quit now

Please choose one: [6] 
00000000000i[      ] installing x module as the Bochs GUI
00000000000i[      ] using log file bochsout.txt
Next at t=0
(0) [0x0000fffffff0] f000:fff0 (unk. ctxt): jmpf 0xf000:e05b          ; ea5be000f0
<bochs:1> c

因为我们使用的是debug版本,因此选择6. Begin simulation,启动后会进入调试模式,需要输入c才会继续运行,启动成功后,bochs界面如下:

bochs启动界面
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容