Talk:Comparison of virtual machines

From Wikipedia, the free encyclopedia

What counts as a "Virtual Machine". Does something where it is separated from the main operating system, but is still the same operating system and kernel, like chroot, does that count? What about something like user mode linux? Reub2000 19:43, 10 Mar 2005 (UTC)

I was debating putting user-mode linux on the list, just for completeness' sake. I created this comparison just to expose similar-purpose products to an apple-to-apples comparison as much as possible, for my benefit as well as others'. Based on what I know, it looks like user-mode linux would not be out of place here. MARQUIS111 2:47 EST, March 10, 2005
To answer your question about what is a virtual machine, to my mind, it is method of running an OS in a protected/isolated environment with virtual hardware created on another OS. There is, of course, a vast crowd of VM's fitting that description, from MAME, to Commodore 64 emulators to CHARON. This list could have them all, but I'm not adding them. :-) I just put on the ones I'm interested in. Let someone else add them to this or another table.


"Native speed because nothing is running under emulation or any different as it would natively without being under a VM." Am I the only one that finds this confusing? 18:53, 19 December 2005 (UTC)

Contents

[edit] I don't like the split

I think the comparision should exactly like it was, since so many of the emulators do a lot of archs. Like qemu, which is on both lists.

I didn't like it either, the more I looked at it. Just reverted it back.

[edit] Win4Lin missing

Could somebody who knows about this stuff integrate Win4Lin?

Whoever does this needs to bear in mind there are two Win4Lin product lines based on rather different technology. The original Win4Lin for running Win9x/ME uses a very different strategy to the new Win4Lin for running Win2K (which is based on QEmu). Mark Williamson

[edit] Supported guest OS drivers

What does the "Supported guest OS drivers" column actually refer to? Drivers provided by the virtual machine vendor? Mark Williamson

My intent in putting that column in was to address mainly the Dynamic Recompilation/Virtualization/Emulation camp, wherein dwell VMWare, VirtualPC, BOCHS, QEMU (without kqemu), etc. They offer drivers for selected OS' to speed up performance. Non-supported arbitrary OS' can run, but not as well. For the Porting-style camp, like XEN and Denali, this would likely be a n/a entry in that field. I'm not familiar with the others, so I leave that to those who know those products.--MARQUIS111 16:51, Apr 17, 2005 (UTC)
Thanks for the response. Either n/a or plain "Yes" (since they not only support but actually rely on custom guest OS drivers) would make sense to me. I'll probably go through and update the table at some stage (if nobody beats me to it). Mark Williamson 13:45, 19 Apr 2005 (UTC)


[edit] USB Support

It would be nice if there was a column for USB support. VMware, for example, supports USB Full Speed rate of 12 Mbit/s (commonly mis-referred to as 1.1), but not Hi-Speed USB. --Elvey 16:28, 19 October 2006 (UTC)

