Bochs简介-用于GeekOS课程设计

BochsPC模拟器

Bochs是一个x86硬件平台的模拟器。换句话说,它可以模拟各种硬件的配置。当启动到Bochs时,看起来就好像你在自己的PC上启动了另外一个PC。Bochs模拟的是整个PC平台,包括I/O设备、内存和BIOS。更为有趣的是,甚至可以不使用PC硬件来运行Bochs。事实上,它可以在任何编译运行Bochs的平台上模拟x86硬件。通过改变配置,可以指定使用的CPU(386、486或者586),以及内存大小等。一句话,Bochs是电脑里的“PC”。根据需要,Bochs还可以模拟多台PC,此外,它甚至还有自己的电源按钮。

目前, Bochs 可以模拟 386, 486, Pentium Pro 或者 AMD64 CPU 。Bochs 的模拟环境中也可以运行大部分的操作系统,包括 Linux, Windows 95, DOS, Windows NT 4, FreeBSD, MINIX 等。 Bochs 由 Kevin Lawton 创建,此项目当前仍由他维护。

Bochs的安装和使用

bochs有Linux和Windows等不同环境的软件安装包,用户根据操作系统平台下载相应的版本。如果用户选择在Cygwin中开发调试则选择Windows版本下载。在Windows系统下安装Bochs非常简单,直接运行安装软件,按提示操作就可完成。在Linux系统中需先解压软件包,然后再配置编译生成系统文件。
推荐使用的Bochs 版本是2.0以上,版本2.1.1可以很好的运行GeekOS。

Bochs系统文件

为了模拟一台计算机执行一个操作系统软件,bochs需要几个文件来代替PC机硬件的不同部分:
①bochs—模拟器程序本身
②BIOS-bochs-lastest—模拟bochs硬件的BIOS。
③VGABIOS-lgpl-lastest—模拟bochs显示系统的BIOS。
(新版2.3及以后版本bochs不需要手动配置bios了,可以删除这部分配置)
④bochsrc.txt—描述模拟器硬件配置的配置文件。
⑤disk image(.img)—包含了一个模拟器能引导的操作系统镜像

Bochs配置文件说明

Bochs使用配置文件中的信息来寻找使用的磁盘镜像文件,运行环境配置以及其他一些模拟器的配置信息。每个仿真系统都需要一个配置文件,配置文件后缀一般为.bxrc,这类后缀的文件可以直接被Bochs打开。

BIOS引导模拟程序,这里使用了”BXSHARE”变量即bochs的安装目录,这些文件在安装目录下,romimage用于控制PC第一次上电后该做些什么,一般可以使用Bochs自带的BIOS-bochs-latest文件。
romimage:file=$BXSHARE\BIOS-bochs-latest,address=0xf0000
VGA使用,vgaromimage要求用户在C0000载入VGA ROM BIOS,这里可以使用Bochs自带的VGABIOS-lgpl-latest文件。
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
megs用于设置模拟系统的内存,这里使用的是8MB。
megs:8
引导盘镜像文件, boot用来定义模拟机器中踊跃引导启动的驱动器,可以为软盘硬盘或CDROM,这里使用虚拟软盘A来进行引导系统。
boot:a
floppya和floppyb分别表示第一个软驱和第二个软驱,如果需要从一个软盘上来引导系统则floppya就需要指向一个可引导的磁盘。
floppya: 1_44=fd.img, status=inserted
ata0用于启动模拟系统中的ATA通道,对于每个通道必须指明两个IO基地址和一个中断请求号。
ata0-master: type=disk, path=diskc.img, mode=flat, cylinders=40, heads=8, spt=64
log用于记录日志信息。
cpu用于指定cpu参数,其中ips表示每秒钟的仿真命令数。
mouse用于指定模拟鼠标行为的参数。
keyboard用于指定模拟键盘行为的参数。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值