【操作系统】Bochs安装和配置

        Bochs是使用C++编写的高度可移植开源IA-32(X86)PC模拟器,能在大多数流行的平台上运行。它包括模拟Intel x86 CPU、常见I/O设备和自定义BIOS。Bochs可以被编译以模拟许多不同的x86 CPU,从386早期到最新的x86-64英特尔和AMD处理器甚至可能还没有进入市场。Bochs能跑仿真中的大多数操作系统(例如DOS),Linux或Windows。

一.下载和编译

        可以在官网:https://sourceforge.net/projects/bochs/files/bochs/ 下在源码,本文下载的版本为2.6.11。

        下载的压缩文件使用指令“tar –zxvf bochs-2.6.11.tar.gz”解压文件,解压完成后进入文件夹目录中,开始执行编译操作。

默认配置编译

        使用指令“./configure”可以直接按照默认的配置运行源码编译操作,位于目录下的”configure”脚本可以检测你机器的一些基本配置,比如C/C++编译器、环境依赖库等,以便发现那些设置可以在系统上面工作。

手动配置选项编译

         如果你想自己设定一些配置,可以在”./configure”后面追加一些配置项以便在编译时将功能带上,如果不知道有什么可以配置,可以使用“./configure --help”来查看支持的配置项:

【操作系统】Bochs安装和配置_第1张图片

        比如本例中,我将使用以下配置信息进行编译:

“./configure  --prefix=/user_path  --enable-debugger-gui  –enable-disasm  --enable-iodebug  --enable-x86-debugger  –with-x  --with-x11”

         这些配置信息的作用如下:

配置名称

作用

--prefix

设置安装bochs的目录路径

--enable-debugger-gui

打开Bochs内部拥有gui界面的调试器

--enable-disasm

使得Bochs支持反编译

--enable-iodebug

启用io接口调试器,常常与--enable-debugger一起搭配使用

--enable-x86-debugger

启用X86调试器

–with-x

启用X窗口

--with-x11

启用X11图形用户窗口

         编译成功后会在当前文件夹生成一个状态文件”./configure.status”记录配置信息,并且在每个源代码目录中创建以恶搞Makefile以及config.h文件夹,其中所有的选项值都是为了预处理器#define编写的。

【操作系统】Bochs安装和配置_第2张图片

        配置完成后会生成Makefile文件,使用指令”make”开始编译程序:

        在make结束后再执行“make  install”开始安装程序(安装的路径就是上面—prefix中设置的路径):

        安装完成后,在安装路径下既可以看见文件夹目录

二.Bochs配置

        安装完成后还需要编写配置文件才能让Bochs开始模拟PC环境,这个配置就类似于电脑的BIOS程序,BIOS会显示各种硬件的信息以及硬件的启动顺序等,Bochs要想模拟计算机,它就得知道这台计算机的配置是什么样子的,有哪些硬件?启动顺序是什么?软盘启动还是硬盘启动?这些都是需要在配置文件中说明,并且导入到Bochs中。

          在路径下的文件:bochs/share/doc/bochs/bochsrc-sample.txt为配置文件的参考例子,说明了每个配置项的具体使用定义:

【操作系统】Bochs安装和配置_第3张图片

        以下贴出博主自己经常使用的配置信息以供参考,更多配置请自行查看上面的样例(文件名为boch.disk):

megs:32  //关键字megs,用于设置Bochs在运行时能够使用的内存,本例为32MB
romimage:file=XXX /bochs/share/bochs/BIOS-bochs-latest  //设置实际机器的BIOS,地址看你的安装路径
vgaromimage:file=XXX/bochs/share/bochs/VGABIOS-lgpl-latest  //设置实际机器的VGA BIOS,地址看你的安装路径
boot:disk  //使用硬盘启动,如果使用软盘启动则为boot:floopy
log:bochs.out  //日志输出文件名
mouse:enabled=0  //关闭鼠标
keyboard:keymap=XXX/bochs/share/bochs/keymaps/x11-pc-us.map  //打开键盘
ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14  //硬盘设置信息
ata0-master:type=disk,path="XX.img",mode=flat,cylinders=121,heads=16,spt=63  //硬盘的设置信息,其中path=”XXX”为后续生成的xxx.img文件的路径,没有这个镜像文件的话启动会失败。

三.镜像生成和Bochs运行

        只有配置文件还不能够运行让模拟系统运行,这就相当于你只是买了一大堆零散的硬件,配置文件把它们组装起来而已,还有关键的MBR程序、操作系统这些软件还需要你亲自编写才能真正得运行。当然你也可以直接运行Bochs程序:

【操作系统】Bochs安装和配置_第4张图片

        如果你能进入到这个界面,说明你的Bochs已经安装成功,剩下的就是启动程序怎么写,内核怎么写以及操作系统怎么编的问题了。众所周知,程序需要有介质进行存放的,Bochs提供了一个创建虚拟硬盘的工具,路径位于“/bin/bximage”,该工具可以生成一个空白的硬盘,我们写的程序就可以往硬盘里面写,让Bochs来读取该硬盘的程序。

         Bximage工具的使用方法可以使用后缀参数”--help”来查看:

【操作系统】Bochs安装和配置_第5张图片

         我们参照以上格式生成一个简单的60MB的虚拟硬盘:

        参数说明如下:

指令

作用

-fd

创建软盘

-hd

创建硬盘

-mode

创建硬盘的类型,如flat、sparse、growing

-size

创建硬盘的大小,MB为单位

-q

以静默模式创建,创建过程中不会和用户交互

         创建成功后,我们会在boch.disk文件(不知道这个是什么的请看第二点Bochs配置)里面添加该镜像文件,镜像文件中添加我们自己写的MBR程序、引导程序等,Bochs就可以开始模拟我们所编写的系统啦。

         比如本人已经编写好了一个简单的MBR程序,而且也已经写入到镜像里面,这时候只要运行Bochs程序:

【操作系统】Bochs安装和配置_第6张图片

        这里可以看到默认是选择6的,6的功能就是开始模拟,我们直接按下回车,程序就会开始模拟:

【操作系统】Bochs安装和配置_第7张图片

        这时候就可以看到有调试信息以及弹出一个模拟的窗口,我们在命令行里面输入“c”以便让模拟继续往下进行,就可以看到你写的系统是否正常了:

【操作系统】Bochs安装和配置_第8张图片

        如果你想知道”c”代表什么意思,可以直接输入”help”查看指令使用说明:

【操作系统】Bochs安装和配置_第9张图片

        如果想要知道MBR程序怎么编写的,可以查看之前写过的文章:【操作系统】计算机硬件软件知识汇总

你可能感兴趣的:(操作系统,bochs,模拟计算机,操作系统‘)