大家好,又见面了,我是你们的朋友全栈君。
VMM可以分为:
完全虚拟化(基于硬件)、宿主虚拟化、混合虚拟化
(1).完全虚拟化
VMM虚拟的是现实存在的平台,在客户及操作系统看来,虚拟的平台和现实的平台是一样的,客户机操作系统察觉不到市运行在一个虚拟平台上X86架构的完全虚拟化,经历了两个阶段:
- 软件辅助的完全虚拟化 Ringcompression VMM运行在Ring0,客户及操作系统运行在V1.当客户机操作系统内核执行特权指令,VMM截获并进行虚拟化. BinaryCompression 二进制压缩用来处理一些不友好的指令,通过扫描并修改客户机的二进制代码,将难以虚拟化的指令转化为支持虚拟化的指令. 硬件辅助的完全虚拟化 硬件本身加入足够的虚拟化功能. Intel的VT–x技术是代表,在处理器上引入了一个新的执行模式用于运行虚拟机.当虚拟机执行在这个特殊模式中时,任何特权操作都会被处理器截获并报告给VMM.
类虚拟化
- 客户机操作系统知道其运行在虚拟平台上,并且会去主动适应. 类虚拟化是通过在源代码级别修改指令以避免虚拟化漏洞,即修改操作系统内核的代码(即API级),使得操作系统内核完全避免这些难以虚拟化的指令.
2.按VMM的实现结构 , VMM可以分为三类 :
- Hypervisor模式
- 在Hypervisor模式中,VMM首先是一个完备的操作系统,是为虚拟化而设计的,还具备虚拟化功能. 从物理资源上看,所有的物理资源都归VMM所有,VMM承担着管理物理资源的责任. 其次,VMM需要向上提供虚拟机用于运行客户机操作系统,负责虚拟环境的创建和管理.
VmwareESXServer,就是基于Hypervisor架构. KVM(Kernel-basedVirtual Machine),也是基于GPL授权的开源虚拟机软件, 2007.2被继承到了Linux2.6.20内核中,成为内核的一部分. 目前项目发起人和维护人认为KVM是Hypervisor模型.
- 宿主模式
在宿主模型中,物理资源是由宿主机操作系统管理,宿主机操作系统是传统操作系统,本身不具备虚拟化功能,实际的操作系统由VMM来提供,VMM通常是宿主机操作系统独立的内核模块,通过调用宿主机操作系统的服务来获得资源,实现处理器,内存和I/O设备的虚拟化. VMware Server采用宿主模型,宿主机操作系统可以是Windows或者Linux. VMware Workstatio是VMware 是面向桌面的主打产品,也是基于宿主模型,与VMServer不同,VMwareWorkstation专门针对桌面应用做了优化,如为虚拟机分配USB设备等. Microsoft的VirtualPC是面向桌面的虚拟化产品. VirtualServer是面向服务器的入门级虚拟化产品,基于宿主模型. WindowsServer 2008是混合模型, Hyper–V作为Hypervisor运行在最底层,Server 2008作为特权操作系统运行在Hyper–V之上.采用硬件虚拟化技术,必须运行在支持InterVT技术.
- 混合模型
混合模型是两种模式的汇合体. VMM依然位于最底层,拥有所有的物理资源. VMM会让出大部分I/O设备的控制权,交由一个运行在特权虚拟机中的特权操作系统来控制 VMM的虚拟化功能也被分担,处理器和内存的虚拟化依然由VMM来完成,而I/O的虚拟化则由VMM和特权操作系统共同合作完成. Xen是一款基于GPL授权的开源虚拟机软件,起源于英国剑桥大学,属于混合模型,基于Xen的虚拟化产品有Ctrix, Redhat, Novell等.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190551.html原文链接:https://javaforall.cn