Professional Documents
Culture Documents
What is Xen?
Xen is a platform for virtualizing Operating Systems Its goals are to be efficient, secure, robust and scalable Can handle up to 100 simultaneous OS instances including Linux and Windows Can run either paravirtualized guests or fully virtualized guests
History of Xen
Xen is an open source operating system originally developed as a research project at the University of Cambridge in 2003 It is included in many commercial Linux distributions, as well as influencing Microsofts Hyper-V[3] and Citrixs virtualization products It has been implemented into countless commercial products from companies including Sun, Oracle, Microsoft and Citrix
Architecture
The foundation of a Xen system is the Xen Hypervisor [4]. This is what sits directly on the hardware of a system below any other Operating Systems. It is responsible for CPU scheduling between kernels and memory management for the various virtual machines running above it[4]. The Hypervisor has no knowledge of networking, storage or any other standard I/O function found on the computer[4].
Architecture
A modified Linux kernel runs directly above the Xen Hypervisor, called Domain0 This unique virtual machine is given access to the physical hardware resources available on the computer Hosts the Xen Domain Management and Control
Architecture
Running parallel to Domain 0 are any number of other modified Operating Systems These are called Domain U (Dom U) PV guests[4]. These are paravirtualized virtual machines running on top of the Xen hypervisor It is also possible to run fully virtualized machines as Domain U HVM guests Running a Windows operating system would be an example of this
Architecture
Memory Management
Xen is responsible for ensuring the complete isolation of VMs Processes are given direct access to memory, Xen is only needed when a process needs to go out of its reserved memory space The insures efficiency and security
CPU Virtualization
Xen runs on higher privilege level than guest OSes (hence hypervisor) In x86 machines, Xen runs in most privileged ring 0, guests OS run in 1, and user land processes run in ring 3
CPU Scheduling
Guests control their own processes scheduling Scheduling between guest OSes is controlled by Xen Admin can select from multiple scheduling algorithms, including Borrowed Virtual Time, Simple Earliest Deadline First, and Credit
Evaluation
Xen Less is More Under 150,000 lines of code Can save thousands in hardware and energy reductions Used in production environments around the world Security is a major issue
Sources
[1] Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the art of virtualization. In SOSP 03: Proceedings of the nineteenth ACM symposium on Operating systems principles, pages 164177, New York, NY, USA, 2003. ACM. [2] L. Cherkasova, D. Gupta, and A. Vahdat. Comparison of the three CPU schedulers in Xen. PERFORMANCE EVALUATION REVIEW, 35(2):42, 2007. [3] Mary Jo Foley. Review: Microsofts hyper-v puts vmware and linux on notice. http://blogs.zdnet.com/microsoft/?p=1182. [4] Xenc . Xen Architecture Overview, 2008. Images taken from Xen and XenSource publications.