Xen is a layer of software running directly on computer hardware and replacing the operating system which allows the hardware to run multiple guest operating systems concurrently. Support for x86, x86-64, Itanium, Power PC, and ARM processors allow the Xen hypervisor to run on a large variety of computing devices and currently supports Linux, NetBSD, FreeBSD, Solaris, Windows, and other common operating systems as guests running on the hypervisor. The Xen community develops and maintains the Xen hypervisor as a free solution licensed under the GNU General Public License.
A machine running Xen contains three components:
- Xen Hypervisor
- Domain 0, the Privileged Domain (Dom0) – Privileged guest running on the hypervisor with direct hardware access and guest management responsibilities
- Multiple DomainU, Unprivileged Domain Guests (DomU) – Unprivileged guests running on the hypervisor; they have no direct access to hardware (e.g. memory, disk, etc.)
The Xen hypervisor runs on the hardware and becomes the interface for all the hardware requests such as CPU, I/O, and disk for the guest operating systems. By separating the guests from the hardware, the Xen hypervisor is able to run multiple operating systems securely and independently.
The Domain 0 Guest referred to as Dom0 is launched by the Xen hypervisor during system start-up and has the ability to run any operating system except for Windows. The Dom0 has unique privileges to access the Xen hypervisor that is not allocated to any other Domain Guests. These privileges allow it to manage all aspects of Domain Guests such as starting, stopping, I/O requests, etc. A system administrator can log into Dom0 and manage the entire computer system.
The Domain Guests referred to as DomUs are launched and controlled by the Dom0 and independently operate on the system. These guests are either run with a special modified operating system referred to as paravirtualizion or un-modified operating systems leveraging special virtualization hardware (Intel VT and AMD-V) referred to as hardware virtual machine (HVM).
- Paravirtualization
Used to describe a virtualization technique that allows the OS (operating system) to be aware that it is running on a hypervisor rather than the base hardware. The operating system must be modified to accommodate the unique situation of running on a hypervisor instead of basic hardware.
- Hardware Virtual Machine (HVM)
Describes an operating system that is running in a virtualized environment unchanged and unaware that it is not running directly on the hardware. Special hardware is required to allow this.