泛虚拟化技术(以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提供的一个环形队列来实现的。(典型的生产者/消费者模型)

原文地址:https://www.cnblogs.com/pangblog/p/3285838.html