What is Xen?
Xen is a robust, secure, high performance type 1 baremetal hypervisor, or a virtual machine monitor (VMM). Xen can securely execute multiple virtual machines, each running its own OS, on a single physical system with close-to-native performance. Xen is open source, and it’s used as the core virtualization engine for many vendors products.
Xen is usually used as a server virtualization platform, running on headless servers without graphical console and controlled through the network. Some advanced users also run Xen on their graphical desktops.
Xen is a baremetal hypervisor, so it’s the first program that gets loaded after BIOS. Xen will then start a special privileged guest called Domain-0.
Write here more about the features xen has.
Domain-0 (dom0 for short) is a special privileged guest (virtual machine) Xen hypervisor always loads on host startup. Dom0 has some special privileges like access to the physical hardware, so it’s able to load and use device drivers to access disk controllers and network adapters. Dom0 also has some duties. Dom0 is used to run the Xen management toolstack to control and manage the Xen hypervisor, and dom0 provides virtual disks and networks for other unprivileged guests (=domUs).
Dom0 is usually Linux, but it can also be NetBSD or OpenSolaris. Dom0 needs to have special Xen dom0 enabled kernel.
Xen dom0 can be thought as the “service console” for Xen.
See [XenDom0Kernels] wiki page for more information about available Linux dom0 enabled kernels.
Xen supported virtualization types
Xen supports running two different types of guests. Xen guests are often called as domUs (unprivileged domains). Both guest types (PV, HVM) can be used at the same time on a single Xen system.
Xen Paravirtualization (PV)
Paravirtualization is an efficient and lightweight virtualization technique introduced by Xen,
later adopted also by other virtualization solutions. Paravirtualization doesn’t require virtualization extensions from the host CPU. However paravirtualized guests require special kernel that is ported to run natively on Xen, so the guests are aware of the hypervisor and can run efficiently without emulation or virtual emulated hardware. Xen PV guest kernels exist for Linux, NetBSD, FreeBSD, OpenSolaris and Novell Netware operating systems.
PV guests don’t have any kind of virtual emulated hardware, but graphical console is still possible using guest pvfb (paravirtual framebuffer). PV guest graphical console can be viewed using VNC client, or Redhat’s virt-viewer. There’s a separate VNC server in dom0 for each guest’s PVFB.
Upstream kernel. org Linux kernels since Linux 2.6.24 include Xen PV guest (domU) support based on the Linux pvops framework, so every upstream Linux kernel can be automatically used as Xen PV guest kernel without any additional patches or modifications.
See XenParavirtOps wiki page for more information about Linux pvops Xen support.
Xen Full virtualization (HVM)
Fully virtualized aka HVM (Hardware Virtual Machine) guests require CPU virtualization extensions from the host CPU (Intel VT, AMD-V).