Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×

Xen High-Performance x86 Virtualization Released 316

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."

This discussion has been archived. No new comments can be posted.

Xen High-Performance x86 Virtualization Released

Comments Filter:
  • Pfff (Score:5, Informative)

    by AKAImBatman ( 238306 ) <akaimbatman@gmaYEATSil.com minus poet> on Thursday October 02, 2003 @10:02AM (#7113067) Homepage Journal
    > 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.

  • by Aspasia13 ( 700702 ) on Thursday October 02, 2003 @10:09AM (#7113134)
    From the page (which hasn't bet /.'ed... yet)" you can read that Xen itself is GPLed:

    "Modern computers are sufficiently powerful to use virtualization to present the illusion of many smaller virtual machines (VMs), each running a separate operating system instance. Successful partitioning of a machine to support the concurrent execution of multiple operating systems poses several challenges. Firstly, virtual machines must be isolated from one another: it is not acceptable for the execution of one to adversely affect the performance of another. This is particularly true when virtual machines are owned by mutually untrusting users. Secondly, it is necessary to support a variety of different operating systems to accommodate the heterogeneity of popular applications. Thirdly, the performance overhead introduced by virtualization should be small.

    Xen is a virtual machine monitor for x86 that supports execution of multiple guest operating systems with unprecedented levels of performance and resource isolation. Xen is Open Source software, released under the terms of the GNU General Public License. We have a fully functional port of Linux 2.4 running over Xen, and regularly use it for running demanding applications like MySQL, Apache and PostgreSQL. Any Linux distribution should run unmodified over the ported OS.

    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 (volunteers welcome!). "
  • Re:Pfff (Score:5, Informative)

    by rmohr02 ( 208447 ) <mohr.42@osu. e d u> on Thursday October 02, 2003 @10:10AM (#7113139)
    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.
  • by sjwt ( 161428 ) on Thursday October 02, 2003 @10:11AM (#7113153)
    If you had botherd to open the Xen link,
    and read the page which was a whopping
    8100 bytes in size you would of noticed
    "Xen is Open Source software, released under the terms of the GNU General Public License. We have a fully functional port of Linux 2.4 running over Xen, and regularly use it for running demanding applications like MySQL, Apache and PostgreSQL. Any Linux distribution should run unmodified over the ported OS."

    rather then just trolling off the two words "Microsoft Research"
  • by __past__ ( 542467 ) on Thursday October 02, 2003 @10:13AM (#7113170)
    Virtualization rocks for that kind of things. I happily use FreeBSD jails [freebsd.org] for that. They work on a different level and have different goals, but giving each (group of) user(s) their own sandbox to play with is definitly a really cool thing, both for admins and for the users themselves.
  • by Laur ( 673497 ) on Thursday October 02, 2003 @10:19AM (#7113211)
    So it looks like this is the third (or fourth) free VM for Linux, the others being Plex86 [nongnu.org] (and a different fork here) [sourceforge.net] and User Mode Linux [sourceforge.net]. 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.
  • Re:Interesting .. (Score:5, Informative)

    by Gingko ( 195226 ) on Thursday October 02, 2003 @10:23AM (#7113237)
    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

  • Hardware support (Score:4, Informative)

    by Anonymous Coward on Thursday October 02, 2003 @10:35AM (#7113330)
    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.
  • Microsoft Research (Score:3, Informative)

    by non ( 130182 ) on Thursday October 02, 2003 @10:36AM (#7113338) Homepage Journal
    in case anyone forgot, not only is microsoft research [microsoft.com] their neighbor, but it was also the first microsoft research center outside the us. wired [wired.com] has more [wired.com] about what you can get for $80 million.
  • by emj ( 15659 ) on Thursday October 02, 2003 @10:48AM (#7113438) Journal
    Well:
    User Mode Linux
    1. Is linux Ported to the linux syscalls
    2. Has been ported partially to windows as well
    3. No hardware access only software modificatade to be hardware
    4. Is just Linux
    5. Extremly Easy do install 2 Files to download and then start NO configuration
    6. Very Fast emulation of linux, 10% Slow down while compiling the kernel
    7. Support SWAP partition as memory for virtual machines


    Plex86
    1. Is X86 & Bios ported to C
    2. Runs multiple OSs
    3. Runs on multiple OSs
    4. Very hard to conigure
    5. SLOW!
    6. Thourgh Emulation of the hardware no just software


    Xen

    I have not run this Emulator but it looks like it is more or less an OS (it has to have support for Graphics card/NICS/MMU to virtualize them). So it seems like it work in the same way as UML but tries to make the big change in the operating system running bellow instead ontop. Now I need to read that paper more before I can say anything, but they do alot less changes to the kernel than UML (~2700 lines of codes in the kernel).

  • Re:Pfff (Score:3, Informative)

    by vrt3 ( 62368 ) on Thursday October 02, 2003 @11:16AM (#7113728) Homepage
    Yes, but VMWare still needs to make concessions for each supported OS. Yes, you can install and run Solaris/86, pre-v6 Netware versions, plan9, and BeOS under VMWare (with varying success), but they're not supported. They need to tweak VMWare for each OS.
    I could be wrong, but I didn't think so. Not supported means they don't support it, not that it doesn't work. The tweaking that is done when you select a specific OS only concerns the configuration, such as amount of memory and stuff. Things you can easily adjust yourself.
    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.
  • by Laur ( 673497 ) on Thursday October 02, 2003 @11:18AM (#7113751)
    Thanks for the info, however you seem to be confusing Plex86 with Bochs [sourceforge.net]. They share a lot of code, however while Bochs emulates the entire hardware (and thus can be used on any platform) Plex86 virtualizes many things and so can only be run on x86 hardware, but is supposed to have much better performance because of this. Also, AFAIK Plex86 is only available for Linux (as the host OS). The original Plex86 [nongnu.org] should run any x86 OS. The new Plex86 fork [sourceforge.net] simplifies the virtualization even more and only runs Linux, supposedly with an even greater performance increase, providing basically the same thing as UML but in a different manner.

    What I was interested in was performance comparisons between the different Plex86 versions, UML, and Xen, as well as some info on how each goes about virtualizing the hardware (which is better and why). I was playing with Bochs just a few weeks ago (on a 600 MHz ibook, Linux as the host, Windows 98SE as the guest) and found it unusably slow. I haven't played with Plex86, UML or Xen yet, but I plan to as soon as I get the free time. ;)

  • Re:Pfff (Score:3, Informative)

    by Fluffy the Cat ( 29157 ) on Thursday October 02, 2003 @11:43AM (#7114022) Homepage
    I'm surprised that this was possible at all with Windows XP. Microsoft's Shared Source program doesn't seem to be as useless as I thought.

    Microsoft Research UK is literally next door to the University of Cambridge Computer Laboratory. Microsoft Research UK desperately wants the university to like it in order to gain more academic credability.
  • Adeos (Score:2, Informative)

    by joe_plastic ( 704135 ) <stephen DOT pollei AT gmail DOT com> on Thursday October 02, 2003 @12:00PM (#7114217) Homepage Journal
    http://www.opersys.com/adeos/index.html
    http://sa vannah.nongnu.org/projects/adeos

    "The purpose of Adeos is to provide a flexible environment for sharing hardware resources among multiple operating systems, or among multiple instances of a single OS."

    This is similiar to xen and the new plex86 and it has some experience with supporting rtos
  • Re:Pfff (Score:3, Informative)

    by Martin Blank ( 154261 ) on Thursday October 02, 2003 @12:07PM (#7114303) Homepage Journal
    I could be wrong, but I didn't think so. Not supported means they don't support it, not that it doesn't work. The tweaking that is done when you select a specific OS only concerns the configuration, such as amount of memory and stuff. Things you can easily adjust yourself.

    Correct. Debian's not supported, but it works. OpenBSD isn't supported, but it (sort of) works. Basically, you have to be prepared to deal with some frustration in things being slow or sometimes unstable, but this does not have to do so much with the emulation as it does with the tools. VMWare has a package that is installed on the virtual machines that contains drivers for the hardware that does need to be virtualized, and a couple of utilities allowing access to a "shared drive" to allow easier movement of files between main system and VM. The Linux tools, BTW, can be compiled individually for each OS. Once I finally got Debian installed, this made things much smoother.
  • Re:Pfff (Score:5, Informative)

    by kscguru ( 551278 ) on Thursday October 02, 2003 @12:28PM (#7114520)
    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.

  • this looks familiar (Score:2, Informative)

    by todorb ( 169225 ) on Thursday October 02, 2003 @01:45PM (#7115345)
    from the ADEOS site (http://www.nongnu.org/adeos/):

    "The Adeos Project

    The purpose of Adeos is to provide a flexible environment for sharing hardware resources among multiple operating systems, or among multiple instances of a single OS.

    To this end, Adeos enables multiple prioritized domains to exist simultaneously on the same hardware. For instance, we have successfully inserted the Adeos nanokernel beneath the Linux kernel, opening a full range of new possibilities, notably in the fields of SMP clustering, patchless kernel debugging and real-time systems for GNU/Linux."

    this thing is used in the RTAI realtime linux project.
  • by Torne ( 78524 ) <torne@wolfpuppy.org.uk> on Thursday October 02, 2003 @03:11PM (#7116332)
    We did benchmark against VMWare 4 (and ESX), but those versions have a clause in their licence agreements forbidding publishing of benchmarking results without VMWare's permission. They refused us permission, from which you can deduce who is faster. =)

    Torne
    (XenoXP porter)
  • Re:Pfff (Score:2, Informative)

    by weileong ( 241069 ) on Friday October 03, 2003 @01:55AM (#7121510)

    Actually, I've found that VMware doesn't work with quite a lot of the x86 OS-es I've tried (and on their website there's something to that effect [vmware.com]).

    BeOS doesn't work, neither does QNX or OS/2. I'm having a heck of a time getting Solaris x86 to work as well (doesn't seem to like the HDD being presented as a SCSI device, must be IDE, although I've installed actual Solaris x86 machines with SCSI HDDs before without problems).

  • Re:Pfff (Score:1, Informative)

    by Anonymous Coward on Saturday October 04, 2003 @01:01AM (#7130709)
    BeOS mostly works for me. I've only tried it in OBJ (read: devel) builds of VMware, but I have no reason to suspect it won't work in Workstation 4.0.

    The clock moves at 1minute/second or so, but one of my coworkers (who was on the kernel team at Be, Inc) assures me that that is (mostly) a BeOS bug.

Scientists will study your brain to learn more about your distant cousin, Man.

Working...