微软在新的Hyper-V中一直在着重提出其在安全性方面的优势,而微软或许也希望通过对安全性的阐述来带出两点:1、微软的Hyper-V是与众不同的;2、Hyper-V的微架构相比其它“第三方的解决方案”是有特殊的安全性优势的。 确实,由于Hyper-V在微内核上的优势:微内核管理程序包含了尽可能少的代码,在Hyper-V的管理程序中,你既看不到设备驱动程序(驱动程序是跑在每一个独立的分区中,而虚拟机OS虽然在相互独立的单独分区内但是却能够很好的通过Hypervisor直接访问硬件),同时,Hyper-V也少见第三方代码,因此,微软成功的将Hyper-V的安全隐患降到了最低。 但这只是Hyper-V的安全性话题的其中一部分,微软在保护Hyper-V上所投入的力量显然是更为巨大的,且安全性,尤其是在与Windows Server紧密结合之后的安全性,正成为微软与VMware、Xen Source这些第三方解决方案抗衡的重要砝码。 微软的Hyper-V的虚拟化前身来自于Virtual Server,这是一个建立在Ring0内核模式和Ring3用户模式下的传统模式,宿主机的Windows和驱动程序及VS底层驱动都是在Ring0下,Virtual Server则是在Windows Server上的,通过IIS来进行管理,与内核进行通信,但反观虚拟机,其Virtual Server则运行于一个高于WIndows的Ring1虚拟内核模式上,特权低于Ring0,但是高于Ring3——问题在于很多特权指令很可能不能够在Ring1上得到完善的支持,当然,我记得微软好像也有一种什么二进制指令翻译的技术进行处理,但是这毕竟不是一个最“根本”的解决途径。 在Hyper-V中,不再有宿主机和虚拟机之分,微软带来的新概念是:父分区和子分区,通过在硬件底层安装Hypervisor,然后就在虚拟机上划分多个分区,父分区和子分区虽然看起来可以对应之前的宿主机和虚拟机,但是其地位已经基本平等,他们的内核都是运行在Ring0上,应用程序则运行在Ring3用户模式上,与VS最大的不同是,虚拟机的内核不再运行在Ring1之中,Hypervisor运行的则更为底级,大致是运行在CPU上的一个什么层上,微软的命名也很有意思,叫Ring-1,从图中我们看到,微软虚拟化的功能和结构已经大...