1.1 什么是Bochs
Bochs是一个能模拟完整Intel X86计算机的程序,包括模拟Intel X86 CPU,I/O设备和BIOS等。
Bochs用C ++编程语言编写,可以在许多不同的架构的计算机上运行(包括X86,MIPS,SUN等架构),无论Bochs软件其所运行的主机是什么,Bochs都可以模拟X86的环境。这既是他的优势又他的是弱点,许多其他X86模拟软件(例如VirtualBox,VMware)是不行的。因为Bochs为每个X86指令都使用了软件来进行模拟(VirtualBox,VMware则是使用虚拟化技术,只能基于X86平台,利用X86平台自身是X86指令的原因,减少了软件模拟这一步),所以它可以在MIPS架构的计算机上运行模拟x86的环境,与此同时这种为每个指令都进行软件模拟也带来了性能的开销,所以Bochs相比较其他的模拟软件,其性能较低。
Bochs一开始本来是一款商业项目,但是后来被人买下捐给GNU了,目前官网在http://bochs.sourceforge.net下,代码托管在https://github.com/bochs-emu/Bochs上。
1.2 谁在用Bochs
用户上,从官网下载的次数超过15万次,这还不包括从镜像网址或者是从github这类网址下载的量。Bochs有许多用途,但是目前用的多的国内都是在搞开发BIOS,开发操作系统这类比较底层的工作在用。其实他还有很多功能,例如运行旧的DOS游戏,当做一个虚拟机,对某些软件进行逆向等。
1.3 其他可以模拟x86的模拟器或虚拟机
QEMU,VirtualBox,VMWare等,对于写操作系统前期(调试汇编程序的时候用Bochs,后期调试C语言的时候用QEMU+GDB)