Xen High-Performance x86 Virtualization Released
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."
> 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.
Javascript + Nintendo DSi = DSiCade
... to publish a paper called "Xen And The Art of Virtualization".
RTFA. It's GPL.
(waiting for the 20 second delay to expire... @#%$! Slashdot)
With assistance from Microsoft Research, we have a port of Windows XP to Xen nearly complete
They won't release the source for XP, but you can probably get a compiled binary. I just wonder if you'll have to re-register every time you change your virtual hardware.
In the same way that Mac On Linux makes moving people to Linux on a Mac pretty painless (just give them an icon for OSX in a window) this might do the same for migrating Windows users.
The biggest problem with emulators/virtualisation has always been speed. If a system can be set up that runs Linux but can boot XP easily and run fast, that will be a big improvement.
Of course it's not going to be much good for gamers (doesn't look like it can use hardware accelaration) but it's still pretty promising.
Beep beep.
I'm really surprised they got assistance for windows XP. You'd think that Microsoft would want to stay well clear of anything linked to the GPL.
I guess such assumptions are incorrect, and quite probably a result of reading Slashdot too much!
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!).
If one need to port an OS to make it work within Xen, then I will NOT compare it to VMWare. VMare can run your stock OS on a VM whithout the need to tweak it.
The performance advantage it has over VMWare is probably related to that. By having a few restriction on the OS, they can probably offer better performances.
I, for one, welcome our new Xen masters.
So really, this is just an abstraction layer that means even the OS is unaware it's sharing hardware, so in theory theres no way for a malicious user to take advantage of other users. Pretty cool in a boring and limited sort of way. Kudos to the team who did it, I'm sure it's a real technological challenge. Not what the /. headline promised though ;)
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!). "
Finally I can create a Beowulf cluster without the clutter of all those machines!
...is if you can copy and paste between the OSs. That always annoyed me when I had Linux open remotely through a Windows machine. I had to leave a submission form open on my website as a "back door" to copy stuff in. This goes for things like Gnumeric to Excel data too.
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"
You have 5 Moderator Points!
Which Helpless Linux zealot/MS basher do you want to mod down today?
Virtualization rocks for that kind of things. I happily use FreeBSD jails 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.
Programming can be fun again. Film at 11.
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
So when do I get a Virtual Virtual Machine, to allow me to run all these VM's at the same time? Because as we all know, it makes much more sense to do this, than, oh I don't know... Buy another $299 computer?
"....and regularly use it for running demanding applications like Apache, PostgreSQL and Mozilla."
That's kinda funny, lumping a web browser in the same category as server apps designed to handle gazillions of users.
Come on, it's not THAT bloated!
Oh, you mean this then?
(sry NYI)
-- Mod me down. I am not a karma tart. ffs,gag
Sounds an awful lot like usermode linux. Get a vesion of the kernel/OS which makes calls to a host virtual machine rather than directly to the hardware for privileged instructions. Everything else can run directly through the CPU without being emulated because it is running in 'usermode' (or ring 1).
I.O.U One Sig.
As I have stated before about Microsoft's purchase of Connectix's Virtual Server technology
The Electronic Frontier Foundation are about to publish a paper criticizing a component of the "trusted computing" technology promoted by Microsoft, IBM and other technology companies, calling the feature a threat to computer users..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.
in case anyone forgot, not only is microsoft research their neighbor, but it was also the first microsoft research center outside the us. wired has more about what you can get for $80 million.
...vividly encapsulates that post-Watergate/pre-punk/coked-up moment when you could trust no one, least of all yourself.
If they ever release the XP binary you will have to bet that it will be some hight priced version of xp that runs it. Or else you will run into all kind of license problems.
If it will be a concurrent of The virtual machine solution they bought from connectix This will not be released.
And if it will work with a standard XP home/pro you will have all kind of activation loopholes like in vmware.
The source code is only available via BitKeeper, as far as I can tell from their site. The BitKeeper tools are not free software and cannot be used by anyone who has contributed to a competing product, according to the license for the free-as-in-beer version of BitKeeper. Is there somewhere else to get source and I'm just missing it?
I would guess it is because Microsoft has a modest edge over Linux International when it comes to funding research grants.
the growth in cynicism and rebellion has not been without cause
Silly question about activation .. actually not -about- activation, but inspired by activitation :
... what are the facts?
If you only have a single computer with a single CPU, how many copies of WinXP do you need? That one is rhetorical of course, and the answer is One.
Can you run whatever software on that legitimately licensed WinXP machine that you like, assuming it was also legitimately licensed? That one is also rhetorical and the answer is Yes.
Now install VMware on that machine, WinXP as the host OS. By adding VMware you have not increased the number of CPUs or physical machines. If you created three virtual machines (if you had enough RAM and hard drive space, not a stretch at all) and wanted to run WinXP in each of those virtual machines simultaneously - do you need 1 license of WinXP or four licenses of WinXP (one for the host OS, and one for each VM)?
Granted the activation and active license management in XP may not allow this to happen even if in theory it should be allowed according to the 1 license / physical machine license in the EULA - but swap it with Windows 2000 or whatever
I am just curious.
Glonoinha the MebiByte Slayer
NomadBIOS did this a year ago, including swift migration of Guest OSes betweeen hosts, but with only two people and without a MS-research grant... But Xen looks nice, and the porting effort seems to be smaller.
http://www.opersys.com/adeos/index.htmla vannah.nongnu.org/projects/adeos
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
The x86 architecture is not designed to be virtualized, at least not for code expecting to run in ring 0. The work that VMWare must do to emulate ring 0 without the guest OS coming unglued is simply daunting, including traps for every detail from setting and clearing interrupts to modifying page tables. A lot of that work requires predicting code execution paths and dynamically modifying the code at runtime. It's a real nightmare.
Plex86 promised to provide an open-source solution to this problem, but the last time I checked (which admittedly was awhile ago), they were planning on using bochs to emulate ring 0. This is not exactly satisfactory, but I don't blame them. It's a hard problem, one for which VMWare is entitled and deserving of reward for having solved.
So how do you get real virtual host performance out of your x86 machine? You design around the flaw. Operating systems that are written to run in ring 1 and call the Xen hypervisor instead of performing ring 0 functions will run at nearly full speed. Those that do not or will not make these compromises will see at best, an emulated ring 0. It's really that simple.
Personally, I don't see much value in being able to run any arbitrary operating system in a single environment if it's impossible to get real, sustained performance out of it. Cross-platform testing: sure. Kernel debugging: certainly. But host virtualization? What I want is the capability of running multiple hosts simultaneously, and if the operating system needs delibrate tweaking to make this possible, then obviously that's the direction to go.
To answer the gripes of people who want just that transparent hosting of unmodified OSes, it would be interesting to see a follow-on project for dynamically modifying the guest OS to thunk-out all the privileged calls to use the Xen extensions directly rather than trapping exceptions as they do now. This would probably not work well for page tables modifications, so a hybrid system might be employed. In this fashion, the best of both worlds may be achieved.
-Hope
Is it really that fucking difficult to write an accurate summary?
A person reads the summary, and reasonably thinks:
"Great! An Open Source equivalent of VMware Workstation! Now I'll be able to run multiple OS's on my Desktop machine without the expense!"
Then he reads:
"Xen requires guest operating systems to be ported to run over it..."
This changes the picture dramatically, and should have appeared MUCH earlier in the summary.
Come on, I know this is only Slashdot, but stupidity and dishonesty like this get really annoying.
Neopets - the best free game on the Int
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.
With all the achievements in x86 binary code analysis, instrumentation and compilation (think of valgrind or Transmeta, to name just a few), wouldn't it be possible to read the kernel binary into some kind of a compiler, find all uses of the instructions that have to be replaced, replace them (and the adjoining code, if necessary) with the Xen interface calls, then reassemble and relink the kernel?
How extensive and how non-trivial are the necessary changes?