分享

虚拟机技术简单概述

 treereet 2019-10-15

什么是虚拟机

目前虚拟机技术在服务器、嵌入式领域都有广阔的应用前景。虚拟机技术就是在一个宿主计算机体系结构上模拟运行其他的客户机操作系统,模拟的客户机可以与宿主计算机是同一个体系结构,也可以是不同的体系结构,例如你可以在一个x86计算机上运行基于ARM体系结构的不需要做任何修改的系统。

 

虚拟化技术

虚拟化技术就是虚拟机的实现所采用的一种技术,目前可以分为两大类:硬件虚拟化技术和指令集虚拟化技术。硬件虚拟化技术的典型代表是VMware、Xen等,指令集虚拟化技术的典型代表是Qemu、Boch等。

 

硬件虚拟化

硬件虚拟化是比较流行的虚拟化技术,目前大多的商业版虚拟机都是采用的硬件虚拟化技术。硬件虚拟化直接将宿主系统的硬件系统虚拟化供虚拟机使用。用于宿主系统与虚拟系统具有相同的体系结构,虚拟系统的指令可以直接在宿主CPU上执行,因此可以达到很高的效率。硬件虚拟化使用VMM(Virtual Machine Monitor)来隔离虚拟系统与宿主硬件。VMM可以直接运行在系统硬件上(Type I VMM),也可以运行在宿主操作系统上(Type II VMM)。简单的说,VMM实现了从虚拟资源到物理资源的映射,并利用本地物理资源进行计算。当虚拟系统访问系统资源时(特权指令),VMM将接管这个请求,并将处理结果返回给虚拟机系统,这样就实现了多个硬件设备的虚拟,保证虚拟系统的有效隔离。硬件虚拟化根据VMM的实现不同,又可以分为两类:完全虚拟化(Full-virtualization)和超虚拟化(para-virtualization)。

 

完全虚拟化

完全虚拟化技术在运行时动态执行指令扫描以发现特权指令,然后由VMM显现指令转换以访问系统资源,因此完全虚拟化也可称为动态指令转化(Dynamic Instruction Translation)技术。由于采用动态指令转换技术,完全虚拟化的虚拟机系统不需要做任何修改就可以运行。

完全虚拟化由于要经过VMM动态扫描和转换指令,因此性能要比宿主系统要慢。

 

超虚拟化

超虚拟化技术通过修改虚拟机操作系统的代码来使特权指令产生自陷。超虚拟化不需要扫描和转换特权指令,因此提高了系统的性能,可以得到与宿主系统接近的性能。

 

指令集虚拟化技术(硬件仿真)

由于硬件虚拟化技术的虚拟系统指令直接执行在宿主系统硬件上,因此硬件虚拟化技术要求虚拟系统与宿主系统要有相同的体系结构,这就限制了它的使用范围。指令集虚拟化通过模拟虚拟系统的指令集和必须的外围硬件设备而实现虚拟系统,即硬件仿真系统。由于需要模拟运行虚拟系统的指令集,因此这种技术的性能要低于硬件模拟技术,更适合做嵌入式系统开发的硬件仿真系统。指令集模拟主要有两种执行模式,解释执行(如Boch)和动态编译转换(如QEMU)。动态编译转换技术可以达到比较理想的系统性能。

 

系统实现

VMware

VMware是应用的比较广泛的商业版虚拟机,目前VMware发布了免费版本,VMware Player 和VMware Server。 VMware是一种采用完全虚拟化技术的虚拟机。

Xen

Xen是由剑桥大学计算机实验室发起的开源虚拟机项目,采用超虚拟化技术,Xen支持在x86平台上同时运行多个虚拟操作系统并达到较好性能。

UML

UML,User Mode Linux,也可以称为采用超虚拟化技术的开源虚拟机,它允许在Linux用户空间运行Linux 内核。目前UML已经集成到Linux内核树中,可以在arch/um找到UML的源文件。对于初学Linux内核的人来说,UML是一个很好的选择。UML具有的高性能和快速的启动停止时间使它很适合为内核开发人员提供测试功能。coLinux允许在Windows上运行Linux内核,与UML不同,coLinux内核的执行实在Ring0级的。

QEMU

QEMU是一种采用动态翻译技术的开源指令集模拟器,通过KQemu技术可以达到完全虚拟化接近的性能。由于采用动态翻译技术,它不是一种精确时钟模拟器。QEMU可以支持多种Guest和Host体系结构,x86, ARM, MIPS, Sparc,... QEMU很适合做嵌入式系统的硬件仿真平台。

BOCHs

Bochs是一种采用解释执行的开源下x86指令集模拟器。由于采用解释执行,它的性能不是很高。

KVM

KVM,Kernel Based Virtual Machine,是x86平台下面向Linux的完全虚拟化技术,它依赖于Inter-VT和AMD-V技术。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多