泛虚拟化技术(以Xen为例)
一.概述
最主要的特点是:修改Guest OS的内核代码。通过修改内核,使Guest OS明白自己是运行在R-1,不要直接去运行特权指令,如果要运行就去Hypercall(主动VMM陷入)。
还有一个特点是:将Xen和Guest OS的地址空间合并。Xen占据4G虚拟内存的64M。好处是Hypercall时不需要上下文切换,而且Xen也可以直接访问Guest OS的内存。
二.CPU虚拟化
能否用VT技术?-->不需要了,因为意识到xen的存在,直接调用xen就可以了,为什么还要用vt呢。
三.内存虚拟化
到底用影子页表还是用VT-d技术?-->直接模式
四.I/O虚拟化是Xen的特点
前端驱动 + 后端驱动 共同完成。
前端驱动 ---事件通道+授权表---> 后端驱动得到消息 ---调用原生驱动---> 直接DMA到共享页 --->
后端驱动得到中断响应 ---事件通道---> 前端驱动得到数据(在共享页中)
I/O请求的传递是通过Xen提供的一个环形队列来实现的。(典型的生产者/消费者模型)