Comparison of virtual machines

From Wikipedia, the free encyclopedia

The table below compares basic information about virtual machine (VM) packages. Note that these are all virtual machines in the 'hypervisor' or 'hardware emulator' sense. None of them are VMs in the Application Virtualization sense as the Java Virtual Machine or Parrot virtual machine. For those, see Comparison of Application Virtual Machines.

Contents

[edit] General Information

Name Creator Host CPU Guest CPU Host OS(s) Guest OS(s) License
Bochs Kevin Lawton any x86, AMD64 Windows, Windows Mobile, Linux, IRIX, AIX, FreeBSD, OpenBSD, BeOS, Mac OS X DOS, Windows, xBSD, Linux LGPL
Containers Sun Microsystems x86, x86-64, SPARC (portable: not tied to hardware) (Same as host) Solaris 10 Solaris (8, 9 or 10), Linux (BrandZ) CDDL
Cooperative Linux Dan Aloni helped by others developers 1 x86, others? (Same as parent) Windows NT (NT, 2000, XP, Server 2003), Linux? Linux GPL version 2
Denali University of Washington x86 x86 Denali Ilwaco, NetBSD ?
DOSBox Peter Veenstra and Sjoerd with community help any x86 Linux, Windows, Mac OS Classic, Mac OS X, BeOS, FreeBSD, OpenBSD, Solaris, QNX, IRIX, MorphOS, AmigaOS Internally emulated DOS shell GPL
DOSEMU Community Project x86 x86 Linux DOS GPL version 2
FreeVPS PSoft x86, AMD64 compatible Linux Various Linux distributions GPL version 2
GXemul Anders Gavare any ARM, MIPS, PowerPC, SuperH Unix-like NetBSD, OpenBSD, Linux, Ultrix, Sprite BSD
Hercules Jay Maynard any z/Architecture Unix-like Linux on zSeries, z/OS, z/VM, z/VSE, OS/360, DOS/360, DOS/VS, MVS, VM/370, TSS/370. QPL
Integrity Virtual Machines Hewlett-Packard IA-64 IA-64 HP-UX HP-UX, Windows, Linux (OpenVMS announced) Proprietary
JPC (Virtual Machine) Oxford University Any running the Java Virtual Machine x86 Java Virtual Machine DOS GPL version 2
Linux KVM KVM Intel/AMD processor with X86 virtualization x86/AMD64 Linux Linux, Windows GPL2
LinuxOnLinux Gelato@UNSW Itanium compatible Linux Linux GPL
Linux- VServer Community Project x86, AMD64, IA-64, Alpha, PowerPC/64, PA-RISC/64, SPARC/64, ARM, S/390, SH/66, MIPS compatible Linux Various Linux distributions GPL version 2
Logical Domains Sun Microsystems UltraSPARC T1, UltraSPARC T2 compatible Solaris Solaris, Linux, and FreeBSD ?
Mac-on-Linux Mac On Linux PowerPC PowerPC Linux Mac OS X, Mac OS 7.5.2 to 9.2.2, Linux GPL
Mac-on-Mac Sebastian Gregorzyk PowerPC PowerPC Mac OS X, up to Tiger excluded Mac OS X, Mac OS 7.5.2 to 9.2.2, Linux GPL
OKL4 Open Kernel Labs x86, ARM, MIPS as host none (bare metal) Linux, eCos, "other RTOSes" BSD
OpenVZ Community project, supported by SWsoft Intel x86, AMD64, IA-64, PowerPC64, SPARC/64 Same as host Linux Various Linux distributions GPL
Oracle VM Oracle Corporation Intel x86, x86-64, Intel VT-x Intel x86, x86-64, Intel VT-x • Oracle Enterprise Linux 4 and 5
• REL3, RHEL4 and RHEL5
• Windows 2003, Windows Server 2003 and Windows XP are supported on Hardware Virtualized (HV) capable hardware
Microsoft Windows
Oracle Enterprise Linux
Red Hat Enterprise Linux
Free
Commercial
Oracle VM is Xen on Red Hat
Padded Cell for x86 Green Hills Software x86, Intel VT-x x86 INTEGRITY Real-time OS Windows, Linux, Solaris Proprietary
Padded Cell for PowerPC Green Hills Software PowerPC PowerPC INTEGRITY Real-time OS Linux Proprietary
Parallels Desktop for Mac Parallels, Inc. Intel x86, Intel VT-x Intel x86 Mac OS X (Intel) Windows, Linux, FreeBSD, OS/2, eComStation, MS-DOS, Solaris Proprietary
Parallels Workstation Parallels, Inc. x86, Intel VT-x x86 Windows, Linux Windows, Linux, FreeBSD, OS/2, eComStation, MS-DOS, Solaris Proprietary
PearPC Sebastian Biallas x86, AMD64, PowerPC PowerPC Windows, Linux, Mac OS X, NetBSD Mac OS X, Darwin, Linux GPL
PowerVM IBM POWER4, PowerPC 970,
POWER5, POWER6
POWER4, PowerPC 970
POWER5, POWER6
hardware / firmware
no host OS
Linux-PPC, AIX,
i5/OS, IBM i
Proprietary
QEMU Fabrice Bellard helped by other developers x86, AMD64, IA-64, PowerPC, Alpha, SPARC 32 and 64, ARM, S/390, M68k x86, AMD64, ARM, SPARC 32 and 64, PowerPC, MIPS Windows, Linux, Mac OS X, Solaris, FreeBSD, OpenBSD, BeOS Changes regularly [1] GPL/LGPL
QEMU w/ kqemu module Fabrice Bellard Intel x86, AMD64 Same as host Linux, FreeBSD, Solaris, Windows Changes regularly [2] GPL/LGPL
QEMU w/ qvm86 module Paul Brook x86 x86 Linux, NetBSD, Windows Changes regularly GPL
QuickTransit Transitive Corp. AMD64, x86, IA-64, POWER MIPS, PowerPC, SPARC, x86 Linux, Mac OS X, Solaris Linux, Mac OS X, Irix, Solaris Proprietary
RTS Hypervisor Real-Time Systems Intel and AMD x86 x86 none: bare metal installation Linux, VxWorks, Windows CE, ETS and proprietary OS Proprietary
SimNow AMD AMD64 AMD64 Linux (64bit), Windows (64bit) Linux, Windows (32bit and 64bit) AMD proprietary
Simics Virtutech x86, x86-64, SPARC v9 Alpha, ARM, IA-64, MIPS32, MIPS64, MSP430, PPC32, PPC64, POWER, SPARC v8, SPARC v9, x86, x86-64, TI TMS320C64xx. Windows, Linux, Solaris Depends on target machine, VxWorks, OSE, QNX, Linux, Solaris, Windows, FreeBSD, RTEMS, TinyOS, and many others have been run. Proprietary
Sun xVM Sun Microsystems x86-64, SPARC (Same as host) none (bare metal with Solaris as special guest providing backend drivers to guests) Windows XP & 2003 Server (x86-64 only), Linux, Solaris GPLv3
SVISTA 2004 Serenity Systems International x86 x86 Windows, OS/2, Linux ? Proprietary
TRANGO TRANGO Virtual Processors, Grenoble, France ARM, XScale, MIPS, PowerPC Paravirtualized ARM, MIPS, PowerPC none: bare metal execution, Linux or Windows as dev. hosts Linux, eCos, µC/OS-II, WindowsCE, Nucleus, VxWorks Proprietary
User Mode Linux Jeff Dike helped by other developers x86, x86-64, PowerPC (Same as parent) Linux Linux GPL version 2
View-OS Renzo Davoli helped by other developers [3] x86, PowerPC, AMD64 (in progress) (Same as parent) Linux 2.6+ Linux executables GPL version 2
VDSmanager ISPsystem LLC x86 (Same as host) FreeBSD FreeBSD Proprietary
VirtualBox Sun Microsystems x86, x86-64 x86 Windows, Linux, Mac OS X (Intel), Solaris DOS, Windows, Linux, OS/2, FreeBSD, Solaris GPL V2; full version with extra enterprise features is proprietary (free for personal and educational use and evaluation)
Virtual Iron Virtual Iron 3.1 Virtual Iron Software, Inc. x86 VT-x, AMD64 AMD-V x86, AMD64 none: bare metal execution Windows, Red Hat, SuSE Complete product carries a proprietary license [4]; a few components are GPL2 [5]
Virtual PC 2007 Microsoft x86, x86-64 x86 Windows Vista (Business, Enterprise, Ultimate), XP Pro, XP Tablet PC Edition DOS, Windows, OS/2, Linux(Suse, Xubuntu), OpenSolaris(Belenix) Proprietary (free from Jul 2006)
Virtual PC 7 for Mac Microsoft PowerPC x86 Mac OS X Windows, OS/2, Linux Proprietary
VirtualLogix VLX VirtualLogix ARM, TI DSP C6000, Intel x86, Intel VT-x and VT-d, PowerPC Same as parent none: bare metal installation Linux, Windows XP, C5, VxWorks, Nucleus, DSP/BIOS and proprietary OS Proprietary
Virtual Server 2005 R2 Microsoft Intel x86, AMD64 Intel x86 Windows 2003, XP Windows NT, 2000, 2003, Linux (Red Hat and SUSE) Proprietary (Free)
Virtuozzo SWsoft x86, IA-64, AMD64 x86, IA-64, AMD64 Linux & Windows Various Linux distributions; Windows Proprietary
VMware ESX Server 3.0 VMware x86, AMD64 x86, AMD64 none (bare metal install) Windows, Red Hat, SuSE, Netware, Solaris Proprietary
VMware ESX Server 2.5.3 VMware x86, AMD64 x86 none (bare metal install) Windows, Red Hat, SuSE, FreeBSD, Netware Proprietary
VMware Fusion VMware x86, Intel VT-x x86, AMD64 Mac OS X (Intel) Windows, Linux, Netware, Solaris, others Proprietary
VMware Server VMware x86, AMD64 x86, AMD64 Windows, Linux DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual appliances Proprietary (Free)
VMware Workstation 6.0 VMware x86, AMD64 x86, AMD64 Windows, Linux DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual appliances Proprietary
VMware Player 2.0 VMware x86, AMD64 x86, AMD64 Windows, Linux DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual appliances Proprietary (Free)
Xen University of Cambridge, Intel, AMD x86, AMD64, (PowerPC and IA-64 ports in progress) (Same as host) NetBSD, Linux, Solaris Linux, Solaris, Windows XP & 2003 Server (needs vers. 3.0 and a Vanderpool or Pacifica-capable CPU), Plan 9 GPL
z/VM IBM z/Architecture z/Architecture (z/VM does not run on predecessor mainframes) None or itself, single or multiple levels/versions deep, e.g. VM/ESA running inside z/VM 4.4 inside z/VM 5.2 inside z/VM 5.1. Linux on zSeries, z/OS, z/VSE, z/TPF, z/VM, VM/CMS, MUSIC/SP, OpenSolaris for System z, and predecessors Proprietary, one-time charge plus maintenance/support
z LPARs IBM z/Architecture z/Architecture Intrinsic feature of System z mainframes Linux on zSeries, z/OS, z/VSE, z/TPF, z/VM, VM/CMS, MUSIC/SP, and predecessors Intrinsic feature of System z mainframes
Name Creator Host CPU Guest CPU Host OS(s) Guest OS(s) License

