翻译-ARM平台下的硬件支持虚拟化.docx
文本预览下载声明
ARM平台下的硬件支持虚拟化作者:Prashant Varanas, Gernot Heiser摘要ARM是用在移动设备和多种高端嵌入式系统的上的处理器体系结构。去年年底ARM发布了支持硬件虚拟化的架构,这使得在客户机上运行未经修改的操作系统二进制文件成为可能。为此,我们已经设计实现了一个虚拟机监控器,我们认为这个虚拟机监控器是是第一个运用了ARM硬件虚拟化扩展的全虚拟化虚拟机监控器。并且,我们在虚拟硬件上对其做了评估。本文中,我们将描述我们的设计方法并报告我们对该体系结构的一些经验。类别和主题描述:D.4.7(操作系统):组织和设计一般条款:设计关键词:虚拟机监控器,虚拟机,体系结构,硬件支持,ARM引言虚拟化技术,以前主要应用于数据中心和企业计算基础设施中,而现在受到成本和安全需要的驱使,已经蔓延到了嵌入式系统。ARM,这种高端移动设备的主流体系结构并不是虚拟化友好架构。这意味着ARM架构下的虚拟化技术需要二进制翻译或者半虚拟化改造。二进制翻译技术对于移动设备来说需要耗费太多资源。而半虚拟化技术需要使每个受支持的操作系统适应特定的虚拟机监控程序的接口,这将付出很大的工程代价。在服务器的世界,x86架构占领着绝对统治的地位(x86也不是虚拟化友好架构)。虚拟化的繁荣发展使得其架构有了硬件支持虚拟化扩展。这使得在虚拟机上运行未经更改的本机操作系统二进制文件有了最小限度的性能损耗,大大简化了实现虚拟机监控程序并减小了性能开销。上面所说的有关硬件虚拟化的一切都正在嵌入式处理器世界发生。因为,去年,ARM沿着相似于x86处理器制造商的路线,发布了在其架构上的虚拟化硬件扩展。在本文中,我们提出了第一个使用ARM硬件虚拟化扩展支持的完全虚拟化的虚拟机监控器,它能够同时运行多个未经修改的Linux客户机。同时,我们总结了使用这一新的硬件扩展的经验。不幸的是,只有非常有限的性能评估,因为缺乏真正的硬件,现在的虚拟化硬件扩展只在时间不精确的模拟器上。本文接下来的的结构如下:第二节,概述当前已有的相关工作。第三节,介绍ARM架构的概况;ARM虚拟化硬件扩展;以及和x86架构的对比。第四节,概述我们的设计。第五节,提出虚拟机监控器的实现;第六节,展示我们的虚拟机监控器的TCB大小和指示性的性能数据。第七节,讨论我们对于ARM架构虚拟化硬件扩展的经验。第八节,得出本文的结论。相关工作Open Kernel Labs, VMware 和 Red Bend Software都提供了商用的ARM平台虚拟化解决方案,这些都使用半虚拟化。Green Hills Software?使用ARM架构特有的True Zone特性提供了能够运行未修改操作系统的虚拟机监控器。但架构限制了使他只能运行单个虚拟机。三星公司把Xen移植到了ARM平台,但是性能非常差,一个Linux客户机只有大约一半的相对于宿主机的性能。唯一能够看到性能数据的商用产品OKL4 microvisor性能也比原先低约一个数量级。X86平台的虚拟机监控器NOVA,类似于OKL4 microvisor和我们的设计,使用微核结构来减小虚拟机的TCB。Fisher-Ogden在Intel和AMD处理器上深入分析了x86的虚拟化硬件扩展。Adams 和Agesen发现二进制翻译性能优于完全虚拟化,但这是在硬件虚拟化扩展不包括内存管理单元虚拟化时的实验结论。后来的一个实验发现内存管理单元虚拟化显著降低了性能开销,尤其是使用大页表的时候。而ARM虚拟化扩展已经包括了内存管理单元虚拟化。ARM体系结构ARM体系机构已经发展了几十年。这里,我们的重点在最新的版本v7中,这是一个支持硬件虚拟化扩展的版本。概述ARM是一个32位精简指令集体系结构,包括16个通用(GP)寄存器(包括程序计数器)。该架构有一个非特权处理器运行模式(用户模式)和六个有特权的内核模式。所有的内核模式都具有相同的特权级,他们的区别在于使得他们进入的不同异常、运行时允许使用的异常和堆积的寄存器的数量。ARM架构支持一种叫做TrustZone的特性,它提供了一个正交处理器模式,叫做安全模式。硬件资源(内存和芯片设备)被配置为总是可用或只能在安全模式使用。而安全模式和非安全模式的转换则是在一个叫做管理者模式的超级权限的模式下。在启动时,处理器首先进入安全模式下的内核模式。TrustZone可以在其他本地代码之外运行一个未经修改的本地操作系统,类似于虚拟化。其原理是通过在非安全模式运行客户操作系统而在安全模式运行其他的代码。这不是真正的虚拟化,而起只支持单个客户机。标准的ARM指令集使用32位指令。其显著的功能是指令预测及支持复杂索引和地址寄存器更新的桶移位器。一个系统协处理器包括内存管理单元,缓存控制和性能检测单元。更高级的协处理器(cp15)可以
显示全部