使用qemu进行系统仿真

使用qemu进行系统仿真

ID:31220733

大小:80.35 KB

页数:6页

时间:2019-01-07

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

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

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

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

3、,或作为完整的机器仿真器使用,运行使用主机CPU或其他CPU架构的操作系统。回页首虚拟化简介我们首先简要介绍一下虚拟化,阐述QEMU的搭建背景。木文中介绍的虚拟化实际上指的是平台虚拟化。在物理硕件上,控制程序可能是主机操作系统或管理程序(见图1)。在某些情况下,主机操作系统就是管理程序。来宾操作系统位于管理程序中。在某些情况下,來宾操作系统与控制程序使用相同的CPU,而在另外一些情况下,则可能不同(比如PowerPC来宾操作系统在x86硬件上运行)。图1.平台虚拟化的基本架构GuestOSGuestOS•••HostOpenatingSystemorHy

4、pervisorPhysicalHardware您可以通过多种方法实现虚拟化,但是最常见的有三种。第一种称为本地虚拟化(或全虚拟化)。在这种虚拟化屮,管理程序实现基本的隔离元素,将物理硬件与来宾操作系统相分离。这种技术首次出现于1966年IBM®CP-40虚拟机/虚拟内存操作系统中,另外VMwareESXServer也使用了此技术。另一种流行的虚拟化技术称为羊虚扱化。在半虚拟化屮,控制程序实现了管理程序的应用程序接口(API),它将由来宾操作系统使用。Xen和LinuxKernel-basedVirtualMachine(KVM)都使用了半虚拟化技术。第

5、三种有用的技术称为彷•真。仿真,顾名思义,通过模拟完整的硬件环境來虚拟化來宾平台。仿真可通过多种方法实现,即使在同一个解决方案屮也是如此。通过仿真实现虚拟化的技术有QEMU和BochSo回页首QEMU架构我们首先了解一下QEMU如何实现仿真。本节将介绍QEMU的两种操作模式,以及QEMU动态翻译程序的一些有趣特点。QEMU基本操作QEMU支持两种操作模式:用户模式仿真和系统模式仿真。用户模式仿真*斎一个CPU构建的进程在另一个CPU上执行(执行主机CPU指令的动态翻译并相应地转换Linux系统调用)。系统競式莎真允许对樂个系统进行仿真,包括处理器和配套的

6、外围设备。在X86主机系统上仿真X86代码时,使用QEMU加速器可以实现近似本地的性能。这让我们能够直接在主机CPU上执行仿真代码(在Linux上通过kernel模块执行)。但是从技术角度看,QEMU的有趣之处在于其快速、可移植的动态翻译程序。动态翻译程序咒许在运行时将用于目标(来宾)CPU的指令转换为用于主机CPU,从而实现仿真。这可以通过一种强制方法实现(将指令从一个CPU映射到另一个CPU),但是情况并非总是这样简单,在某些情况下,根据所翻译的架构,可能需要使用多个指令或行为更改。QEMU实现动态翻译的方法是,首先将冃标指令转换为缺作;这些微操作是

7、一些编译成对象的C代码。然后构建核心翻译程序。它将目标指令映射到微操作以进行动态翻译。这不仅可产生高效率,而且还可以移植。QEMU的动态翻译程序还缓存了翻译后的代码块,使翻译程序的内存开销最小化。当初次使用目标代码块时,翻译该块并将其存储为翻堺后加”%?块。QEMU将最近使用的翻译后的代码块缓存在一个16MB的块中。QEMU甚至可以通过在缓存中将翻译后的代码块变为无效来支持代码的自我修改。要了解QEMU及其动态翻译程序的更多内部细节,请参阅参考资料一节屮FabriceBellard(QEMU的作者)所撰写的有趣文章。受支持的外围设备将QEMU作为PC系统

8、仿真器使用可提供各种外圉设备。需要的标准外圉设备包括硬件VideoGraphic

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

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

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