[edit] More Details

Name Guest OS SMP available? Runs arbitrary OS? Drivers for supported guest OS available? Method of operation Typical use Guest OS speed relative to Host OS Commercial support available?
Bochs Yes Yes ? Emulation Hobbyist, Developer Very slow ?
Containers Yes, over 100-way No N/A Operating system-level virtualization Business, Development, Enterprise Server Consolidation, Hosting, Service separation, Security, Isolation Native speed Yes
Cooperative Linux ? No some are supported Porting used as a separate machine for a server or with X11 networking Native[6] ?
Denali No No ? Paravirtualization and Porting Research Slow ?
DOSBox No No Yes Emulation using Dynamic Translation or interpretation. execution of DOS applications, especially games Slow (10% native), much slower on non-x86 systems. ?
DOSEMU No Yes Yes Hardware virtualization Legacy application support Native[7] ?
FreeVPS Yes No n/a Operating system-level virtualization Hosting, Service separation, Security Native[8] ?
GXemul No No N/A Emulation Hobbyist, Developer Slow ?
Integrity Virtual Machines Yes (4-way) Yes Unnecessary Virtualization Server consolidation and Security Near native (no guest additions necessary) Yes
Jail Yes No N/A Operating system-level virtualization Hosting, Service separation, Security Native[9] ?
JPC (Virtual Machine) ? ? ? ? Research  % of processor's native speed ?
Linux KVM Yes Yes N/A In-kernel Virtualization  ? Near native ?
LinuxOnLinux Yes No Under development Paravirtualization by Afterburning plus Type II hypervisor researching virtual machines within 10% of native No
Linux- VServer Yes No N/A Operating system-level virtualization Hosting, Service separation, Security Native[10] ?
Logical Domains Yes No ? Paravirtualization Server consolidation, Hosting, Service separation, and Security Near native ?
Mac-on-Linux ? ? ? Virtualization Native[11] ?
Mac-on-Mac ? ? ? Virtualization Native[12] ?
OKL4 ? No Yes Paravirtualization embedded systems Native[13] ?
OpenVZ Yes No Compatible Operating system-level virtualization Virtualized Server Isolation Native[14] ?
Oracle VM ? ? ? ? ? ? Yes
Padded Cell for x86 No Yes Yes Virtualization, Lightweight Hypervisor Developer, Business workstation, Security Near native ?
Padded Cell for PowerPC No No Yes Paravirtualization, Lightweight Hypervisor Developer, Business workstation, Security Near native ?
Parallels Desktop for Mac No Yes Yes Virtualization, Lightweight Hypervisor Hobbyist, Developer, Tester, Business workstation Near native Yes
Parallels Workstation No Yes Yes Virtualization, Lightweight Hypervisor Hobbyist, Developer, Tester, Business workstation Near native Yes
PearPC No Yes Yes Emulation using Dynamic Translation Hobbyist, Developer, Business workstation 10% host CPU speed ?
PowerVM Yes Yes
max 10 / CPU
Yes native or
(micro lpars) hypercalls to
firmware-
hypervisor
any use, up to 64-way native,
POWER5 and later
have no raw-iron mode
Yes
QEMU Yes Yes ? Dynamic Recompilation Hobbyist, Developer, Business workstation, Server 10 to 20% host CPU speed ?
QEMU w/ kqemu module No Yes ? Virtualization Hobbyist, Developer, Business workstation, Server Near native [15] ?
QEMU w/ qvm86 module No Yes ? Virtualization Hobbyist, Developer, Business workstation, Server Near native ?
QuickTransit Yes Yes No Dynamic binary translation Various Varies depending on host/guest processor combination Yes
RTS Hypervisor Yes Yes Yes native, binary - direct HW access Embedded real-time systems; Medical, Industrial, Mil-Aero Native[16] Yes
SimNow Yes Yes Yes Code caching, Virtualization Developer, Server about 10x slower ?
Simics Yes Yes Yes, but most of time unmodified is the point Full-system simulation Early software development, embedded software development, advanced debug, computer architecture research depends on target nature Yes
Sun xVM Yes Yes Yes Paravirtualization and Porting or Hardware Virtualization Enterprise servers Up to near native[17] speed substantial performance loss on some workload (network and disk intensive especially) Yes
SVISTA 2004 No ? ? ? Hobbyist, Developer, Business workstation ? ?
TRANGO Yes Yes[18] Yes Paravirtualization and Porting or Hardware Virtualization Mob. phone, STB, routers, etc. Native[19] ?
User Mode Linux ??? No special guest kernel+modules required Porting used as a separate machine for a server or with X11 networking near Native speed (Runs slow as all calls are proxied) ?
View-OS Yes No N/A Partial Virtualization through syscall trapping security, isolation, testing, mobility Near native (better with ptrace kernel patch[20]) ?
VDSmanager Yes No N/A Operating system-level virtualization Hosting, Service separation, Security, Isolation Native speed Yes
VirtualBox No Yes Yes Virtualization Business workstation, Enterprise Server Consolidation, Business Continuity, Hobbyist, Developer Near native Yes (with commercial license)
Virtual Iron Virtual Iron 3.1 Yes

