boChS中文用户手册.pdfVIP

  • 595
  • 0
  • 约5.38万字
  • 约 32页
  • 2018-12-23 发布于江苏
  • 举报
Bochs中文用户手册 bochs交流QQ群 原文地址:/doc/docbook/user/index.html 12-Jan-09 第1章.Bochs简介 1.1 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使用C++语言编写,且可以运行于多个host平台[1],这其中就包括x86,PPC,Alpha,Sun 以及 MIPS.当然无论是何种host平台,Bochs仿真的平台都是x86.也就说,Bochs并不依赖于host机器 的指令.这即是Bochs与很多其他x86虚拟软件如plex86,Vmware等的主要不同之处,这有好处 也有坏处.好处是因为Bochs能够使用软件来虚拟每一条x86指令, 因此它能够在Sun或者Alpha 平台上仿真运行Windows程序.坏处是Bochs仿真的性能较差. 为了正确仿真x86处理器,每仿真一条指令Bochs需要运行多条指令, 因此使用Bochs仿真的机 器要比现实当中的机器慢上好几倍.商业化的虚拟机能够(Vmware,Connetix,等)通过使用一种 名为”Virtualization”[2]的技术来取得高效率虚拟的效果,但是它们不是不能移植到非x86平台, 就是闭源.一个可用来替代使用”Virtualization”技术的商业x86虚拟软件是开源的Plex86项目. 为了仿真目标机器,Bochs需要与host平台上的操作系统(host OS)打交道.当您在Bochs的显示 窗口中按下键盘时,Bochs就会产生并发送一个按键事件到键盘驱动模型.当仿真机器需要读 取仿真硬盘时,Bochs读取host机器在上的一个磁盘映像文件.当仿真机器需要向局域网发送 网络数据包时,Bochs使用host平台上的网卡来向现实当中的局域网发送数据包.因此,Bochs与 host平台的联系有时会变得非常的复杂, 因此其很多地方的实现都与平台相关.举个例子来说, 在FreeBSD平台上发送数据和Windows95上就不一样. Bochs能够在GNU/Linux 中仿真一个与 现实网络相连的网卡,却不能够在BeOS上的仿真网卡, 因为没有BeOS与Bochs的驱动模型之间 的联系代码. Bochs始于1994的Kevin Lawton.最初Bochs是一款商业软件, 当时可以…的代价来购买其源代码 [3].最终,2000年3月,MandrakeSoft(现在名为Mandriva)购买了Bochs(发行版)并根据GNU LGPL 将其开源.2001年3月,Kevin帮助了一部分开发人员将所有的Bochs相关的内容从转 移到新站点. 自此之后,Bochs就在sourceforge安了家,甚至还一度登上了 sourceforge单周最活跃项目第一名的宝座. [1]Bochs运行于多个不同平台又可仿真多个不同平台.因此在这里我们有必要对一些术语进 行界定:host平台是指运行Bochs的机器.guest平台是Bochs仿真的操作系统和应用程序. [2]Virtualizatoin依靠同为x86平台的这一先天优势,使得大部分仿真能够以原生平台的速度进 行.但是如果仿真机器要与硬件直接打交道或者要求进入特权模式( 比如内核代码),那么仿真 软件就有必要接收控制权然后使用软件来低速仿真相应代码,这与Bochs所做的一模一样. [3]这里我们需要了解Bochs的一些历史.通过探寻 Bochs最初目的以及其用途来了解其背景 知识是十分有趣的一件事.我记得我在一个谈话节目听到Kevin谈起过Bochs编写的原因及其

文档评论(0)

1亿VIP精品文档

相关文档