Slashdot Mirror


Xen High-Performance x86 Virtualization Released

Xen Team writes "The University of Cambridge Computer Laboratory Systems Research Group is pleased to announce the open source release of Xen, a virtual machine monitor for x86. Xen lets you run multiple operating system images at the same time on the same PC hardware, with unprecedented levels of performance and resource isolation. Even under the most demanding workloads the performance overhead is just a few percent --- considerably less than alternatives such as VMware Workstation and User Mode Linux. This makes Xen ideal for use in providing secure virtual hosting, or even just for running multiple OSes on a desktop machine."

The Xen team continues: "Xen requires guest operating systems to be ported to run over it. Crucially, only the kernel needs to be ported, and all user-level application binaries and libraries can run unmodified. We have a fully functional port of Linux 2.4.22 running over Xen, and regularly use it for running demanding applications like Apache, PostgreSQL and Mozilla. Any Linux distribution should run unmodified over the ported kernel. With assistance from Microsoft Research, we have a port of Windows XP to Xen nearly complete, and are planning a FreeBSD 4.8 port in the near future.

"Visit the project homepage to find out more, and download the project source code or the XenDemoCD, a bootable 'live iso' image that enables you to play with Xen/Linux 2.4 without needing to install it on your hard drive. The CD also contains full source code, build tools, and benchmarks. Our SOSP paper gives an overview of the design of Xen, and evaluates the performance against other virtualization techniques.

"Work on Xen is supported by UK EPSRC grant GR/S01894, Intel Research Cambridge, and Microsoft Research Cambridge via an Embedded XP IFP award."

6 of 316 comments (clear)

  1. Pfff by AKAImBatman · · Score: 4, Informative

    > Xen requires guest operating systems to be ported to run over it.

    Get me all excited, then pull the rug out from under my why don't you? This is still pretty neat, but it's hardly a replacement for VMWare or Bochs.

    1. Re:Pfff by rmohr02 · · Score: 4, Informative

      Only the kernel needs to be ported, and they have ported Linux 2.4.22 for you, and they're working on NetBSD, FreeBSD, and have almost finished Windows XP.

    2. Re:Pfff by kscguru · · Score: 4, Informative
      I'm unsure why Xen needs guest OS mods, vs the way VMWare and Plex86 do things. I only skimmed the paper, so I might have missed something.

      VMWare and Plex86 need to trap priviledged instructions in running code and replace them with their own. I believe they do this by literally scanning code-to-be-executed, which slows down the virtual machine of course. Xen solves this by replacing all such instructions with Xen system calls; somewhat the same as User Mode Linux, where low level instructions are replaced with system calls to the host kernel.

      Not quite ... they just run the virtualized kernel in plain user-mode, then when a privilaged instruction comes up it trips a processor exception. The VMM (VMware or Plex86) then steps in, emulates the privilaged instruction, then gets out of the way. Privilaged instructions, for the non OS-enthusiasts, are usually hardware-related things like INP and OUTP, instructions to change the page tables, switch between 8086 and protected mode, etc. Since these instructions are so rare, VMWare is only ~10% slower than normal - and runs full speed on a large set of workloads.

      Not having read the Xen site yet, what they _probably_ do is replace all such instructions in the source code with their own function calls. VMware did something similar at one point, but didn't turn it into a product because they felt it didn't have commercial potential.

      --

      A witty [sig] proves nothing. --Voltaire

  2. Comparison with other free VMs? by Laur · · Score: 4, Informative

    So it looks like this is the third (or fourth) free VM for Linux, the others being Plex86 (and a different fork here) and User Mode Linux. Does anyone have a good comparison of these three? I know Zen compared UML on their site but not plex86. I'm not really sure of the differences between them, particularly the different versions of plex86 and UML (Zen explained their virtualization process pretty well on their site). Which is the best choice for different scenarios? It looks like Zen is the winner for running Linux as the guest OS, and the original Plex86 (first link) is the only one which offers a free choice in guest OS's.

    --
    When you lose something irreplaceable, you don't mourn for the thing you lost, you mourn for yourself. - Harpo Marx
  3. Re:Interesting .. by Gingko · · Score: 4, Informative

    This is Cambridge computer lab we're talking about - where Microsoft research have the very next building over.

    I live with one of the guys in the systems group and hope to go back there to do my PhD soon, and they do do very cool things there. Microsoft give them all the help they need, because academia is an excellent ideas feeder for the real world. Cambridge, being in a position of power with its serious reputation and fantastic set of minds, gets the benefit of the Microsoft help without any of the assumed costs.

    Henry

    --
    i don't do sigs. oops.
  4. Hardware support by Anonymous Coward · · Score: 4, Informative

    According to the README, it requires special hardware drivers and is not targetted at desktops. Don't expect stellar graphics performance. VMWare *does* give you something for the money.

    Hardware support
    ================

    Xen is intended to be run on server-class machines, and the current
    list of supported hardware very much reflects this, avoiding the need
    for us to write drivers for "legacy" hardware. It is likely that some
    desktop chipsets will fail to work properly with the default Xen
    configuration: specifying 'noacpi' or 'ignorebiostables' when booting
    Xen may help in these cases.

    Xen requires a "P6" or newer processor (e.g. Pentium Pro, Celeron,
    Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron).
    Multiprocessor machines are supported, and we also have basic support
    for HyperThreading (SMT), although this remains a topic for ongoing
    research. We're also looking at an AMD x86_64 port (though it should
    run on Opterons in 32-bit mode just fine).

    Xen can currently use up to 4GB of memory. It's possible for x86
    machines to address more than that (64GB), but it requires using a
    different page table format (3-level rather than 2-level) that we
    currently don't support. Adding 3-level PAE support wouldn't be
    difficult, but we'd also need to add support to all the guest
    OSs. Volunteers welcome!

    We currently support a relatively modern set of network cards: Intel
    e1000, Broadcom BCM 57xx (tg3), 3COM 3c905 (3c59x). Adding support for
    other NICs that support hardware DMA scatter/gather from half-word
    aligned addresses is relatively straightforward, by porting the
    equivalent Linux driver. Drivers for a number of other older cards
    have recently been added [pcnet32, e100, tulip], but these are not
    recommended since they require extra packet copies.