LWN.net Logo

Xen is coming

Xen is a free virtualization system designed to allow multiple virtual machines to be run on a single host system with high performance. The Xen system (version 2.0 was released recently) offers a number of interesting features, including flexible networking between virtual machines and the ability to transparently move virtual machines between physical hosts while they are running. Xen's authors claim that the performance hit from running under Xen is only "a few percent."

Now that the 2.0 release is out, the Xen developers would like to merge their code into the mainline kernel. The bulk of this code adds the new Xen "architecture," which enables the kernel to run on the virtual machine provided by Xen itself. The architecture code is available from the Xen site for those who are interested. Another significant chunk is a set of drivers which provide Xen-hosted systems with network interfaces, file-backed block devices, and console devices.

Inclusion of both of those patch sets should be relatively uncontroversial; they do not affect any code which is not actually built for the Xen architecture, and thus should not risk breaking anything. The final set, however, will have to be looked at more closely; these are the patches to the core kernel itself. Most of these patches make the kernel work with Xen's very different way of managing and allocating memory; they include a new sk_buff structure allocation function, a change to how /dev/mem works on the Xen architecture, and a new ptep_establish_new() function which optimizes the instantiation of new pages. Perhaps the most controversial change is a change in how the architecture-specific arch_free_page() function works: under Xen, this function might actually short out the rest of the page allocator functions and dispose of the page itself. This technique allows Xen to manage a single page pool for multiple virtual machines, but not everybody liked changing the interface to arch_free_page() in that way.

That said, there appears to be no strong opposition to the inclusion of these patches. It would not be surprising to see them go into -mm sometime after 2.6.10 comes out.


(Log in to post comments)

Xen is coming

Posted Nov 25, 2004 21:40 UTC (Thu) by alspnost (guest, #2763) [Link]

So am I right in thinking that this is a sort of "inverse" UML? It sounds like you build a special Xen host kernel, on which you run multiple vanilla kernels; as opposed to UML, where you build multiple UML guest kernels to run on a vanilla host kernel.

I'm quite interested in this: what I'm trying to do is run multiple 32-bit virtual Linuxes on a 64-bit host kernel on an Opteron server. This is to run a crucial Windoze app via CrossOver on Linux - that part already works fine on bog-standard 32-bit Linuxes. I figured that by virtualising on top of a 64-bit machine, I could effectively use more than 4GB of RAM without any nonsense; what's important is being able to run multiple instances of this app, each with up to 1GB of RAM, but usually not more.

Anyway, ideas on a postcard please, but otherwise, Xen looks intruiging ;-)

Xen is coming

Posted Nov 26, 2004 10:52 UTC (Fri) by mab (subscriber, #314) [Link]

I'm wondering the same, if you are right it seems like we will be giving Vmware and Microsofts Virtual PC a run for their money on systems that only run Linux. I like it I hope it goes in

Xen is coming

Posted Nov 27, 2004 14:25 UTC (Sat) by Lorenzo (guest, #260) [Link]

Linux on Linux is not interesting to me at all.
Windows on Linux is interesting.

The various Wine configurations or specialized Win9x on Linux virtualizations just don't cut it for me. I need a full x86, and soon I presume x86-64, virtualization so that I can run Win2K and [gakkk] WinXP on Linux.

Don't tell me to get VMWare. Too flippin' expensive.

Xen is coming

Posted Nov 27, 2004 16:42 UTC (Sat) by riel (subscriber, #3142) [Link]

The idea behind Xen is that full virtualisation is complex and often inefficient - so the obvious solution is for the guest OSes to behave and make the job easy for the virtualisation engine.

This strategy, often called paravirtualisation, is a lot more efficient than full virtualisation, but requires special guest kernels. The rest of the guest operating system can remain unchanged. This is a very promising approach to virtualisation, one that should help a lot of Linux developers by allowing them to efficiently run multiple versions of a distribution on the same system, or help with security separation. I am working on integrating Xen into Fedora and hope it will be a good piece of infrastructure for the Fedora developers.

Xen is coming

Posted Dec 2, 2004 9:45 UTC (Thu) by Russell (guest, #1453) [Link]

So what does this let me do that UML doesn't? Is there a compelling reason to use it over UML?

Xen is coming

Posted Dec 2, 2004 13:31 UTC (Thu) by alextingle (guest, #20593) [Link]

It's a lot faster.

Xen is coming

Posted Dec 2, 2004 17:09 UTC (Thu) by markwilliamson (guest, #26407) [Link]

Live migration, support for FreeBSD, NetBSD, Plan 9 as guests, the
ability to sandbox PCI device drivers.

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds