《KVM实战:原理、进阶与性能调优》 —1.2.2 软件虚拟化和硬件虚拟化
1.2.2 软件虚拟化和硬件虚拟化
1.软件虚拟化技术
软件虚拟化,顾名思义,就是通过软件模拟来实现VMM层,通过纯软件的环境来模拟执行客户机里的指令。
最纯粹的软件虚拟化实现当属QEMU。在没有启用硬件虚拟化辅助的时候,它通过软件的二进制翻译仿真出目标平台呈现给客户机,客户机的每一条目标平台指令都会被QEMU截取,并翻译成宿主机平台的指令,然后交给实际的物理平台执行。由于每一条都需要这么操作一下,其虚拟化性能是比较差的,同时其软件复杂度也大大增加。但好处是可以呈现各种平台给客户机,只要其二进制翻译支持。
2.硬件虚拟化技术
硬件虚拟化技术就是指计算机硬件本身提供能力让客户机指令独立执行,而不需要(严格来说是不完全需要)VMM截获重定向。
以x86架构为例,它提供一个略微受限制的硬件运行环境供客户机运行(non-root mode),在绝大多数情况下,客户机在此受限环境中运行与原生系统在非虚拟化环境中运行没有什么两样,不需要像软件虚拟化那样每条指令都先翻译再执行,而VMM运行在root mode,拥有完整的硬件访问控制权限。仅仅在少数必要的时候,某些客户机指令的运行才需要被VMM截获并做相应处理,之后客户机返回并继续在non-root mode中运行。可以想见,硬件虚拟化技术的性能接近于原生系统,并且,极大地简化了VMM的软件设计架构。
Intel从2005年就开始在其x86 CPU中加入硬件虚拟化的支持—Intel Virtualization Technology,简称Intel VT。到目前为止,在所有的Intel CPU中,都可以看到Intel VT的身影。并且,每一代新的CPU中,都会有新的关于硬件虚拟化支持、改进的feature加入。也因如此,Intel x86平台是对虚拟化支持最为成熟的平台,本书将以Intel x86平台为例介绍KVM的虚拟化。
- 点赞
- 收藏
- 关注作者
评论(0)