Department of Computer Science and Technology

Technical reports

Xen 2002

Paul R. Barham, Boris Dragovic, Keir A. Fraser, Steven M. Hand, Timothy L. Harris, Alex C. Ho, Evangelos Kotsovinos, Anil V.S. Madhavapeddy, Rolf Neugebauer, Ian A. Pratt, Andrew K. Warfield

January 2003, 15 pages

DOI: 10.48456/tr-553


This report describes the design of Xen, the hypervisor developed as part of the XenoServer wide-area computing project. Xen enables the hardware resources of a machine to be virtualized and dynamically partitioned such as to allow multiple different ‘guest’ operating system images to be run simultaneously.

Virtualizing the machine in this manner provides flexibility, allowing different users to choose their preferred operating system (Windows, Linux, NetBSD), and also enables use of the platform as a testbed for operating systems research. Furthermore, Xen provides secure partitioning between these ‘domains’, and enables better resource accounting and QoS isolation than can be achieved within a conventional operating system. We show these benefits can be achieved at negligible performance cost.

We outline the design of Xen’s main sub-systems, and the interface exported to guest operating systems. Initial performance results are presented for our most mature guest operating system port, Linux 2.4. This report covers the initial design of Xen, leading up to our first public release which we plan to make available for download in April 2003. Further reports will update the design as our work progresses and present the implementation in more detail.

Full text

PDF (0.2 MB)

BibTeX record

  author =	 {Barham, Paul R. and Dragovic, Boris and Fraser, Keir A. and
          	  Hand, Steven M. and Harris, Timothy L. and Ho, Alex C. and
          	  Kotsovinos, Evangelos and Madhavapeddy, Anil V.S. and
          	  Neugebauer, Rolf and Pratt, Ian A. and Warfield, Andrew K.},
  title = 	 {{Xen 2002}},
  year = 	 2003,
  month = 	 jan,
  url = 	 {},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-553},
  number = 	 {UCAM-CL-TR-553}