使用 qemu 进行系统仿真

使用 qemu 进行系统仿真

ID:6082164

大小:435.00 KB

页数:6页

时间:2018-01-02

使用 qemu 进行系统仿真_第1页
使用 qemu 进行系统仿真_第2页
使用 qemu 进行系统仿真_第3页
使用 qemu 进行系统仿真_第4页
使用 qemu 进行系统仿真_第5页
资源描述:

《使用 qemu 进行系统仿真》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用QEMU进行系统仿真M.TimJones (mtj@mtjones.com),咨询工程师,Emulex简介: QEMU是一个面向完整PC系统的开源仿真器。除了仿真处理器外,QEMU还允许仿真所有必要的子系统,如连网硬件和视频硬件。它还允许实现高级概念上的仿真(如对称多处理系统(多达255个CPU)和其他处理器架构(如ARM和PowerPC)。本文将研究QEMU及其架构,并展示了如何在Linux®主机上仿真来宾操作系统。标记本文!发布日期: 2007年10月22日 级别: 初级 访问情况: 11192次浏览 评论: 2 (查看 

2、 添加评论 -登录) 平均分(1

3、1个评分)为本文评分QEMU是什么?目前,简单地将虚拟化称为一种热点技术似乎有些保守。在google搜索 virtualization 一词可得到大约2200万条记录。例如,在短短的一个月内,EMC公司宣布为VMware首次公开募股,CitrixSystems宣布购买XenSource的计划,而新起的虚拟化创业公司随处涌现。在虚拟化产品的巨大市场上,不断出现各种新兴的小型市场。但是时下在热议有关虚拟化的首次公开募股和收购时,容易忽略一些其他的现有虚拟化技术。本文所介绍的一种有趣的虚拟化应用程序QEMU并非目前的热门技术。QEMU应用程序适用于各种设置。可用于来宾操

4、作系统的虚拟化,或作为完整的机器仿真器使用,运行使用主机CPU或其他CPU架构的操作系统。回页首虚拟化简介我们首先简要介绍一下虚拟化,阐述QEMU的搭建背景。本文中介绍的虚拟化实际上指的是平台虚拟化。在物理硬件上,控制程序可能是主机操作系统或管理程序(见图1)。在某些情况下,主机操作系统就是管理程序。来宾操作系统位于管理程序中。在某些情况下,来宾操作系统与控制程序使用相同的CPU,而在另外一些情况下,则可能不同(比如PowerPC来宾操作系统在x86硬件上运行)。图1.平台虚拟化的基本架构 您可以通过多种方法实现虚拟化,但是最常见的有三种。第一种称为本地虚拟化(或

5、全虚拟化)。在这种虚拟化中,管理程序实现基本的隔离元素,将物理硬件与来宾操作系统相分离。这种技术首次出现于1966年IBM®CP-40虚拟机/虚拟内存操作系统中,另外VMwareESXServer也使用了此技术。另一种流行的虚拟化技术称为半虚拟化。在半虚拟化中,控制程序实现了管理程序的应用程序接口(API),它将由来宾操作系统使用。Xen和LinuxKernel-basedVirtualMachine(KVM)都使用了半虚拟化技术。第三种有用的技术称为仿真。仿真,顾名思义,通过模拟完整的硬件环境来虚拟化来宾平台。仿真可通过多种方法实现,即使在同一个解决方案中也是如

6、此。通过仿真实现虚拟化的技术有QEMU和Bochs。回页首QEMU架构我们首先了解一下QEMU如何实现仿真。本节将介绍QEMU的两种操作模式,以及QEMU动态翻译程序的一些有趣特点。QEMU基本操作QEMU支持两种操作模式:用户模式仿真和系统模式仿真。用户模式仿真 允许一个CPU构建的进程在另一个CPU上执行(执行主机CPU指令的动态翻译并相应地转换Linux系统调用)。系统模式仿真 允许对整个系统进行仿真,包括处理器和配套的外围设备。在x86主机系统上仿真x86代码时,使用 QEMU加速器 可以实现近似本地的性能。这让我们能够直接在主机CPU上执行仿真代码(在L

7、inux上通过kernel模块执行)。但是从技术角度看,QEMU的有趣之处在于其快速、可移植的动态翻译程序。动态翻译程序 允许在运行时将用于目标(来宾)CPU的指令转换为用于主机CPU,从而实现仿真。这可以通过一种强制方法实现(将指令从一个CPU映射到另一个CPU),但是情况并非总是这样简单,在某些情况下,根据所翻译的架构,可能需要使用多个指令或行为更改。QEMU实现动态翻译的方法是,首先将目标指令转换为微操作。这些微操作是一些编译成对象的C代码。然后构建核心翻译程序。它将目标指令映射到微操作以进行动态翻译。这不仅可产生高效率,而且还可以移植。QEMU的动态翻译程

8、序还缓存了翻译后的代码块,使翻译程序的内存开销最小化。当初次使用目标代码块时,翻译该块并将其存储为翻译后的代码块。QEMU将最近使用的翻译后的代码块缓存在一个16MB的块中。QEMU甚至可以通过在缓存中将翻译后的代码块变为无效来支持代码的自我修改。要了解QEMU及其动态翻译程序的更多内部细节,请参阅 参考资料 一节中FabriceBellard(QEMU的作者)所撰写的有趣文章。受支持的外围设备将QEMU作为PC系统仿真器使用可提供各种外围设备。需要的标准外围设备包括硬件VideoGraphicsArray(VGA)仿真器、PS/2鼠标和键盘、集成开发环境(IDE

9、)硬盘和C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。