(up to 8 way)

Yes Yes Native Virtualization Enterprise Server Consolidation, Business Continuity, Dev/Test Near Native Yes
Virtual PC 2007 No Yes Yes Virtualization (guest calls trapping where supported) Hobbyist, Developer, Business workstation Near native with Virtual Machine additions ?
Virtual PC 7 for Mac No Yes Yes Dynamic Recompilation (guest calls trapping where supported) Hobbyist, Developer, Business workstation Slow ?
VirtualLogix VLX Yes Yes Yes Paravirtualization and Porting or Hardware Virtualization Embedded real-time systems: Mobile phone, STB, Softswitch, etc Near Native[21] Yes
Virtual Server 2005 R2 No Yes Yes Virtualization (guest calls trapping where supported) Server, Server Farm Near native with Virtual Machine additions ?
Virtuozzo Yes No Compatible Operating system-level virtualization Server Consolidation, Business Continuity, Disaster Recover, Service Providers Native speed Yes
VMware ESX Server 3.0 Yes

(Add-on) (up to 4 way)

Yes Yes Virtualization Enterprise Server Consolidation, Business Continuity, Dev/Test Up to near native Yes
VMware ESX Server 2.5.3 Yes

(Add-on) (2 way)

Yes Yes Virtualization Enterprise Server Consolidation, Business Continuity, Dev/Test Up to near native Yes
VMware Fusion Yes Yes Yes Virtualization Hobbyist, Developer, Tester, Business workstation Near native Yes
VMware Server Yes (2-way) Yes Yes Virtualization Server/Desktop Consolidation, Dev/Test Up to near native, substantial performance loss on some workload (network and disk intensive especially)[citation needed] Yes
VMware Workstation 6.0 Yes (2-way) Yes Yes Paravirtualization (VMI) and Virtualization Technical Professional, Advanced Dev/Test, Trainer Up to near native Yes
VMware Player 2.0 No Yes Yes Virtualization Technical Professional, Advanced Dev/Test, Trainer, End User (Prebuild Machines) Up to near native, substantial performance loss on some workload (network and disk intensive especially)[citation needed] Yes
Xen Yes Yes Not required with the exception of the networking drivers where a NAT is required. A modified guest kernel or special hardware level abstraction is required for guest OSs. Paravirtualization and Porting or Hardware Virtualization ? Up to near native[22] speed substantial performance loss on some workload (network and disk intensive especially) Yes
z/VM Yes, both real and virtual (guest perceives more CPUs than installed), incl. dynamic CPU provisioning and reassignment Yes Yes, but not required Virtualization (among first systems to provide hardware assists) Enterprise servers Near Native[23] Yes
z LPARs Yes, both real and virtual (guest perceives more CPUs than installed), incl. dynamic CPU provisioning and reassignment; up to 64 real cores Yes Yes, but not required Microcode and hardware hypervisor Enterprise servers Native: System z machines always run with at least one LPAR Yes
Name Guest OS SMP available? Runs arbitrary OS? Supported guest OS drivers? Method of operation Typical use Speed relative to Host OS Commercial support available?


  • ^  Providing any virtual environment usually requires some overhead of some type or another. Native usually means that the virtualization technique does not do any CPU level virtualization (like Bochs), which executes code more slowly than when it is directly executed by a CPU. Some other products such as VMWare and Virtual PC use similar approaches to Bochs and QEMU, however they use a number of advanced techniques to shortcut most of the calls directly to the CPU (similar to the process that JIT compiler uses) to bring the speed to near native in most cases. However, some products such as coLinux, Xen, z/VM (in real mode) do not suffer the cost of cpu level slow downs as the cpu level instructions are not proxied or executing against an emulated architecture since the guest OS or hardware is providing the environment for the applications to run under. However access to many of the other resources on the system, such as devices and memory may be proxied or emulated in order to broker those shared services out to all the guests, which may cause some slow downs as compared to running outside of virtualization.
  • ^  OS-level virtualization is described as "native" speed, however some groups have found overhead as high as 3% for some operations, but generally figures come under 1%, so long as secondary effects do not appear.
  • ^  See [24] for a paper comparing performance of paravirtualization approaches (eg Xen) with OS-level virtualization
  • ^  Requires patches/recompiling.
  • ^ Exceptional for lightweight, paravirtualized, single-user VM/CMS interactive shell: largest customers run several thousand users on even single prior models. For multiprogramming OSes like Linux on zSeries and z/OS that make heavy use of native supervisor state intructions, performance will vary depending on nature of workload but is near native. Hundreds into the low thousands of Linux guests are possible on a single machine for certain workloads.

