我对这两个概念感到困惑.xen拆分驱动程序模型和半虚拟化.这两个是一样的吗?当xen以完全虚拟化模式运行时,您是否获得了拆分驱动程序模型?
半虚拟化是对客户操作系统的内核进行修改以使其意识到它在虚拟而非物理硬件上运行的一般概念,因此利用它来提高效率或性能或安全性等等.半虚拟化内核可能根本无法在物理硬件上运行,其方式与尝试在不兼容的硬件上运行操作系统类似.
拆分驱动程序模型是一种用于创建高效虚拟硬件的技术.一个设备驱动程序在guest虚拟机(aka domU)内运行,并与控制域虚拟机(aka dom0)内的另一个相应设备驱动程序通信.这对编码的设备驱动程序一起工作,因此可以被认为是单个"分离"驱动程序.
拆分设备驱动程序的示例是Xen运行半虚拟化guest虚拟机时的传统块和网络设备驱动程序.
运行HVM来宾时情况比较模糊.首次在HVM来宾中安装来宾操作系统时,它使用专为实际物理硬件设计的操作系统本机设备驱动程序,Xen和dom0为新来宾模拟这些设备.但是,当您在guest虚拟机中安装半虚拟驱动程序时(这些是您在XenServer或XenClient上的guest虚拟机中安装的"工具",也可能是在VMware上安装) - 那么,您将使用不同的配置再次.你有一个HVM来宾,运行非半虚拟化操作系统,但使用半虚拟分割设备驱动程序.
因此,要回答您的问题,当您在完全虚拟化模式下运行时,您可能使用或不使用拆分设备驱动程序 - 这取决于它们是否实际安装以供客户操作系统使用.最近的Linux内核已经包含可以在HVM域内处于活动状态的半虚拟驱动程序.