硬件辅助虚拟化

一直去迁就X86的架构的CPU也不好,所以出现了硬件辅助虚拟化它是依照了IBM的大型机的虚拟化的解决方案。

image.png

我们在上面说了基于软件的全虚拟化和半虚拟化,其实距离我们最近的还是硬件虚拟化,因为我们平时用vmware workstation的时候就需要打开cpu的 虚拟化功能,其实这时打开的虚拟化功能就是硬件辅助虚拟化,默认硬件辅助虚拟化是关闭的,关闭硬件辅助虚拟化会节省一些资源。

硬件虚拟化目前有intelVT-X技术和AMDAMD-V这两种技术,其核心思想都是通过引入新的指令和运行模式。其实很好理解,就是把CPU划分成两个模式,根模式和非根模式,并且每个模式下都有环0到环3这四个级别,所以我们可以把每个模式看做是一个单独的CPU,如下图:

image.png

OS的用户空间运行在非根模式的环3,内核空间运行在非根模式下的环0

VMM的用户空间运行在根模式的环3,内核空间运行在根模式下的环0

OS的操作和VMM的之间的操作互不干扰,这样就避免了冲突问题,无论是OS还是VMM都可以直接操作硬件,没有捕获这一动作,并且有硬件的参与,所以效率就会提高很多,当然肯定是根模式下的环0权限更高,非根模式下的环0权限就小很多,不然的话,OS运行一个关机命令,岂不是把整个VMM给关了?

可能你会问了,明明是一个CPU,怎样就成两个了?是,确实是一个CPU,即使在逻辑上我们将其分成两个,我们还是难以接受和理解,不理解就不理解嘛!记下来,接着向下学,总有一天你会理解的,因为这就是现实,不能因为一个小知识点不理解就不向下学了,只有接受现实的人才是时间的朋友!




猜你喜欢

转载自blog.51cto.com/13778749/2161884