点击此处查看最新的网赚项目教程

Bochs虚拟机介绍

Bochs是一个能够仿真整个Intel x86计算机的程序。Bochs能够仿真386、486、Pentium、Pentium III、Pentium 4乃至x86-64 CPU,同时它还包含了对MMX、SSEx以及3Dnow指令集的支持。Bochs解释从开机到重启的每一条指令,并且支持所有的标准PC外设的驱动模型:包括键盘、鼠标、VGA显卡/显示器、磁盘、时钟芯片、网卡等。Bochs能够仿真整个PC环境,所以运行在这个仿真环境中的程序会认为其运行在一个真实的计算机上。很多软件不用修改即可在Bochs中运行,这其包括大部分流行的x86操作系统:Windows 95/98/NT/2000/XP和Vista,以及所有的Linux,所有的BSD等等。

下载安装bochs

我们可以从bochs.sourceforge.net主页下载Bochs的2.6.2版本。主要下载了Bochs-2.6.2及其配套的开发工具及其DOS操作系统映像,下载文件如下:

Bochs-2.6.2.exe bochs 虚拟机Win32安装文件;bochs-2.6.2.tar.gz bochs 虚拟机原始源码包;bochs-p4-smp.exe bochs 虚拟机SMP补丁文件;fdos-10meg.tar.gz 包含dos映像fdosmini.img和Bochs配置文件bochsrc.txt;WinImage8.50 磁盘映像管理软件,用于编辑img文件;WinPcap_4_1_2.exe windows平台下一个免费,公共的网络访问系统。为win32应用程序提供访问网络底层的能力,bochs虚拟机提供的niclist.exe(获取网卡列表)程序需要WinPcap。niclist.exe获取网卡信息,bochsrc配置文件中配置网卡需要该信息。

直接双击Bochs-2.6.2.exe安装bochs,然后再拷贝bochs-p4-smp.exe到bochs安装目录。然后双击WinPcap_4_1_2.exe,安装WinPcap。

bochs配置文件

Bochs中运行一个操作系统最小需求如下:

Bochs可执行文件;BIOS映像(例如BIOS-bochs-latest);VGA BIOS映像(例如VGABIOS-lgpl-latest) ;至少一种可引导媒体,磁盘映像(软盘,硬盘,或者CD-ROM)或者物理磁盘(软盘或者CD-ROM)都可以。

注意:VGA BIOS还有ROM BIOS都是Bochs的一部分,不必另外再去下载。

Bochs使用一个名为bochsrc的配置文件来确定磁盘映像的位置,Bochs虚拟工作的方式等等信息。当第一次启动Bochs时,它会查找它的配置文件并对其进行解析。详细的配置介绍可查看bochsrc-example.txt配置样本。

ata0-master: bype=disk, path=”fdosmini.img”, cylinder=615, heads=6, spt=17boot: disk

注意这种格式非常的严格,因此一定要正确使用空格符并一定要使用小写字母。正如我们所看到的,配置文件中大多数行都包含了一个关键字,用以说明要进行配置的具体事物。而这个关键字之后一般为一个分号,一些以逗号分开的variable=value对。但是对于有些十分简单的选项而言,只需要一个值即可了。源代码包以及二进制文件包都包含有一个bochsrc的样本文件bochsrc-example.txt,因此只需要复制该文件然后对其进行编辑即可。

bochsr中的语法结构亦可以应用于bochs的命令行参数。如果bochs的命令行参数之间存在空格,则应该使用单引号将各参数引起来,如: bochs ‘boot: floppy’ ‘floopya: 1_44=a.img, status=inserted’ 从1.3版开始,就可以在bochsrc中使用环境变量了,如:

floopya: “$IMAGES/bootdisk.img”, status=insertedboot: floopy

从2.0版开始,编译的过程中设置了两个内建的环境变量.$BXSHARE指向于”share”目录。磁盘映像使用$BXSHARE来定位BIOS映像和键盘映像的目录。如果$BXSHARE未定义,则Bochs将使用默认值。同时$LTDL_LIBIRARY_PATH指向插件可以查找文件的一系列目录(目录之间使用分号来分开)。如果用户没有指定该变量的值,则编译过程会为其指定一个值。在Win32平台,Bochs使用注册表来记录其安装目录以及支持文件目录。下面为所有bochsrc支持的选项:

设置虚拟时使用的物理内存的大小。默认为32MB,对大多数OS而言,32M已经足够了。支持的使用的物理内存的最大值为2048MB。

cpu: count=2, ips=10000000

该选项设置Bochs使用的CPU参数:

count

设置CPU的数目:每CPU的内核:每核的线程(当Bochs配置为SMP版本时)。bochs当前最多支持8个CPU。当然如果Bochs编译时没有选用SMP选项,则不能够使用除1之外的任何数值

ips

每秒钟虚拟的指令数。该值为Bochs在您的机器能够虚拟的IPS的值。IPS用于校准Bochs模拟过程中的许多与时间有关的事件。比如,改变IPS会影响到VGA更新的频率。

romimage: file=$BXSHARE/BIOS-bochs-legacy, address=0xf0000

ROM BIOS控制了PC开机后最初运行的指令。一般地,你可以使用源代码中预先编译后的BIOS或者binary包中的BIOS-bios-latest。

多核版本bochs配置文件生成

双击bochs-p4-smp.exe将弹出以下对话框,该对话框为配置对话框,可以配置虚拟机内存、CPU、PCI、键盘、鼠标等,配置完成后点击Save按钮可以生成bochsrc配置文件:

点击Edit Options里的CPU菜单配置多个CPU,配置情况如下:

其余的使用默认配置,然后点击Save按钮保持配置文件到bochs的安装目录,多核配置文件生成完毕。

bochs运行vxWorks6.8实时操作系统

我们使用dos启动多操作系统引导程序GRUB,然后通过GRUB引导启动vxWorks6.8镜像,首先修改先前生成的bochsrc.txt配置文件,将其中的磁盘配置参数修改为ata0-master: type=disk, path=”fdosmini.img”,其中的path设置为我们先前下载的dos操作系统映像fdosmini.img。其次使用WinImage打开fdosmini.img映像,向fdosmini.img映像映像里添加GRUB引导程序相关文件,主要包含grub.exe、menu.lst、vxworks.elf,然后修改FDAUTO.BAT文件,在文件末尾添加@C:GRUB.EXE,让dos自动启动GRUB,然后GRUB通过menu.lst自动加载风河的vxWorks6.8镜像文件。

由于bochs虚拟机模拟了NE2000网卡,所以vxWorks6.8需要配置NE2000网卡驱动。注意NE2000的IO基地址是通过niclist.exe获取出来的,获取出来的格式如下:

我们需要拷贝ne2k: ioaddr=0x300行到bochsrc配置文件,驱动程序使用的IO基地址必须与上述获取的IO地址一致,否则NE2000驱动程序无法正常工作。

注:禁用VMware虚拟机虚拟的网卡。

下个章节详细介绍适配vxworks6.8操作系统遇到的问题以及解决方案。

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: cx-ziy