XEN是英国剑桥大学开发并且开源,是一个直接运行在计算机硬件之上替代操作系统的软件层,他能够在计算机硬件上并发运行多个客户操作系统。如果要使用需要升级到xen的内核,调动内核,XEN当时支持半虚拟化,因为当时没有硬件辅助虚拟化,所以XEN在早期推出了半虚拟化。
    image.png
    Host = 宿主机,
    XEN Hypervisor是直接运行在硬件与所有操作系统之间的基本软件层一个接口,负责为硬件设备上的不同种类的虚拟机进行CPU调度和内存分配,控制虚拟机的执行,不负责网络、IO等设备的处理。
    DomainU、Guest = 虚拟机,不能直接访问硬件资源,但可以独立并行的存在多个
    Domain 0 是特殊、特权虚拟机,担任管理员的角色,只在XEN架构里面,负责处理虚拟化中的所有io,北向为VM提供承载通道,南向提供具体的硬件调度启动,是虚拟化中处理IO的核心。是一个宿主机分割出来的一小部分进行调度, 所有的Xen虚拟环境都需要先运行Domain 0,然后才能运行其他的虚拟客户机。当数据包访问虚拟时,需先进入Domain0进行排序所有指令进入时都要进入Domain 0进行转换数据 然后进行转换给虚拟机,当数据量访问大的时候Domain0压力会很大,只有在外界访问VM时候会经过Doamin0,虚拟机向外访问不会经过Doamin0。不管全虚还是半虚都有Domain0。XEN只适用于小型场景,虚拟机少的场景。
    半虚拟化只能安装Linux,不能安装Windows 因为需要修改内核,微软不开源,
    XEN当时支持半虚拟化,因为当时没有硬件辅助虚拟化,所以XEN在早期推出了半虚拟化;KVM不支持半虚拟化,因为KVM出道比较晚,必须硬件支持才可以。KVM比XEN更加轻量化,模块小。
    XEN半虚拟化:
    半虚拟化(Paravirtualization)有些资料称为“超虚拟化”,简称为PV,是Xen主导的虚拟化技术。这种技术允许虚拟机操作系统感知到 自己运行在Xen Hypervisor上而不是直接运行在硬件上,同时也可以识别出其他运行在相同环境中的客户虚拟机。
    XEN完全虚拟化:
    完全虚拟化又称为硬件虚拟化,在XEN运行的完全虚拟化虚拟机,所运行的操作系统都是标准的操作系统,无需任何修改的操作系统版本,同时也需要提供特殊的硬件设备,在XEN上虚拟的Windows虚拟机必须采用完全虚拟化技术。