全虚拟化与VMWare


关键词

全虚拟化与VMWare

摘要


全虚拟化

x86架构的CPU因为先天设计的原因,很难做到虚拟化,原因在于x86 CPU定位于单用户使用,当初并没有考虑到将计算资源分配给不同OS的问题。
x86 CPU运行区分为四个特权等级,分别是Ring 0、1、2、3。Ring0是最高等级,它可以直接控制硬件CPU、I/O和存储器。只有OS系统内核和驱动可以运行在Ring 0级别。Ring 1、2两个等级基本上没有使用,而Ring 3主要运行一般的应用程序。
虚拟化体系中,有一个重要的部分叫VMM(Virtual Machine Monitor),它是hypervisor的一部分。它是负责硬件资源的分配的,所以它需要运行在Ring 0级别上。而虚拟化出来Guest OS,是运行在VMM之上的,所以它被降到Ring 1级别。这里就有一个问题了,Ring 1级别是不能直接调用CPU、IO和存储器的,而我们刚才说OS系统内核又必须运行在Ring 0级别,那Guest OS势必会崩溃的。


全虚拟化

x86架构的CPU因为先天设计的原因,很难做到虚拟化,原因在于x86 CPU定位于单用户使用,当初并没有考虑到将计算资源分配给不同OS的问题。
x86 CPU运行区分为四个特权等级,分别是Ring 0、1、2、3。Ring0是最高等级,它可以直接控制硬件CPU、I/O和存储器。只有OS系统内核和驱动可以运行在Ring 0级别。Ring 1、2两个等级基本上没有使用,而Ring 3主要运行一般的应用程序。
虚拟化体系中,有一个重要的部分叫VMM(Virtual Machine Monitor),它是hypervisor的一部分。它是负责硬件资源的分配的,所以它需要运行在Ring 0级别上。而虚拟化出来Guest OS,是运行在VMM之上的,所以它被降到Ring 1级别。这里就有一个问题了,Ring 1级别是不能直接调用CPU、IO和存储器的,而我们刚才说OS系统内核又必须运行在Ring 0级别,那Guest OS势必会崩溃的。
VMWare在1999年解决了这个问题,那就是全虚拟化。
VMWare研究出了一种新的技术,名叫Binary Translation,它通过VMM拦截GuestOS发出来的原本不能被虚拟化的命令,将其进行二进制转译的替换操作,使得GuestOS自认为可以直接操作硬件,这样GuestOS就可以正常运行了。

全虚拟化的好处是,OS不必做任何修改,即可在虚拟化平台上直接使用,非常方便。相较于全虚拟化,还有一种叫半虚拟化,XenServer和hyper-V就是这类的,有时间在讨论。

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:全虚拟化与VMWare:http://www.splaybow.com/post/full-virtualization-vmware.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

CPU硬件虚拟化 »

相关文章:

网站中如何插件不带广告的视频(视频云服务)  (2017/4/17 9:07:59)

阿里云快照服务开始收费了  (2017/3/27 19:25:10)

集群与分布式的区别  (2014/2/23 15:19:46)

Windows Server 2012 R2的Hyper-V新功能分析  (2013/8/11 20:04:34)

VMWare vSphere  (2013/4/24 10:30:30)

CPU硬件虚拟化  (2013/4/25 9:32:41)

全虚拟化与VMWare  (2013/4/25 8:52:39)