上一篇降到硬件虚拟化和软件虚拟化,那么,何为硬件虚拟化何为软件虚拟化呢
1.软件虚拟化技术
顾名思义,这是通过相关软件来模拟直接实现VMM层,纯软件的还原重定向客户机内的系统指令。
早些时候的硬件系统并不支持虚拟化辅助,仅仅只能通过软件对机器码的直接翻译来对目标客户机仿真。那么,既然每一条操作指令都需要软件重定向给物理硬件,可想而知,虚拟化性能较差。而且软件代码复杂度显著增长。不过可以随意模拟平台。
2.硬件虚拟化技术
硬件本身具有辅助能力,能支持客户机指令独立执行,而不完全依赖VMM截取后重定向。大多数情况下,客户机系统与原生系统大同小异。
从2005年起,I家在自家U中加人了硬件虚拟化的支持,简称Intel VT 后期所有的Intel CPU中都可以看见有VT的身影且每一代都有改进。
既然有软/硬虚拟化,那也有全/半虚拟化了
1.半虚拟化
什么是最理想的虚拟化?
1.让客户机不认为自身运行在虚拟化环境中
2.不需要vmm层介入。
抛开第一点,配合修改VMM层,这就是半虚拟化PV 在一方面提升了性能,也简化了VMM的难度。且不过于依赖硬件虚拟化技术的支持,跨平台相对友好。经典的如Virtio 需要双端驱动。
2.全虚拟化
与半虚拟化相反而为之,它则坚持第一点,客户机完全不需要修改。所有指令操作由VMM在系统和硬件之间处理,模拟出完整的类似与物理平台的平台,全虚拟化FV由于达成第一个目标,大大增加了VMM的复杂性。
其实自从2005年硬件虚拟化技术开始发展之前,FV被PF完败,,但在兴起之后,情况彻底改变,VT-x VT-d的出现,代表着硬件虚拟化技术的兴起。
由硬件辅助的FV开始全面超过PV,但半虚拟化也并非停滞不前。以Virtio为代表的半虚拟化一直在发展,虽性能略低于全虚拟化,但其得益于较低的平台依赖率,依旧收到广泛的欢迎。
从框架上看,虚拟化层的位置又可风为Type1 Type2两种虚拟化
Type1虚拟化,这类虚拟化层直接运行于硬件之上,没有宿主机系统的概念,而是直接分配控制硬件资源。如Xen 、VM ESX
Type2虚拟化,这类虚拟化层运行于某一宿主机操作上,如VMwareWorkstation系列,KVM。这类虚拟化层表现为操作系统的一个应用程序,受宿主机系统的调度和管理。通常被抽象为进程。
这篇文章对我有用谢谢。by 公需科目咨询网https://www.gongxukemu.com
继续发扬谢谢。by 四川公需科目https://www.jishurenyuan.com