[edit] Features

The table below compares features of virtual machine packages.

Name Can boot an OS on another disk partition as guest USB GUI Live memory allocation 3D acceleration Live migration
Bochs partially partially Yes No
Cooperative Linux Yes

(supported through X11 over networking)

No No
Denali
DOSBox No Yes No No
DOSEMU No No No
FreeVPS
GXemul No No
Integrity Virtual Machines Yes No Yes (Integrity Virtual Machine Manager (add-on) Yes No Yes (HP-UX guests only, Linux and Windows 2K3 in near future)
Jail
KVM Yes Yes Yes [1] Supported with VMGL [2] Yes
Linux- VServer
Mac-on-Linux Yes Yes No No
Mac-on-Mac No No
OpenVZ Yes Yes Yes

(using Xvnc and/or XDMCP)

Yes No Yes
Oracle VM Yes
Padded Cell for x86 (Green Hills Software) Yes Yes Yes
Padded Cell for PowerPC (Green Hills Software) Yes Yes Yes No
Parallels Desktop for Mac Yes, if Boot Camp is installed Yes Yes No Support for DirectX 8
Parallels Workstation No Yes Yes No partially
PearPC
POWER Hypervisor (PHYP) Yes Yes No Yes No Yes (on POWER 6-based systems, requires PowerVM Enterprise Licensing)
QEMU Yes Yes Yes [1] Some code done [3]; Also supported with VMGL [2] Yes
QEMU w/ kqemu module Yes Yes Yes Some code done [3]; Also supported with VMGL [2] Yes
QEMU w/ qvm86 module Yes Yes Yes Supported with VMGL [2] Yes
QuickTransit
SimNow No No
SVISTA 2004
TRANGO
View-OS
User Mode Linux Yes No No No No
VirtualBox Partial (since version 1.4, but unsupported) [25] Yes Yes Yes some code done [4] No in Open Source Edition
Virtual Iron Virtual Iron 4.2 Yes
Virtual PC 2004 No
VirtualPC 7 for Mac Yes Yes Yes Yes No No
VirtualLogix VLX
Virtual Server 2005 R2 No
Virtuozzo Yes Yes Yes Yes No Yes
VMware ESX Server 3.0 Yes No Yes
VMware ESX Server 2.5.3 Yes No
VMware Fusion 1.1 Yes Yes Yes No Support for DirectX 9 (Shader model 2 support in 2.0 beta, but none in 1.1[5])
VMware Server Yes Yes Yes Yes No
VMware Workstation 5.5 Yes Yes Yes Yes Experimental support for DirectX 8; Also supported with VMGL [2]
VMware Workstation 6.0 Yes Yes Yes Yes Experimental support for DirectX 8; Also supported with VMGL [2]
VMware Player No Yes Yes Yes Supported with VMGL [2]
Xen Yes Enomalism Yes Supported with VMGL [2] Yes
z/VM Yes not applicable with add-ons Yes No with GDPS
z LPARs Yes not applicable Yes Yes No with GDPS
Zones Yes Yes Yes Yes No
Name Can boot an OS on another disk partition as guest USB GUI Live memory allocation 3D acceleration Live migration
  • ^  VirtualBox User Manual, Chapter 9.9; requires usage of VBoxManage internalcommands createrawvmdk which says:This is a development tool and shall only be used to analyse problems. It is completely unsupported and will change in incompatible ways without warning.

[edit] Other emulators

Other (free, maintained) emulators not mentioned above:

SkyEye 1.2.1

SkyEye is an Open Source Simulator, which simulates series ARM architecture based microprocessors and Blackfin DSP Processor. Users can run Operating Systems such as Linux, uCLinux, uC/OS-II for ARM and can analyze or debug in source level.
http://sourceforge.net/project/showfiles.php?group_id=85554

PearColator

PearColator is a development Open Source binary translator that can take x86, PowerPC and ARM machine codes and compile them using a high performance JVM's JIT compiler to run on PowerPC and Intel architectures. It is unusual in that it is being written in Java using the same compiler to optimize itself as the emulated architectures.

[edit] See also

[edit] References

[edit] External links

Languages