Xen High-Performance x86 Virtualization Released 316
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."
Pfff (Score:5, Informative)
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.
Re:I bet it's not Open Source... (Score:2, Informative)
"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)
Re:I bet it's not Open Source... (Score:3, Informative)
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"
Re:How is it ideal for secure virtual hosting? (Score:3, Informative)
Comparison with other free VMs? (Score:5, Informative)
Re:Interesting .. (Score:5, Informative)
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)
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)
Re:Comparison with other free VMs? (Score:3, Informative)
User Mode Linux
Plex86
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)
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.
Re:Comparison with other free VMs? (Score:3, Informative)
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)
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)
http://s
"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)
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)
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)
"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.
Re:Not really like VMWare (Score:2, Informative)
Torne
(XenoXP porter)
Re:Pfff (Score:2, Informative)
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)
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.