使用 QEMU 进行系统仿真.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用 QEMU 进行系统仿真

使用 QEMU 进行系统仿真M. Tim Jones?(mtj@), 咨询工程师, Emulex 简介:?QEMU PC 系统的开源仿真器。除了仿真处理器外,QEMU 还允许仿真所有必要的子系统,如连网硬件和视频硬件。它还允许实现高级概念上的仿真(如对称多处理系统(多达 255 个 CPU)和其他处理器架构(如 ARM 和 PowerPC)。本文将研究 QEMU 及其架构,并展示了如何在 Linux? 主机上仿真来宾操作系统。 标记本文!发布日期:?2007 10 月 22 日? 级别:?? 访问情况 :?11192 ? 评论:?2?(?|?添加评论?- 登录) ?平均分 (11个评分) 为本文评分QEMU 是什么? 目前,简单地将虚拟化称为一种热点技术似乎有些保守。 在 google 有哪些信誉好的足球投注网站?virtualization? 2200 万条记录。例如,在短短的一个月内,EMC 公司宣布为 VMware 首次公开募股,Citrix Systems 宣布购买 XenSource 的计划,而新起的虚拟化创业公司随处涌现。在虚拟化产品的巨大市场上,不断出现各种新兴的小型市场。但是时下在热议有关虚拟化的首次公开募股和收购时,容易忽略一些其他的现有虚拟化技术。 本文所介绍的一种有趣的虚拟化应用程序 QEMU 并非目前的热门技术。QEMU 应用程序适用于各种设置。可用于来宾操作系统的虚拟化,或作为完整的机器仿真器使用,运行使用主机 CPU 或其他 CPU 架构的操作系统。回页首虚拟化简介 我们首先简要介绍一下虚拟化,阐述 QEMU 的搭建背景。 本文中介绍的虚拟化实际上指的是平台虚拟化。在物理硬件上,控制程序可能是主机操作系统或管理程序(见图 1)。在某些情况下,主机操作系统就是管理程序。来宾操作系统位于管理程序中。在某些情况下,来宾操作系统与控制程序使用相同的 CPU,而在另外一些情况下,则可能不同(比如 PowerPC 来宾操作系统在 x86 硬件上运行)。图 1. 平台虚拟化的基本架构 ? 您可以通过多种方法实现虚拟化,但是最常见的有三种。第一种称为本地虚拟化(或全虚拟化)。在这种虚拟化中,管理程序实现基本的隔离元素,将物理硬件与来宾操作系统相分离。这种技术首次出现于 1966 年 IBM? CP-40 /虚拟内存操作系统中,另外 VMware ESX Server 也使用了此技术。 另一种流行的虚拟化技术称为半虚拟化。在半虚拟化中,控制程序实现了管理程序的应用程序接口(API),它将由来宾操作系统使用。Xen 和 Linux Kernel-based Virtual Machine (KVM) 都使用了半虚拟化技术。第三种有用的技术称为仿真。仿真,顾名思义,通过模拟完整的硬件环境来虚拟化来宾平台。仿真可通过多种方法实现,即使在同一个解决方案中也是如此。通过仿真实现虚拟化的技术有 QEMU 和 Bochs。回页首QEMU 架构 我们首先了解一下 QEMU 如何实现仿真。本节将介绍 QEMU 的两种操作模式,以及 QEMU 动态翻译程序的一些有趣特点。QEMU 基本操作QEMU 支持两种操作模式:用户模式仿真和系统模式仿真。用户模式仿真? CPU 构建的进程在另一个 CPU 上执行(执行主机 CPU 指令的动态翻译并相应地转换 Linux 系统调用)。系统模式仿真?允许对整个系统进行仿真,包括处理器和配套的外围设备。 在 x86 主机系统上仿真 x86 代码时,使用?QEMU ?可以实现近似本地的性能。这让我们能够直接在主机 CPU 上执行仿真代码(在 Linux 上通过 kernel 模块执行)。 但是从技术角度看,QEMU 的有趣之处在于其快速、可移植的动态翻译程序。动态翻译程序?CPU 的指令转换为用于主机 CPU,从而实现仿真。这可以通过一种强制方法实现(将指令从一个 CPU 映射到另一个 CPU),但是情况并非总是这样简单,在某些情况下,根据所翻译的架构,可能需要使用多个指令或行为更改。 QEMU 实现动态翻译的方法是,首先将目标指令转换为微操作。这些微操作是一些编译成对象的 C 代码。然后构建核心翻译程序。它将目标指令映射到微操作以进行动态翻译。这不仅可产生高效率,而且还可以移植。QEMU 的动态翻译程序还缓存了翻译后的代码块,使翻译程序的内存开销最小化。当初次使用目标代码块时,翻译该块并将其存储为翻译后的代码块。 QEMU 将最近使用的翻译后的代码块缓存在一个 16 MB 的块中。 QEMU 甚至可以通过在缓存中将翻译后的代码块变为无效来支持代码的自我修改。要了解 QEMU 及其动态翻译程序的更多内部细节,请参阅??一节中 Fabrice Bellard(QEMU 的作者)所撰写的有趣文章。 受支持的外围设备将 QEMU

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档