Comparison of platform virtual machines
From Wikipedia, the free encyclopedia
The table below compares basic information about platform virtual machine (VM) packages.
Contents |
[edit] General Information
This section may require cleanup to meet Wikipedia's quality standards. |
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 other developers (1) | x86[1] | (Same as parent) | Windows 2000, XP, 2003, Vista[1] | 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. Classic PC booter games and unofficially, Windows 1.0 to 3.11 | GPL |
DOSEMU | Community Project | x86, AMD64 | x86 | Linux | DOS | GPL version 2 |
FreeVPS | PSoft | x86, AMD64 | compatible | Linux | Various Linux distributions | GPL version 2 |
GXemul | Anders Gavare | any | ARM, MIPS, M88K, 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 |
Hyper-V | Microsoft | x64 + hardware-assisted virtualization (Intel VT or AMD-V) | x64,x86 | Windows 2008 w/Hyper-V Role, Windows Hyper-V Server | Supported Drivers for Windows 2000, Windows 2003, Windows 2008, Windows XP, Windows Vista, Linux (SUSE 10 Released, More Announced)) | Proprietary (free of charge with Windows Server 2008) |
Imperas OVP Tools | Imperas [1] | x86 | OR1K, MIPS32, ARC600/ARC700, ARM (can use all OVP OVPsim [2] compliant models, user can write own to public OVP APIs) | Microsoft Windows, Linux | Depends on target machine, for example includes MIPS Malta that runs Linux or SMP-Linux (can use all OVP OVPsim [3] compliant models, user can write own to public OVP APIs) | Tools are under proprietary license, models under Apache 2.0 |
iCore Virtual Accounts | iCore Software | x86 | x86 | Windows XP | Windows XP | Proprietary |
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 |
KVM | Qumranet [4] | Intel/AMD processor with X86 virtualization,IA64,s390,PowerPC | same as platform | Linux | Linux, Windows, FreeBSD, Solaris | GPL version 2 |
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 10 | Solaris, Linux, and FreeBSD | ? |
LynxSecure | LynuxWorks | x86, Intel VT-x, Intel VT-d | x86 | no host OS | LynxOS, Linux, and Windows | Proprietary |
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 | none (bare metal install) | Microsoft Windows, Oracle Enterprise Linux, Red Hat Enterprise Linux | Free, Commercial |
OVPsim | OVP [5] | x86 | OR1K, MIPS32, ARC600/ARC700, ARM (and public API which enables users to write their own processor models, RISC, CISC, DSP, VLIW all possible) | Microsoft Windows, Linux | Depends on target machine, for example includes MIPS Malta that runs Linux or SMP-Linux (and includes public API which enables users to write their own peripheral and system models) | Apache 2.0 |
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 |
Palacios VMM | The V3Vee Project | AMD-V | x86 | OS independent (currently GeekOS, Kitten) | Linux | BSD |
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, FreeBSD, NetBSD | Mac OS X, Darwin, Linux | GPL |
PowerVM | IBM | POWER4, POWER5, POWER6, PowerPC 970 | POWER4, POWER5, POWER6, PowerPC 970, X86 (PowerVM-Lx86) | hardware / firmware, no host OS | Linux-PPC, Linux-X86, AIX, i5/OS, IBM i | Proprietary |
Proxmox Virtual Environment | ProxMox | x86-64 | x86, x86-64 | Debian Etch w/ProxMox Role | Same as KVM; Same as OpenVZ | GPL v2 |
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 [6] | GPL/LGPL |
QEMU w/ kqemu module | Fabrice Bellard | Intel x86, AMD64 | Same as host | Linux, FreeBSD, OpenBSD, Solaris, Windows | Changes regularly [7] | 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 | Windows XP, XP-Embedded, Linux, VxWorks, Windows CE, ETS, OS-9 and proprietary OS | Proprietary |
SimNow | AMD | AMD64 | AMD64 | Linux (64bit), Windows (64bit) | Linux, Windows (32bit and 64bit) | AMD proprietary |
SIMH | Bob Supnik / The Computer History Simulation Project | Alpha, ARM, HPPA, x86, ia64, x86-64, M68K, MIPS, MIPSel, POWER, s390, SPARC | Data General Nova, Eclipse; Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10, PDP-11, PDP-15, VAX; GRI Corporation GRI-909, IBM 1401, 1620, 1130, 7090/7094, System 3; Interdata (Perkin-Elmer) 16b and 32b systems; Hewlett-Packard 2114, 2115, 2116, 2100, 21MX; Honeywell H316/H516; MITS Altair 8800, with both 8080 and Z80; Royal-Mcbee LGP-30, LGP-21; Scientific Data Systems SDS 940 | Windows, BSD, Linux, Solaris, VMS | Depends on target machine, Includes NetBSD/VAX, OpenBSD/VAX, VAX/VMS, UNIX v6, UNIX v7, TOPS-10, TOPS-20, ITS | Unique, BSD-like license |
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 Server | 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 | GPL version 3 |
SVISTA 2004 | Serenity Systems International | x86 | x86 | Windows, OS/2, Linux | Windows, Linux, OS/2, BSD | 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 [8] | 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 |
Sun xVM VirtualBox | Sun Microsystems | x86, x86-64 | x86, (x86-64 only on VirtualBox 2 with hardware virtualization) | Windows, Linux, Mac OS X (Intel), Solaris, eComStation | DOS, Windows, Linux, OS/2, FreeBSD, Solaris | GPL version 2; full version with extra enterprise features is proprietary (free of charge 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, Linux | Complete product carries a proprietary license [9]; a few components are GPL version 2 [10] |
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 of charge 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 Intel 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) |
CoWare Virtual Platform | CoWare | x86, x86-64, SPARC v9 | Devices including (multi) cores from ARM, MIPS, PPC, Toshiba MeP, Renesas SH, TI, Tensilica, ZSP | Windows, Linux, Solaris | Depend on the Guest CPU; includes: Linux (various flavors), mITRON (various flavors), WinCE, Symbian, ... | Proprietary |
Virtuozzo | SWsoft, now Parallels, Inc. | x86, IA-64, AMD64 | x86, IA-64, AMD64 | Linux, Windows | Linux, Windows | Proprietary |
VMware ESX Server | VMware | x86, x86-64 | x86, x86-64 | none (bare metal install) | Windows, Linux, Netware, Solaris, FreeBSD, ... | Proprietary |
VMware ESXi Server | VMware | x86, x86-64 | x86, x86-64 | none (bare metal install) (embedded) | Windows, Linux, Netware, Solaris, FreeBSD, ... | Proprietary (Free) |
VMware Fusion | VMware | x86, x86-64 | x86, x86-64 | Mac OS X (Intel) | Windows, Linux, Netware, Solaris, others | Proprietary |
VMware Server | VMware | x86, x86-64 | x86, x86-64 | Windows, Linux | DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual appliances | Proprietary (Free) |
VMware Workstation 6.0 | VMware | x86, x86-64 | x86, x86-64 | Windows, Linux | DOS, Windows, Linux, FreeBSD, Netware, Solaris, Darwin, Virtual appliances | Proprietary |
VMware Player 2.0 | VMware | x86, x86-64 | x86, x86-64 | Windows, Linux | DOS, Windows, Linux, FreeBSD, Netware, Solaris, Darwin, Virtual appliances | Proprietary (Free) |
Wind River hypervisor | Wind River | x86, PPC | (Same as host) | bare metal | Linux, VxWorks, bare metal virtual board | Proprietary |
Wind River VxWorks MILS Platform | Wind River | PPC | (Same as host) | bare metal | VxWorks, bare metal virtual board | Proprietary |
Xen | Citrix Systems | x86, AMD64, (PowerPC and IA-64 ports in progress) | (Same as host) | NetBSD, Linux, Solaris | FreeBSD, NetBSD, Linux, Solaris, Windows XP & 2003 Server (needs vers. 3.0 and an Intel VT (Vanderpool) or AMD-V (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? | Needs administrative rights? |
---|---|---|---|---|---|---|---|---|
Bochs | Yes, up to 8-way | Yes | ? | Emulation | Hobbyist, Developer | Slow | ? | (network support needs packet capture/TUN which requires admin rights to be installed) |
Containers | Yes, over 100-way | No | N/A | Operating system-level virtualization | Business, Development, Enterprise Server Consolidation, Hosting, Service separation, Security, Isolation | Native | Yes | |
Cooperative Linux | No[1] | No | some are supported | Porting | used as a separate machine for a server or with X11 networking | Native | ? | Always. User-mode console can be attached to running instances, though.[1] |
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 | ? | |
FreeVPS | Yes | No | n/a | Operating system-level virtualization | Hosting, Service separation, Security | Native | ? | |
GXemul | No | No | N/A | Emulation | Hobbyist, Developer | Slow | ? | |
Hyper-V | Yes | Yes | Yes | Hypervisor | All | Native. Drivers IO is non-emulated for better IO performance. However, substantial performance loss on some workload (network and disk intensive especially) is associated with all virtualization solutions. | Yes | |
iCore Virtual Accounts | Yes | No | Compatible | Operating system-level virtualization | Safe Home Computing | Native | Yes | |
Imperas OVP Tools | Yes | Yes | Yes , but most of the time unmodified is the point | Full-System Simulation with optional component virtualization | Early Software Development, embedded software development, advanced debug for single and multicore software, computer architecture research | Depends on target, upto 500% faster than embedded target. Runs over 1,000 MIPS on desktop. | Yes | |
Integrity Virtual Machines | Yes (8-way supported, 16-way experimental) | 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 | ? | |
JPC (Virtual Machine) | No | Yes | N/A | Emulation and Dynamic Translation | Research | Slow (at most 20% of native) | No | |
KVM | Yes | Yes | Yes (virtio) | In-kernel Virtualization | Server, home use only for experienced users | Near native | Yes | No (if /dev/kvm is accessible by non-root user) |
LinuxOnLinux | Yes | No | Under development | Paravirtualization by Afterburning plus Type II hypervisor | researching virtual machines | Near native (within 10%) | No | |
Linux- VServer | Yes | No | N/A | Operating system-level virtualization | Hosting, Service separation, Security | Native | ? | |
Logical Domains | Yes | No | Yes (for supported OS such as Solaris 10) | Paravirtualization | Server consolidation, Hosting, Service separation, and Security | Near native | Yes | |
LynxSecure | Yes | Yes | Yes | Paravirtualization and Operating system-level virtualization | Embedded and enterprise-level workstation and servers, high-assurance security, secure domain separation (MLS, MILS, MSL), and cross-domain solutions | Native or near native performance | Yes | |
Mac-on-Linux | ? | ? | ? | Virtualization | Native | ? | ||
Mac-on-Mac | ? | ? | ? | Virtualization | Native | ? | ||
OKL4 | ? | No | Yes | Paravirtualization | embedded systems | Native | ? | |
OpenVZ | Yes | No | Compatible | Operating system-level virtualization | Virtualized Server Isolation | Native | ? | Needs |
Oracle VM | Yes | Yes | Yes | Paravirtualization and hardware virtualization | Server consolidation and security, enterprise and business deployment | Near native | Yes | |
OVPsim | Yes | Yes | Yes , but most of the time unmodified is the point | Full-System Simulation with optional component virtualization | Early Software Development, embedded software development, advanced debug for single and multicore software, compiler and other tool development, computer architecture research, hobbyist. | Depends on target, upto 500% faster than embedded target. Runs over 1,000 MIPS on desktop. | Yes, with commercial license from Imperas [20] | |
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 | Yes | 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 | Slow (1/15 native; 1/500 on G4) | ? | |
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 | Slow when emulating a different architecture (i.e. powerpc on x86 or vice versa) (10% to 20% of native). Reasonably fast otherwise. | ? | if TAP access is desired, other networking modes require no admin |
QEMU w/ kqemu module | No | Yes | ? | Virtualization | Hobbyist, Developer, Business workstation, Server | Near native [21] | ? | Needs |
QEMU w/ qvm86 module | No | Yes | ? | Virtualization | Hobbyist, Developer, Business workstation, Server | Near native | ? | Needs |
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 | Yes | |
SimNow | Yes | Yes | Yes | Code caching, Virtualization | Developer, Server | Slow (10% of native) | ? | |
SIMH | No | Yes | No | Emulation | Hobbyist, Legacy application support, Historical preservation | Slower than native | ? | |
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 Server | Yes | Yes | Yes | Paravirtualization and Porting or Hardware Virtualization | Enterprise servers | Up to near native | speed substantial performance loss on some workload (network and disk intensive especially)Yes | |
SVISTA 2004 | No | ? | ? | ? | Hobbyist, Developer, Business workstation | ? | ? | |
TRANGO | Yes | Yes | Yes | Paravirtualization and Porting or Hardware Virtualization | Mob. phone, STB, routers, etc. | Native | ? | |
User Mode Linux | ??? | No | special guest kernel+modules required | Porting | used as a separate machine for a server or with X11 networking | near Native | (Runs slow as all calls are proxied)? | for networking |
View-OS | Yes | No | N/A | Partial Virtualization through syscall trapping | security, isolation, testing, mobility | Near native (better with ptrace kernel patch | )? | |
VDSmanager | Yes | No | N/A | Operating system-level virtualization | Hosting, Service separation, Security, Isolation | Native | Yes | |
Sun xVM VirtualBox | No | Yes | Yes | Virtualization | Business workstation, Enterprise Server Consolidation, Business Continuity, Hobbyist, Developer | Near native | Yes (with commercial license) | Needs (See Support forums) |
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 | Yes | |
Virtual Server 2005 R2 | No | Yes | Yes | Virtualization (guest calls trapping where supported) | Server, Server Farm | Near native with Virtual Machine additions | ? | |
CoWare Virtual Platform | Yes | Yes | Yes ( Same compiled Software image as for the real device) | Full-system virtualization (Processor Core ISA + Hardware + External connections) | Early embedded software development & integration (from Driver to Application), Multi-core software debugging & optimization | Depending on the system characteristics and the software itself, ranges from Faster than real time to slow. | Yes | No in general case. |
Virtuozzo | Yes | No | Compatible | Operating system-level virtualization | Server Consolidation, Business Continuity, Disaster Recover, Service Providers | Native | 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 | Needs |
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 | Needs |
VMware Fusion | Yes | Yes | Yes | Virtualization | Hobbyist, Developer, Tester, Business workstation | Near native | Yes | Needs |
VMware Server | Yes (2-way) | Yes | Yes | Virtualization | Server/Desktop Consolidation, Dev/Test | Up to near native | Yes | Needs |
VMware Workstation 6.0 | Yes (2-way) | Yes | Yes | Paravirtualization (VMI) and Virtualization | Technical Professional, Advanced Dev/Test, Trainer | Up to near native | Yes | Needs |
VMware Player 2.0 | Yes (2-way) | Yes | Yes | Virtualization | Technical Professional, Advanced Dev/Test, Trainer, End User (Prebuild Machines) | Up to near native | Yes | Needs |
Wind River hypervisor | No | Yes | Yes | Paravirtualization, hardware assisted virtualization | Embedded, safety critical, secure | Native | Yes | Not applicable |
Wind River VxWorks MILS Platform | No | Yes | Yes | Paravirtualization, hardware assisted virtualization | Embedded, safety-critical, secure | Native | Yes | Not applicable |
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 | 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 | 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? | Needs administrative rights? |
- ^ 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 [30] 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 | Snapshot of running system | Live migration |
---|---|---|---|---|---|---|---|
Bochs | partially | partially | Yes | No | |||
Containers | |||||||
Cooperative Linux | Yes[1] | Yes (supported through X11 over networking) | No | No | |||
Denali | |||||||
DOSBox | Partial (the host OS can provide DOSBox services with USB devices) | Yes | No | No | |||
DOSEMU | No | No | No | ||||
FreeVPS | |||||||
GXemul | No | No | |||||
Hercules | |||||||
Hyper-V | |||||||
iCore Virtual Accounts | Yes | Yes | No | Yes | No | ||
Imperas OVP Tools | Yes | Yes | Yes (Eclipse) | Yes | |||
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 [2] | Yes | Yes [3] | Yes [4] | Supported with VMGL [5] | Yes | |
Linux- VServer | |||||||
LynxSecure | |||||||
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 | Yes | Yes (managed by Oracle VM Manager) | Yes | Yes | ||
OVPsim | Yes | Yes | Yes (Eclipse) | 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 | Yes | DirectX 9 and OpenGL 2.0 | ||
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 [3] | Some code done [6]; Also supported with VMGL [5] | Yes | ||
QEMU w/ kqemu module | Yes | Yes | Yes | Some code done [6]; Also supported with VMGL [5] | Yes | ||
QEMU w/ qvm86 module | Yes | Yes | Yes | Supported with VMGL [5] | Yes | ||
QuickTransit | Yes | Yes | No | Yes | Yes | Yes | |
SimNow | No | No | |||||
RTS Hypervisor | Yes | Yes | Yes | No | Yes | No | |
SVISTA 2004 | |||||||
TRANGO | |||||||
View-OS | |||||||
User Mode Linux | Yes | No | No | No | No | ||
Sun xVM VirtualBox | Partial (since version 1.4, but unsupported) | Partial (for any host OS except Solaris)[7] | Yes | Yes | experimental support for OpenGL [8] | No in Open Source Edition | No in Open Source Edition |
Virtual Iron Virtual Iron 4.2 | Yes | ||||||
Virtual PC 2007 | No | No | Yes | No | 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 atp | Yes | No | Yes | Yes | |||
VMware ESX Server 2.5.3 | Yes | No | |||||
VMware Fusion 2.0 | Yes | Yes | Yes | No | DirectX 9 Shader model 2 | ||
VMware Server | Yes | Yes | Yes | Yes | No | Yes | |
VMware Workstation 5.5 | Yes | Yes | Yes | Yes | Experimental support for DirectX 8; Also supported with VMGL [5] | ||
VMware Workstation 6.0 | Yes | Yes | Yes | Yes | Experimental support for DirectX 8; Also supported with VMGL [5] | ||
VMware Player | No | Yes | Yes | Yes | Supported with VMGL [5] | ||
Wind River hypervisor | Yes | Yes | Yes | Yes | Yes | No | |
Wind River VxWorks MILS Platform | Yes | ||||||
Xen | Yes | Yes | Supported with VMGL [5] | 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 | Snapshot of running system | 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.
- ARMware, a virtual machine that emulates an ARM based PDA.
[edit] See also
- List of computer system emulators
- Comparison of application virtual machines
- Hypervisor
- Platform virtualization
- Popek and Goldberg virtualization requirements
- Virtual machine
- x86 virtualization
[edit] References
- ^ a b c d e "Cooperative Linux FAQ". Retrieved on 2009-01-27.
- ^ "How to KVM". http://ubuntuforums.org/showthread.php?t=966739. Retrieved on 2009-03-05.
- ^ a b "Virtual Machine Manager". http://virt-manager.et.redhat.com/. Retrieved on 2007-10-04.
- ^ "Memory ballooning". http://article.gmane.org/gmane.comp.emulators.kvm.devel/29774. Retrieved on 2009-03-26.
- ^ a b c d e f g h "VMGL (formerly Xen-GL)". http://www.cs.toronto.edu/~andreslc/xen-gl.
- ^ a b "QEMU-Forum". http://qemu-forum.ipi.fi/viewtopic.php?t=2984. Retrieved on 2007-10-04.
- ^ USB support for OpenSolaris is actively being worked on right now. Retrieved on 2008-09-25
- ^ "VirtualBox Changelog". http://www.virtualbox.org/wiki/Changelog. Retrieved on 2008-12-19.