Xen Project (pronounced //) is a type-1 hypervisor, providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently. It was developed by the University of Cambridge and is now being developed by the Linux Foundation with support from Intel.
|Original author(s)||Keir Fraser, Steven Hand, Ian Pratt, University of Cambridge Computer Laboratory|
|License||GNU GPL version 2|
The University of Cambridge Computer Laboratory developed the first versions of Xen. The Xen Project community develops and maintains Xen Project as free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 2. Xen Project is currently available for the IA-32, x86-64 and ARM instruction sets.
Xen Project runs in a more privileged CPU state than any other software on the machine.
Responsibilities of the hypervisor include memory management and CPU scheduling of all virtual machines ("domains"), and for launching the most privileged domain ("dom0") - the only virtual machine which by default has direct access to hardware. From the dom0 the hypervisor can be managed and unprivileged domains ("domU") can be launched.
The dom0 domain is typically a version of Linux or BSD. User domains may either be traditional operating systems, such as Microsoft Windows under which privileged instructions are provided by hardware virtualization instructions (if the host processor supports x86 virtualization, e.g., Intel VT-x and AMD-V), or paravirtualized operating systems whereby the operating system is aware that it is running inside a virtual machine, and so makes hypercalls directly, rather than issuing privileged instructions.
Xen originated as a research project at the University of Cambridge led by Ian Pratt, a senior lecturer in the Computer Laboratory, and his PhD student Keir Fraser. The first public release of Xen was made in 2003, with v1.0 following in 2004. Soon after, Pratt and Fraser along with other Cambridge alumni including Simon Crosby founded XenSource Inc. to turn Xen into a competitive enterprise product.
The Open Source Xen Project continued to be a supported by XenSource, then by Citrix following XenSource's acquisition in October 2007. This organization supports the development of the free software project and also sells enterprise versions of the software.
To support embedded systems such as smartphone/ IoT with relatively scarce hardware computing resources, the Secure Xen ARM architecture on an ARM CPU was exhibited at Xen Summit on April 17, 2007 held in IBM TJ Watson. The first public release of Secure Xen ARM source code was made at Xen Summit on June 24, 2008 by Sang-bum Suh , a Cambridge alumnus, in Samsung Electronics.
On October 22, 2007, Citrix Systems completed its acquisition of XenSource, and the Xen Project moved to the xen.org domain. This move had started some time previously, and made public the existence of the Xen Project Advisory Board (Xen AB), which had members from Citrix, IBM, Intel, Hewlett-Packard, Novell, Red Hat, Sun Microsystems and Oracle. The Xen Advisory Board advises the Xen Project leader and is responsible for the Xen trademark, which Citrix has freely licensed to all vendors and projects that implement the Xen hypervisor.
On April 15, 2013, it was announced that the Xen Project was moved under the auspices of the Linux Foundation as a Collaborative Project. The Linux Foundation launched a new trademark for "Xen Project" to differentiate the project from any commercial use of the older "Xen" trademark. A new community website was launched at xenproject.org as part of the transfer. Project members at the time of the announcement included: Amazon, AMD, Bromium, CA Technologies, Calxeda, Cisco, Citrix, Google, Intel, Oracle, Samsung, and Verizon. The Xen project itself is self-governing.
Release history for Xen Project (upstream project)
|1.0||October 2, 2003|
|2.0||November 5, 2004||Live migration of PV guests.|
|3.0||December 5, 2005||
The releases up to 3.0.4 also added:
|3.1||May 18, 2007||Live migration for HVM guests, XenAPI|
|3.2||January 17, 2008||PCI passthrough and ACPI S3 standby mode for the host system.|
|3.3||August 24, 2008||Improvements for the PCI passthrough and the power management. Xen ARM hypervisor source code released for ARM CPU support|
|3.4||May 18, 2009||Contains a first version of the "Xen Client Initiative", shortly XCI.|
|4.0||April 7, 2010||Makes it possible to use a dom0 Linux kernel, which has been implemented by using PVOps. A Linux kernel of version 2.6.31 has been modified for this purpose, because the official Linux kernel actually does not support the usage as dom0 kernel (date July 2010).|
|4.1||March 25, 2011||Some of the improvements: Support for more than 255 processors, better stability. Linux kernel v2.6.37 and onward support usage as dom0 kernel.|
|4.2||September 8, 2012||XL became the default toolstack. Support for up to 4095 host processors and up to 512 guest processors.|
|4.3||July 9, 2013||Experimental ARM support. NUMA-aware scheduling. Support for Open vSwitch.|
|4.4||March 10, 2014||Solid libvirt support for libxl, new scalable event channel interface, hypervisor ABI for ARM declared stable, Nested Virtualization on Intel hardware.|
|4.5||January 17, 2015||With 43 major new features, 4.5 includes the most updates in the project’s history.|
|4.6||October 13, 2015||Focused on improving code quality, security hardening, enablement of security appliances, and release cycle predictability.|
|4.7||June 24, 2016||Improved: security, live migrations, performances and workload. Hardware support (ARM and Intel Xeon).|
|4.8.1||April 12, 2017|
|4.9||June 28, 2017||Xen Project 4.9 Release Notes|
|4.10||December 12, 2017||Xen Project 4.10 Release Notes|
|4.11||July 10, 2018||Xen Project 4.11 Release Notes|
|4.12||April 2, 2019||Xen Project 4.12 Release Notes|
Xen in Linux distributions and Linux upstream
Since version 3.0 of the Linux kernel, Xen support for dom0 and domU exists in the mainline kernel.
Internet hosting service companies use hypervisors to provide virtual private servers. Amazon EC2 (since August 2006), IBM SoftLayer, Liquid Web, Fujitsu Global Cloud Platform, Linode, OrionVM and Rackspace Cloud use Xen as the primary VM hypervisor for their product offerings.
Virtual machine monitors (also known as hypervisors) also often operate on mainframes and large servers running IBM, HP, and other systems. Server virtualization can provide benefits such as:
- consolidation leading to increased utilization
- rapid provisioning
- dynamic fault tolerance against software failures (through rapid bootstrapping or rebooting)
- hardware fault tolerance (through migration of a virtual machine to different hardware)
- the ability to securely separate virtual operating systems
- the ability to support legacy software as well as new OS instances on the same computer
Xen's support for virtual machine live migration from one host to another allows workload balancing and the avoidance of downtime.
Virtualization also has benefits when working on development (including the development of operating systems): running the new system as a guest avoids the need to reboot the physical computer whenever a bug occurs. Sandboxed guest systems can also help in computer-security research, allowing study of the effects of some virus or worm without the possibility of compromising the host system.
Finally, hardware appliance vendors may decide to ship their appliance running several guest systems, so as to be able to execute various pieces of software that require different operating systems.
Types of virtualization
Xen offers five approaches to running the guest operating system: HVM (hardware virtual machine), HVM with PV drivers, PVHVM (paravirtualization with full hardware virtualization, i.e. HVM with PVHVM drivers), PVH (PV in an HVM container) and PV (paravirtualization).
Paravirtualization – modified guests
Xen provides a form of virtualization known as paravirtualization, in which guests run a modified operating system. The guests are modified to use a special hypercall ABI, instead of certain architectural features.
Xen can run paravirtualized guests ("PV guests" in Xen terminology) even on CPUs without any explicit support for virtualization.
Paravirtualization avoids the need to emulate a full set of hardware and firmware services, which makes a PV system simpler to manage and reduces the attack surface exposed to potentially malicious guests.
On 32-bit x86, the Xen host kernel code runs in Ring 0, while the hosted domains run in Ring 1 (kernel) and Ring 3 (applications).
Hardware-assisted virtualization, allowing for unmodified guests
CPUs that support virtualization make it possible to run unmodified guests, including proprietary operating systems (such as Microsoft Windows). This is known as hardware-assisted virtualization, however in Xen this is known as hardware virtual machine (HVM).
HVM extensions provide additional execution modes, with an explicit distinction between the most-privileged modes used by the hypervisor with access to the real hardware (called "root mode" in x86) and the less-privileged modes used by guest kernels and applications with "hardware" accesses under complete control of the hypervisor (in x86, known as "non-root mode"; both root and non-root mode have Rings 0–3).
HVM extensions also often offer new instructions to allow direct calls by a paravirtualized guest/driver into the hypervisor, typically used for I/O or other operations needing high performance. These allow HVM guests with suitable minor modifications to gain many of the performance benefits of paravirtualized I/O.
In current versions of Xen (up to 4.2) only fully virtualized HVM guests can make use of hardware facilities for multiple independent levels of memory protection and paging. As a result, for some workloads, HVM guests with PV drivers (also known as PV-on-HVM, or PVH) provide better performance than pure PV guests.
Xen HVM has device emulation based on the QEMU project to provide I/O virtualization to the virtual machines. The system emulates hardware via a patched QEMU "device manager" (qemu-dm) daemon running as a backend in dom0. This means that the virtualized machines see an emulated version of a fairly basic PC. In a performance-critical environment, PV-on-HVM disk and network drivers are used during normal guest operation, so that the emulated PC hardware is mostly used for booting.
Virtual machine migration
Administrators can "live migrate" Xen virtual machines between physical hosts across a LAN without loss of availability. During this procedure, the LAN iteratively copies the memory of the virtual machine to the destination without stopping its execution. The process requires a stoppage of around 60–300 ms to perform final synchronization before the virtual machine begins executing at its final destination, providing an illusion of seamless migration. Similar technology can serve to suspend running virtual machines to disk, "freezing" their running state for resumption at a later date.
The Xen hypervisor has been ported to a number of processor families.
- Intel: IA-32, IA-64 (before version 4.2), x86-64
- PowerPC: previously supported under the XenPPC project, no longer active after Xen 3.2
- ARM: previously supported under the XenARM project for older versions of ARM without virtualization extensions, such as the Cortex-A9. Currently supported since Xen 4.3 for newer versions of the ARM with virtualization extensions, such as the Cortex-A15.
- MIPS: XLP832 experimental port
Xen can be shipped in a dedicated virtualization platform, such as Citrix Hypervisor (formerly Citrix XenServer, and before that XenSource's XenEnterprise).
Alternatively, Xen is distributed as an optional configuration of many standard operating systems. Xen is available for and distributed with:
- Alpine Linux offers a minimal dom0 system (Busybox, UClibc) that can be run from removable media, like USB sticks.
- Arch Linux provides the necessary packages with detailed setup instructions on their Wiki.
- Debian GNU/Linux (since version 4.0 "etch") and many of its derivatives;
- FreeBSD 11 includes experimental host support.
- Gentoo has the necessary packages available to support Xen, along with instructions on their Wiki.
- Mageia (since version 4);
- NetBSD can function as domU and dom0.
- OpenSolaris-based distributions can function as dom0 and domU from Nevada build 75 onwards.
- openSUSE 10.x to 12.x: only 64-bit hosts are supported since 12.1;
- Qubes OS uses Xen to isolate applications for a more secure desktop.
- SUSE Linux Enterprise Server (since version 10);
- Solaris (since 2013 with Oracle VM Server for x86, before with Sun xVM);
- Ubuntu (since 12.04 "Precise Pangolin"; also 8.04 "Hardy Heron", but no dom0-capable kernel in 8.10 "Intrepid Ibex" until 12.04.)
Unix-like systems as guests
Guest systems can run fully virtualized (which requires hardware support), paravirtualized (which requires a modified guest operating system), or fully virtualized with paravirtualized drivers (PVHVM). Most operating systems which can run on PCs can run as a Xen HVM guest. The following systems can operate as paravirtualized Xen guests:
- FreeBSD in 32-bit, or 64-bit through PVHVM;
- OpenBSD, through PVHVM;
- GNU/Hurd (gnumach-1-branch-Xen-branch)
- Plan 9 from Bell Labs
For an updated list differentiating PV and PVHVM support, see DomU Support for Xen.
Microsoft Windows systems as guests
Xen version 3.0 introduced the capability to run Microsoft Windows as a guest operating system unmodified if the host machine's processor supports hardware virtualization provided by Intel VT-x (formerly codenamed Vanderpool) or AMD-V (formerly codenamed Pacifica).
During the development of Xen 1.x, Microsoft Research, along with the University of Cambridge Operating System group, developed a port of Windows XP to Xen — made possible by Microsoft's Academic Licensing Program. The terms of this license do not allow the publication of this port, although documentation of the experience appears in the original Xen SOSP paper.
James Harper and the Xen open-source community have started developing GPL'd paravirtualization drivers for Windows. These provide front-end drivers for the Xen block and network devices, and allow much higher disk and network performance for Windows systems running in HVM mode. Without these drivers all disk and network traffic has to be processed through QEMU-DM. Subsequently, Citrix has released under a BSD license (and continues to maintain) PV drivers for Windows.
Xen Management Consoles
Third-party developers have built a number of tools (known as Xen Management Consoles) to facilitate the common tasks of administering a Xen host, such as configuring, starting, monitoring and stopping of Xen guests. Examples include:
- Web-based HyperVM
- Web-based ConVirt
- the OpenNebula cloud management toolkit
- On openSUSE YaST and virt-man offer graphical VM management
- Web-based Xen Orchestra
- OpenStack natively supports Xen as a Hypervisor/Compute target
- CloudStack also supports Xen as a Hypervisor
- Novell's PlateSpin Orchestrate also manages Xen virtual machines for Xen shipping in SUSE Linux Enterprise Server.
- XEN-SHELL2 a lightweight console based multi user Xen VM management
- Citrix XenServer
- Huawei FusionSphere
- Oracle VM Server for x86
- Thinsy Corporation
- Virtual Iron (discontinued by Oracle)
- Crucible (hypervisor) by Star Lab Corp.
The Xen hypervisor is covered by the GNU General Public Licence, so all of these versions contain a core of free software with source code. However, many of them contain proprietary additions.
Overview of Xen Projects releases in commercial distributions
- "Xen 4.12.0 released". Juergen Gross. April 1, 2019. Retrieved April 4, 2019.
- jgross (April 2, 2019). "What's New In XEN 4.12". xenproject.org. Retrieved May 6, 2019.
- "Xen Overview". Retrieved April 5, 2015.
- "OSCompatibility - Xen Project Wiki". Wiki.xenproject.org. February 8, 2007. Retrieved June 8, 2013.
- "Xen Summit April 2007". Xen Project. April 2007.
- Suh, Sang-bum (April 2007). "Secure Architecture and Implementation of Xen on the ARM for Mobile Devices" (PDF). Xen Project.
- "Xen Summit Boston 2008". Xen Project. June 2008.
- Suh, Sang-bum (June 2008). "Secure Xen on ARM: Source Code Release and Update" (PDF). Xen Project.
- "XenSummit Speaker Profiles" (PDF). Xen Summit Boston 2008. June 2008.
- "Citrix Systems » Citrix Completes Acquisition of XenSource". Citrix Systems. July 12, 2007. Archived from the original on February 15, 2012. Retrieved October 26, 2007.
- "Trademark". Xen.org. Retrieved June 8, 2012.
- "Trademark Policy" (PDF) (PDF). Xen.org. June 1, 2008. Retrieved June 8, 2013.
- "Linux Foundation Project". LinuxFoundation.org. Retrieved May 3, 2013.
- "XenProject.org Website". XenProject.org. Retrieved May 3, 2013.
- "Linux Foundation Xen Project Members". XenProject.org. Retrieved May 3, 2013.
- "Project Governance (Updated)". XenProject.org. Retrieved May 3, 2013.
- "Xen". SourceForge.net. October 2, 2003. Retrieved October 18, 2012.
- Jonathan Corbet (October 2, 2003). "The first stable Xen release". Lwn.net. Retrieved October 18, 2012.
- Jonathan Corbet (November 5, 2004). "Xen 2.0 released". Lwn.net. Retrieved October 18, 2012.
- Jonathan Corbet (December 6, 2005). "Xen 3.0 released". Lwn.net. Retrieved October 18, 2012.
- "XenSource: Press Releases". XenSource, Inc. December 10, 2005. Archived from the original on December 10, 2005. Retrieved October 18, 2012.
- "AMD SVM Xen port is public". lists.xenproject.org. December 14, 2005. Retrieved June 8, 2013.
- "[Xen-devel] Xen 3.0.3 released! - Xen Source". Lists.xenproject.org. October 17, 2006. Retrieved June 8, 2013.
- "[Xen-devel] FW: Xen 3.0.4 released! - Xen Source". Lists.xenproject.org. December 20, 2006. Retrieved June 8, 2013.
- "[Xen-devel] Xen 3.1 released! - Xen Source". Lists.xenproject.org. May 18, 2007. Retrieved June 8, 2013.
- "Xen 3.2.0 Officially Released : VMblog.com - Virtualization Technology News and Information for Everyone". VMblog.com. Retrieved October 18, 2012.
- "Xen 3.3.0 hypervisor ready for download - The H: Open Source, Security and Development". H-online.com. August 25, 2008. Archived from the original on March 14, 2012. Retrieved October 18, 2012.
- "Xen.org Announces Release Of Xen 3.4 Hypervisor | Citrix Blogs". Community.citrix.com. May 18, 2009. Archived from the original on March 15, 2011. Retrieved October 18, 2012.
- "Virtualisation: Xen is looking to catch up by releasing version 4 - The H Open: News and Features". H-online.com. April 9, 2010. Archived from the original on March 14, 2012. Retrieved October 18, 2012.
- "Xen 4.0 Datasheet" (PDF) (PDF). Xen.org. Retrieved October 18, 2012.
- "Xen 4.1 releases –". Blog.xen.org. March 25, 2011. Archived from the original on August 29, 2011. Retrieved October 18, 2012.
- "XenParavirtOps - Xen Wiki". Wiki.xenproject.org. Retrieved June 8, 2013.
- "Best Quality and Quantity of Contributions in the New Xen Project 4.6 Release". Xenproject.org. October 13, 2015. Retrieved October 13, 2015.
- "Xen 4.3 released! –". Blog.xen.org. July 9, 2013. Archived from the original on July 13, 2013. Retrieved July 16, 2013.
- "Xen 4.4 releases –". Blog.xen.org. March 10, 2014. Archived from the original on March 10, 2014. Retrieved March 10, 2014.
- "Xen Project 4.4 Release Notes". Wiki.xenproject.org. Retrieved March 10, 2014.
- "Xen 4.4 Feature List". Wiki.xenproject.org. Retrieved March 10, 2014.
- "Less is More in the New Xen Project 4.5 Release –". Blog.xen.org. January 15, 2015. Retrieved January 17, 2015.
- "Xen Project 4.8.1 is available". Xenproject.org. April 12, 2017. Retrieved June 1, 2017.
- "Xen Project 4.7 Feature List". Xen project. June 24, 2016.
- "Xen Project 4.8.1 is available | Xen Project Blog". blog.xenproject.org. Retrieved February 19, 2018.
- "What's New in the Xen Project Hypervisor 4.9". Retrieved April 26, 2018.
- "What's New in the Xen Project Hypervisor 4.10". Retrieved April 26, 2018.
- Gross, Juergen (July 10, 2018). "What's New in the Xen Project Hypervisor 4.11". Retrieved January 17, 2018.
- Gross, Juergen (April 2, 2019). "WHAT'S NEW IN XEN 4.12". Retrieved April 29, 2019.
- "Xen celebrates full dom0 and domU support in Linux 3.0 –". Blog.xen.org. May 30, 2011. Archived from the original on June 7, 2011. Retrieved October 18, 2012.
- "CloudLayer Computing vs. Amazon EC2" (PDF) (PDF). Retrieved April 5, 2015.
- Suzanne Tindal (February 28, 2011). "Fujitsu's global cloud launches in Aus". ZDNet Australia. Archived from the original on October 17, 2012. Retrieved October 11, 2011.
- "Xen Project - Guest VM Images - OrionVM PV-HVM Templates". April 1, 2012. Retrieved June 27, 2014.
- "Cloud FAQ". Rackspace.com. September 13, 2011. Retrieved October 18, 2012.
- "Choosing a virtualization mode (PV versus PVHVM)". Rackspace Support Network. Rackspace. January 12, 2016. Retrieved January 25, 2018.
- Roger Pau Monne. "Xen virtualization on FreeBSD" (PDF) (PDF). Retrieved April 6, 2015.
- Robin and Irvine, "Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor", 9th Usenix Security Symposium, 2000
- Gil Neiger, Amy Santoni, Felix Leung, Dion Rodgers, Rich Uhlig. Intel Virtualization Technology: Software-only virtualization with the IA-32 and Itanium architectures, Intel Technology Journal, Volume 10 Issue 03, August 2006.
- Extending Xen with Intel Virtualization Technology, intel.com
- "The ARM Hypervisor - The Xen Project's Hypervisor for the ARM architecture". Retrieved April 6, 2015.
- "Xen 4.2 Feature List - Xen". Wiki.xen.org. December 17, 2012. Retrieved January 22, 2014.
- "XenPPC - Xen Wiki". New-wiki.xen.org. August 15, 2010. Retrieved January 22, 2014.
- Mashable (September 4, 2012). "Porting Xen Paravirtualization to MIPS Architecture". Slideshare.net. Retrieved January 22, 2014.
- "Xen Release Features - Xen Project". Wiki.xenproject.org. Retrieved October 18, 2012.
- "AUR (en) - xen". Aur.archlinux.org. Retrieved April 12, 2018.
- "Xen - ArchWiki". Wiki.archlinux.org. Retrieved April 12, 2018.
- "Xen - FreeBSD Wiki". wiki.freebsd.org. Retrieved September 28, 2015.
- "Xen". Wiki.gentoo.org. Retrieved April 12, 2018.
- "NetBSD/xen". Netbsd.org. Retrieved June 8, 2013.
- "XenDom0Kernels - Xen Wiki". Wiki.xenproject.org. November 8, 2011. Retrieved June 8, 2013.
- "Xen in Qubes OS Security Architecture". xenp.org. Retrieved April 12, 2018.
- "Xen dom0 support in Lucid - Kernel team discussions - ArchiveOrange". Web.archiveorange.com. Archived from the original on September 13, 2011. Retrieved January 22, 2014.
- "Xen - Community Ubuntu Documentation". Help.ubuntu.com. September 5, 2012. Retrieved October 18, 2012.
- "PV on HVM". Wiki.xen.org. Retrieved April 12, 2018.
- "Understanding the Virtualization Spectrum". Wiki.xenproject.org. Retrieved April 12, 2018.
- "FreeBSD/Xen - FreeBSD Wiki". Wiki.freebsd.org. June 25, 2012. Retrieved October 18, 2012.
- "FreeBSD 11.0-RELEASE Release Notes". The FreeBSD Documentation Project. September 22, 2016. Retrieved October 23, 2016.
- "xen(4) - OpenBSD Manual Pages". Retrieved December 30, 2017.
- "Xen and the Art of Virtualization" (PDF) (PDF). University of Cambridge SOSP'03 paper. Retrieved October 18, 2012.
- "Xen Windows GplPv". Retrieved June 26, 2019.
- "XPDDS18: Windows PV Drivers Project: Status and Updates - Paul Durrant, Citrix Systems". June 29, 2018. Retrieved June 26, 2019.
- Huawei to virtual world: Give us your desktops and no-one gets hurt
- Crucible - Secure Embedded Virtualization
- "Citrix Product Matrix". Citrix.com. Retrieved December 6, 2016.
- "XenServer 6.0 is here! | Citrix Blogs". Citrix Blogs. September 30, 2011. Retrieved December 6, 2016.
- "Hotfix XS60E061 - For XenServer 6.0". support.citrix.com. Retrieved December 6, 2016.
- "XenServer Revision History Table". support.citrix.com. Retrieved December 6, 2016.
- "XenServer 7 Launch - What you need to know | Citrix Blogs". Citrix Blogs. May 24, 2016. Retrieved December 6, 2016.
- Citrix XenServer 7.0 Release Notes https://docs.citrix.com/content/dam/docs/en-us/xenserver/xenserver-7-0/downloads/xenserver-7-0-release-notes.pdf
- "Hotfix XS70E019 - For XenServer 7.0". support.citrix.com. Retrieved December 6, 2016.
- "XenServer 7.1 Release Notes".
- Edwards, Chris (May 30, 2018). "You asked, we delivered. Introducing XenServer 7.5". Citrix Blogs. Retrieved January 17, 2019.
- No source found but suggested due to 4.7.x being used in older and newer versions
- Melmed, Andy (September 10, 2018). "Announcing the General Availability of XenServer 7.6!". Citrix Blogs. Retrieved January 17, 2019.
- "Technical overview". docs.citrix.com. Retrieved January 17, 2019.
- "Is Xenserver 7.6 using Xen 4.7 or ??". Discussions. Retrieved January 17, 2019.