下面是在LINUX上面开源的虚拟化项目分类:

KVM(Kernel-based Vritual Machine) 类型:全虚拟化 VirtualBox 类型:全虚拟化 Xen 类型:全虚拟化和半虚拟化 Lguest: 类型:半虚拟化 UML(User Mode Linux) LINUX-VServer

主要介绍Xen 和KVM:

一. Xen

Xen可以操作半虚拟化和硬件辅助虚拟化或完全虚拟化,完全虚拟化可以让操作系统直接安装 ,不用做任何修改。 在Xen上面运行的虚拟机叫做Domains。 主要有两类的Domains在Xen上面。

1. Domain 0

也叫做特权域或者是一个指定的Guest,它有特殊的能力。往往可以去控制 Domain U。也就是说Domain 0 包含了系统的所有驱动。也包含了所有的控制栈,去管理虚拟机的创建,毁灭和配置。且还有权限直接去访问硬件。且可以和其它虚拟机进行交互。所有说Domain 0 也往往是Xen 的第一个虚拟机,且必须是的。

2. Domain U

叫做无特权的域或叫做guest系统。

二. KVM

KVM只是在LINUX上面加载了Kvm 内核模块,然后把空上Linux系统当做Hypervisor,针对IO的模拟,它使用了QEMU;QEMU几乎模拟了所有外设硬件。

下面从用户模式和内核模式来看下它们的组件。