Thankyou !! I fully agree, I just added a new column for people to fill in the details for each VM (I did the first one "BOCHS" myself) but one of the bots removed it ! :-(. Anyway, I added it again as a vein attempt to make it stick :p -- Jonathan Casey (University of Warwick - Computer Science UG)

[edit] User Mode Linux is missing

I think User Mode Linux ( http://user-mode-linux.sourceforge.net/ ) deserves some mention here.

True, i vote for inclusion, too.
Creator=Jeff Dike/Community project; Host Processor=x86 (x86_64 beta?); Guest Processor=(Same as parent); Host OS=linux>=2.4, Officially supported guest OS=linux>=2.4; Guest OS SMP available?=no(?); Runs Arbitrary OS=no; Drivers for supported guest OS available?=yes; Method of operation=??; License=GPL; Typical use=Hobbyist, Developer, Server/Service Isolation; Guest OS speed relative to Host OS=slow, better with SKAS patch on host.
Nils Toedtmann 12:35, 10 November 2005 (UTC)
BTW, what about including Cooperative Linux ( http://www.colinux.org/ )?
Creator= Dan Aloni/Community project; Host Processor=x86; Guest Processor=(Same as parent); Host OS=Win2k, WinXP, linux 2.6; Officially supported guest OS=linux=2.6.10; Guest OS SMP available?=?; Runs Arbitrary OS=no; Drivers for supported guest OS available?=yes; Method of operation=??; License=GPL; Typical use=Hobbyist, Developer; Guest OS speed relative to Host OS=slow.
Nils Toedtmann 12:57, 10 November 2005 (UTC)

coLinux is supposed to be near-native speed, it's not an emulator. from my experience it -is- very fast.

[edit] If we start listing emulators, why listing so few...

If we start listing such things as PearPC, why not other emulators, like for example SheepShaver, Basilisk II, or even any emulator existing? I mean, what's the difference between PearPC and Basilisk II that makes that one is listed here and not the other? --SuperBleda 23:29, 13 September 2005 (UTC)

[edit] Virtualisation vs emulation and confusion

I thought I understood what virtualisation means. From reading this and related articles I'm now quite confused. I was under the impression the virtualisation is different from emulation and basically means you're running the code as native code on the processor. For this reason, you can only virtualise the native processor. Bochs for example emulates (or something similar) but does not virtualise. This is supported in this page somewhat. But in the virtualization page, it lists Bochs as virtualization software! Furthermore under the entry here for Virtual PC for the Mac, it claims it uses dynamic recomplation and/or virtualisation. I believe dynamic recompilation is possible but virtualisation is not (obviously things will change when we get x86-64 Macs but thats a different issue). If this is correct, this needs to be reworded to make this clear.

Furthermore, the Virtual PC page suggests Virtual PC has always been virtualisation software. Yet virtual PC started off as Mac software, it was only later they brought it to the x86. If my understanding of virtualisation is correct then clearly Virtual PC did not used to be virtualisation software, despite the name and it needs to be made clear. If I am correct, the Virtual PC article also needs to make clear that Virtual PC for the Mac is not virtualisation software. I think Virtual PC for the PC/x86 is virtualisation software but I'm not certain. If it is, obviously the difference between the Mac and PC version needs to be emphasised.

This is quite a technical issue and I clearly don't know enough to correct it. This is why I tagged all 3 needing expert attention. I hope this was okay, it's my first tag. BTW, I think SuperBleda's question is also quite relevant Nil Einne 17:52, 22 October 2005 (UTC)

I've just modified Virtual PC, Bochs and this article.
I think I've just solved the confusion.
Claunia 21:50, 22 October 2005 (UTC)

[edit] Splitting "xen" into "xen<=2" and "xen>=3 w/ VT"

The actual description of xen is correct for xen <= 2.0.x or any xen on a CPU not supporting Virtualization_Technology. But xen >= 3.0 on a VT-enabled CPU should run any guest os, and it's real virtualization, not paravirtualization. So i vote for giving xen two rows. Nils Toedtmann 11:06, 10 November 2005 (UTC)

AnthonyLiguori: I've updated the page to reflect Xen 3.0 and some recent changes in QEMU. I don't think it's work splitting the Xen section into a 2.0/3.0 since 2.0 doesn't really have a large user base anyway. One thing I removed was part of the footnote about Xen's performance. It compares it do an "advanced chroot" which is really wrong. Paravirtualization is doing at compile time what something like VMware does at run-time (replacing sensitive instructions with something else). Plus, with the recent HVM support, it just leds to more confusion.


[edit] OOPS so sorry...

i didn't read this page before adding colinux and user-mode linux

but i'll keep them on the main page...you can delet them if you want

we don't need to vote here this is a non-sens what we need is a clear definition of virtual machine...

mabe the fronteer is tigh between all the notions...

users are going on this page in order to choose a virtual machine or search information about...see comparaison of operating system or filesystem for reference...

so ,my idea is :

  • changing the name of the page into a more generalist topic in order to include things such wine,SFU...
  • do a clasification of theses "virtual machine" with the folowing criter:
    • Possible Use (for example bosh can serve as a machine emulator...in order to port an os to an architecture ...wine can't do that)
    • technology (machine emulator,wrapper(wine)...)

theses two categories will be merged into only one

in order to do this clasification i propose the folowing presentation: I HAVE A PROBLEM WITH TABS...PLEASE LOOK AT THE CODE IN ORDER TO KNOW WHANT I WANT TO TELL


(optional comparaison of the different general technologies(wrapper,virtual machine) showing what is diferent between all them)

[edit] MAchine emulator

(optional description of what is a "machine emulator")

Name Creator Host Processor Guest Processor Host OS Officially supported guest OS Guest OS SMP available? Runs Arbitrary OS Drivers for supported guest OS available? Method of operation License Typical use Guest OS speed relative to Host OS
Bochs Kevin Lawton x86, x86_64, Sparc, PowerPC, Alpha, MIPS x86, x86_64 Windows, Linux,
OS X, IRIX, AIX, BeOS
DOS, Windows, xBSD, Linux Yes Yes  ? Emulation LGPL Hobbyist, Developer Very slow

[edit] Wrapper

(optional description of what is a wrapper)


Name Creator Host Processor Guest Processor Host OS Officially supported guest OS Guest OS SMP available? Runs Arbitrary OS Drivers for supported guest OS available? Method of operation License Typical use Guest OS speed relative to Host OS
wine  ??? x86 x86 Linux,unix Windows(win32 subsystem only)  ???  ???  ? wrapper ??? run win32 apps under linux/unixes  ??? insert a % here

And I propose to migrate this "Expert debat" to the Virtual machine page

But in order to better understand what a virtual machine is we need example that are present on the "Virtual machine page" but we could,in order to show well the diferences between the term, add a column and put inside "virtual machine" "wrapper",because technology is more precise and give infotrmation about the exact system that use the "virtual machine" and the use is too general

Another idea is explainig the difference under the title ""==wrapper==" or "==virtual machine==

[edit] Faster than native?

The page says that the speed of UML is "Native** (some people says that it is faster than natively)". How's that possible, faster than native? IMHO UML is "Slow".

[edit] Virtual PC vs VMWare

I notice that they both say "close to native" -- I was doing a quick bit of research here before deciding which one to use, and based on that I took Virtual PC because I have access to it through MSDN. Big mistake. I've just abandoned Virtual PC for VMWare because there is no way Virtual PC can be described as close to native (yes, I installed the extensions). It runs at a reasonable speed, but installing Windows, Visual Studio etc. takes HOURS, whereas in VMWare it was, well, close to native.

The reason is that VirtualPC doesn't run very fast is that it only virtualises rings 1-3 of the x86 architecture. VMWare does "pseudo" virtualisation of ring 0 too (the guest operating system's core kernel). Virtual PC emulates ring 0 making installation of the operating system, and disk heavy operations like installation of big packages very slow.
qemu with kqemu does dynamic translation of ring 0 code making it slightly faster. More recent versions of qemu also do "pseudo" virtualisation of ring 0 when qemu is run with the -kernel-kqemu option making it run much faster (except that the peripheral emulation is still a little slow). This should be added as another qemu row (qemu w/ kqemu module and -kernel-kqemu option) where it runs at "near native" speed.

[edit] Additional sub-category needed

It appears to me that as currently formulated, the page makes no mention of virtual machines that don't purport to emulate the instruction set of any physical CPU, but are created specifically to be virtual machines. Examples include the Java VM and the UCSD p-machine. Given that the title of the page remains "Comparison of virtual machines," clearly these also qualify. David Favro 12:39, 1 April 2006 (UTC)

[edit] Subjective use of green and red

Within the table, some VM qualities are marked with red or green backgrounds, presumably to indicate that these traits are desirable or undesirable in an emulator. These appear to be set with the assumption that the user is looking for the "best" emulator, as though this were a product comparison. It should be more objective than that. If a reader is looking for a specific type of emulator for a specific project, some "undesirable" qualities may in fact be desirable, or meaningless, depending on the application. I would like to propose the removal of subjective indicators within the VM comparison. "Just the facts, ma'am." Fastolfe00 17:20, 17 April 2006 (UTC)

[edit] Proposed move

The page's name is nice and short but wouldn't the name Comparison of various virtualization and emulation tools be more descriptive? --unforgettableid | talk to me 04:53, 27 April 2006 (UTC)

Agree. "Virtual machine" sounds a bit misleading.
The only thing is I'd remove the word "various" from the title as it does not adds value. --K001 21:00, 5 July 2006 (UTC)

[edit] (about the content of the article) SSE-2 in the table?

should SSE-2 support be in the comparison table?

--DDDW 21:23, 26 May 2006 (UTC)

[edit] UML can't be considered as fast as OpenVZ or Linux-Vserver

As the subject says.

UML boots a whole nother kernel and runs things usually from a loop device.

OpenVZ and Linux-Vserver both use the host kernel, and the host filesystem, employing a more "chroot" approach.

Just my tuppence.

[edit] Missing information on the early VM systems

Historical information, to the best of my recollection and research --

Name Creator Host Processor Guest Processor Host OS Officially supported guest OS Guest OS SMP available? Runs Arbitrary OS Drivers for supported guest OS available? Method of operation License Typical use Guest OS speed relative to Host OS
CP-40 R. J. Adair, R. U. Bayles, L. W. Comeau, R. J. Creasy (IBM CSC) IBM System/360-40 (modified) System/360 Basic CP-40 CMS, OS/360, DOS/360 No Yes (none required) Virtual Machine Hypervisor Copyright Only Research, Developer up to 95%
CP-67/CMS Adair, Bayles, Comeau, Creasy, et al (IBM CSC, MIT Lincoln Lab) IBM System/360-67 System/360 Basic CP-67 CMS, OS/360, DOS/360, CPREMOTE Experimental Yes (none required) Virtual Machine Hypervisor Copyright Only Research, Developer, Production up to 95%
VM/370 S. R. Newson, R. A. Seymour, C. Young, et al (IBM) IBM System/370-VS (135/145/155-II/165-II/158/168) System/370 Basic, System/370-VS VM-CP CMS, RSCS, VMREMOTE, any S/370 OS including itself No Yes (none required) Virtual Machine Hypervisor IBM SCP, Copyright Production, Research, Developer up to 95%

Dave Tuttle 19:42, 13 October 2006 (UTC)