Comparison of platform virtualization software
Platform virtualization software, specifically emulators and hypervisors, are software packages that emulate the whole physical computer machine, often providing multiple virtual machines on one physical platform. The table below compares basic information about platform virtualization hypervisors.
General
Name | Creator | Host CPU | Guest CPU | Host OS | Guest OS | License |
bhyve | FreeBSD | x86-64 | x86, x86-64 | FreeBSD, Illumos | FreeBSD, FreeNAS, pfSense, OpenBSD, Linux, Windows, Illumos | |
Bochs | Kevin J. Lawton | Any | x86, x86-64 | Windows, Linux, FreeBSD, Unix/X11,, macOS, BeOS, MorphOS, OS/2 | Windows, Linux, DOS, BSD, OS/2, Haiku | |
Containers, or Zones | Sun Microsystems | x86, x86-64, SPARC | Same as host | Solaris 10, Solaris 11, OpenSolaris 2009.06, illumos distributions | Solaris, illumos, Linux | |
Cooperative Linux | Dan Aloni, other developers | x86 | Same as host | Windows 2000, XP, 2003, Vista | Linux | |
CHARON | Stromasys | x86, x86-64 | PDP-11, VAX, Alpha, HP3000, Sparc | Windows, Linux | VMS, OpenVMS, Tru64 UNIX, MPE/iX, RSX-11, RT11, RSTS, Solaris, SunOS | |
Denali | University of Washington | x86 | x86 | Denali | Ilwaco, NetBSD | |
DOSBox | Peter Veenstra, Sjoerd with community | Any | x86 | Linux, Windows, classic Mac OS, macOS, BeOS, FreeBSD, NetBSD, OpenBSD, Solaris, QNX, IRIX, MorphOS, AmigaOS, Maemo, Symbian | Internally emulated DOS shell; classic PC booter games, unofficially Windows 1.0 to 98 | |
DOSEMU | Community project | x86, x86-64 | x86 | Linux | DOS | |
FreeBSD Jail | Poul-Henning Kamp / FreeBSD | Any running FreeBSD or DragonFly BSD | Same as host | FreeBSD, DragonFly BSD | same as host, plus Linux ABI through compat layer | |
GNOME Boxes | GNOME | Unix-like | Unix-like | |||
GXemul | Anders Gavare | Any | ARM, MIPS, Motorola 88000, PowerPC, SuperH | Unix-like | NetBSD, OpenBSD, Linux, Ultrix, Sprite | |
Hercules | Roger Bowler | Any | z/Architecture | Windows, FreeBSD, NetBSD, Linux, macOS | Linux on IBM Z, z/OS, z/VM, z/VSE, OS/360, DOS/360, DOS/VS, MVS, VM/370, TSS/370 | |
Hyper-V | Microsoft | x86-64 with Intel VT-x or AMD-V | x86-64, x86 | Windows Server 2008 w/Hyper-V role, Microsoft Hyper-V Server | Supported drivers for Windows 2000, Windows 2003, Windows 2008, Windows XP, Windows Vista, FreeBSD, Linux | |
Hyper-V | Microsoft | x86-64 with Intel VT-x or AMD-V, ARMv8 | x86-64,, ARMv8 | Windows 8, 8.1, 10, and Windows Server 2012 w/Hyper-V role, Microsoft Hyper-V Server | Supported drivers for Windows NT, FreeBSD, Linux | . Component of various Windows editions. |
iCore Virtual Accounts | iCore Software | x86 | x86 | Windows XP | Windows XP | |
INTEGRITY | Green Hills Software | ARM, x86, PowerPC | Same as host | Linux, Windows | INTEGRITY native, Linux, Android, AUTOSAR, Windows | |
Integrity Virtual Machines | Hewlett-Packard | IA-64 | IA-64 | HP-UX | HP-UX, Windows, Linux | |
JPC | Oxford University | Any running the Java Virtual Machine | x86 | Java Virtual Machine | DOS, Linux, Windows up to 3.0 | |
KVM | Qumranet, now Red Hat | x86, x86-64, IA-64, with x86 virtualization, s390, PowerPC, ARM | Same as host | Linux, FreeBSD, illumos | FreeBSD, Linux, Solaris, Windows, Plan 9 | |
Linux-VServer | Community project | x86, x86-64, IA-64, Alpha, PowerPC 64, PA-RISC 64, SPARC64, ARM, S/390, SH/66, MIPS | Compatible | Linux | Linux variants | |
LynxSecure | LynuxWorks | x86 | x86 | No host OS | LynxOS, Linux, Windows | |
LXC | Community project, Canonical Ltd. | x86, x86-64, IA-64, PowerPC 64, SPARC64, Itanium, ARM | Same as host | Linux | Linux variants | |
OKL4 Microvisor | Open Kernel Labs, acquired by General Dynamics Corporation | ARM, x86, MIPS | ARM, ARMv7VE | No Host OS | Various OSes and RTOSes including Linux, Android, QNX | |
OpenVZ | Community project, supported by SWsoft, now Parallels, Inc. | x86, x86-64, IA-64, PowerPC 64, SPARC64 | Same as host | Linux | same as host, choice of userland distribution | |
Oracle VM Server for x86 | Oracle Corporation | x86, x86-64 | x86, x86-64 | No host OS | Microsoft Windows, Oracle Linux, Red Hat Enterprise Linux, Solaris | , Oracle VM Server; Manager is proprietary |
OVPsim | OVP | x86 | OR1K, MIPS32, ARC600/700, ARM; and public API which enables users to write custom 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 custom peripheral and system models | , Apache 2.0 for models |
Parallels Desktop for Mac | Parallels, Inc. | x86 | x86, x86-64 | macOS | DOS, Windows, Linux, macOS, FreeBSD, OS/2, eComStation, Solaris, Haiku | |
Parallels Workstation | Parallels, Inc. | x86 | x86 | Windows, Linux | Windows, Linux, FreeBSD, OS/2, eComStation, DOS, Solaris, Haiku | |
PearPC | Sebastian Biallas | x86, x86-64, PowerPC | PowerPC | Windows, Linux,, FreeBSD, NetBSD | , Darwin, Linux | |
PikeOS | SYSGO AG | PowerPC, x86, ARM, MIPS, SPARC, SuperH | Same as host | No host OS, Linux or Windows as dev. hosts | PikeOS native, Linux, POSIX, AUTOSAR, Android, RTEMS, OSEK, ARINC 653 APEX, ITRON | |
Proxmox VE | Proxmox | x86-64 | x86, x86-64 | Debian Based | Windows, Linux, Linux variants, Solaris, FreeBSD, OSx86, virtual appliances, Netware, OS/2, SCO, BeOS, Haiku, Darwin | |
Oracle VM Server for SPARC | Oracle Corporation | UltraSPARC T1, UltraSPARC T2, UltraSPARC T2+, SPARC T3, SPARC T4 | Compatible | Solaris 10, Solaris 11 | Oracle support: Solaris; unsupported: Linux, FreeBSD | |
PowerVM | IBM | POWER4, POWER5, POWER6, POWER7, POWER8 | POWER4/5/6/7/8, x86 | PowerVM Firmware | Linux PowerPC, x86; AIX, IBM i | |
QEMU | Fabrice Bellard, other developers | x86, x86-64, IA-64, PowerPC, SPARC 32/64, ARM, S/390, MIPS | x86, x86-64, Alpha, ARM, CRIS, LM32, M68k, MicroBlaze, MIPS, OpenRisc32, PowerPC, S/390, SH4, SPARC 32/64, Unicore32, Xtensa | Windows, Linux, macOS, Solaris, FreeBSD, OpenBSD, BeOS | Changes regularly | |
QEMU w/ kqemu module | Fabrice Bellard | x86, x86-64 | Same as host | Linux, FreeBSD, OpenBSD, Solaris, Windows | Changes regularly | |
QEMU w/ qvm86 module | Paul Brook | x86 | x86 | Linux, NetBSD, Windows | Changes regularly | |
QuickTransit | Transitive Corp. | x86, x86-64, IA-64, POWER | MIPS, PowerPC, SPARC, x86 | Linux,, Solaris | Linux,, Irix, Solaris | |
RTS Hypervisor | Real-Time Systems GmbH | x86, x86-64 | x86, x86-64 | No host OS | Windows, Linux, Windows Embedded, QNX, RTOS-32, VxWorks, OS-9, T-Kernel | |
ScaleMP vSMP Foundation | ScaleMP | x86, x86-64 | Same as host | No host OS | Linux | |
SIMH | Bob Supnik, The Computer History Simulation Project | Alpha, ARM, HPPA, x86, IA-64, 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 16b/32b systems; Hewlett-Packard 2114, 2115, 2116, 2100, 21MX; Honeywell H316/H516; MITS Altair 8800 with 8080 and Z80; Royal McBee LGP-30, LGP-21; Scientific Data Systems SDS 940 | BSD, Linux, Solaris, VMS, Windows | Depends on target machine, includes NetBSD/VAX, OpenBSD/VAX, VAX/VMS, Unix v6, Unix v7, TOPS-10, TOPS-20, ITS | |
Simics | Wind River | x86, x86-64 | 8051, 68000, ARM, MIPS32, MIPS64, Cavium cnMIPS, Broadcom XLR MIPS, Freescale, IBM, SPARC v8, SPARC v9, x86, x86-64, TI TMS320C64xx, Renesas H8, Renesas SH | Windows 32-bit and 64-bit, Linux 32-bit and 64-bit | Depends on target machine, typically runs unmodified software stacks from the corresponding real target, including VxWorks, VxWorks 653, OSE, QNX, Linux, Solaris, Windows, FreeBSD, RTEMS, TinyOS, Wind River Hypervisor, VMware ESX, and others | |
Sun xVM Server | Sun Microsystems | x86-64, SPARC | Same as host | No host OS | Windows XP, 2003 Server, Linux, Solaris | |
SVISTA 2004 | Serenity Systems International | x86 | x86 | Windows, OS/2, Linux | Windows, Linux, OS/2, BSD | |
TRANGO | ARM, XScale, MIPS, PowerPC | Paravirtualized ARM, MIPS, PowerPC | No host OS, Linux or Windows as dev. hosts | Linux, eCos, µC/OS-II, WindowsCE, Nucleus, VxWorks | ||
User Mode Linux | Jeff Dike, other developers | x86, x86-64, PowerPC | Same as host | Linux | Linux | |
VirtualBox | Innotek, acquired by Oracle Corporation | x86, x86-64 | x86, x86-64 | Windows, Linux, macOS, Solaris, FreeBSD, eComStation | DOS, Linux, macOS, FreeBSD, Haiku, OS/2, Solaris, Syllable, Windows, and OpenBSD. | GPL version 2; full version with extra enterprise features is proprietary: |
Virtual Iron 3.1 | Virtual Iron Software, Inc., acquired by Oracle | x86 VT-x, x86-64 AMD-V | x86, x86-64 | No host OS | Windows, Linux | , some components GPLv2 |
Virtual PC 2007 | Connectix and Microsoft | x86, x86-64 | x86 | Windows Vista, XP Pro, XP Tablet PC Edition | DOS, Windows, OS/2, Linux, OpenSolaris | |
Windows Virtual PC | Connectix and Microsoft | x86, x86-64 with Intel VT-x or AMD-V | x86 | Windows 7 | Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008 | |
Virtual PC 7 for Mac | Connectix and Microsoft | PowerPC | x86 | Windows, OS/2, Linux | ||
VirtualLogix VLX | VirtualLogix | ARM, TI DSP C6000, x86, PowerPC | Same as host | No host OS | Linux, Windows XP, C5, VxWorks, Nucleus, DSP/BIOS, proprietary | |
Virtual Server 2005 R2 | Connectix and Microsoft | x86, x86-64 | x86, x86-64 | Windows Server 2003, 2008, XP | Windows NT, 2000, 2003, 2008, Linux | |
Synopsys Virtual Platform | CoWare | x86, x86-64, SPARC v9 | Devices including cores from ARM, MIPS, PowerPC, Toshiba MeP, Renesas SH, Texas Instruments, Tensilica, ZSP | Windows, Linux, Solaris | Depends on guest CPU; includes: Linux, µITRON, Windows CE, Symbian, more | |
Virtuozzo | SWsoft, now | x86, IA-64, x86-64 | same as host | Linux | save as host | |
vkernel | Matthew Dillon / DragonFly BSD | x86-64 | same as host | DragonFly BSD | any compatible vkernel binary of DragonFly | |
VMM | OpenBSD | x86, x86-64 | same as host | OpenBSD | OpenBSD and Linux guests | |
VMware ESX Server | VMware | x86, x86-64 | x86, x86-64 | No host OS | Windows, Linux, Solaris, FreeBSD, OSx86, virtual appliances, Netware, OS/2, SCO, BeOS, Haiku, Darwin, others: runs arbitrary OS | |
VMware ESXi | VMware | x86, x86-64 | x86, x86-64 | No host OS | Same as VMware ESX Server | |
VMware Fusion | VMware | x86, x86-64 | x86, x86-64 | macOS | Same as VMware ESX Server | |
VMware Server | VMware | x86, x86-64 | x86, x86-64 | Windows, Linux | Same as VMware ESX Server | |
VMware Workstation | VMware | x86-64 | x86, x86-64 | Windows, Linux | Same as VMware ESX Server | |
VMware Player, later VMware Workstation Player | VMware | x86-64 | x86, x86-64 | Windows, Linux | Same as VMware ESX Server | , free for personal non-commercial use |
Wind River Hypervisor | Wind River | x86, x86-64, PowerPC, ARM | Same as host | No host OS | Linux, VxWorks, unmodified guests, bare metal virtual board | |
Xen | Xensource, Now Citrix Systems | x86, x86-64, ARM, IA-64, PowerPC | Same as host | GNU/Linux, Unix-like | GNU/Linux, FreeBSD, MiniOS, NetBSD, Solaris, Windows 7/XP/Vista/Server 2008 or AMD-V, Plan 9 | |
XCP-ng | By Vates SAS | x86, x86-64, ARM, IA-64, PowerPC | Same as host | No host OS | GNU/Linux, FreeBSD, MiniOS, NetBSD, Solaris, Windows, Windows Server 2008, Plan 9 | |
XenServer | By Citrix Systems | x86, x86-64, ARM, IA-64, PowerPC | Same as host | No host OS | GNU/Linux, FreeBSD, MiniOS, NetBSD, Solaris, Windows 7/XP/Vista/Server 2008, Plan 9 | |
XtratuM | fentISS | SPARC v8 LEON2/3/4, ARM v7 | Same as host | No host OS | GPOS: Linux, RTOS: LithOS, RTEMS | , GPL version 2 depending on versions |
z/VM | IBM | z/Architecture | z/Architecture, z/VM does not run on predecessor mainframes | No host OS, itself | Linux on IBM Z, z/OS, z/VSE, z/TPF, z/VM, VM/CMS, MUSIC/SP, OpenSolaris for System z, predecessors | |
z LPARs | IBM | z/Architecture | z/Architecture | Integrated in firmware of System z mainframes | Linux on IBM Z, z/OS, z/VSE, z/TPF, z/VM, MUSIC/SP, and predecessors | |
Name | Creator | Host CPU | Guest CPU | Host OS | Guest OS | License |
Features
- 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, 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 to bring the speed to near native in most cases. However, some products such as coLinux, Xen, z/VM do not suffer the cost of CPU-level slowdowns 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 for a paper comparing performance of paravirtualization approaches 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 IBM Z and z/OS that make heavy use of native supervisor state instructions, 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.
Image type compatibility
Other features
- Windows Server 2008 R2 SP1 and Windows 7 SP1 have limited support for redirecting the USB protocol over RDP using RemoteFX.
- Windows Server 2008 R2 SP1 adds accelerated graphics support for certain editions of Windows Server 2008 R2 SP1 and Windows 7 SP1 using RemoteFX.
Restrictions
Name | Maximum host cores / CPUs | Maximum host memory | Maximum host disk volume size | Maximum number of guest VM running | Maximum number of logical CPU per VM guest | Maximum amount of memory per VM guest | Maximum number of SCSI + IDE disks per VM guest | Maximum disk size per VM guest |
Containers, or Zones | No theoretical limit | 32 TB | No limit | 8191 | No limit | No limit | No limit | No limit |
VMware Player 15.0 | No limit | No limit | No limit | No limit | 16 | 4 GB ; 64 GB | ? | 8 TB |
VMware vSphere Hypervisor 4.1 | 160 logical cores | 1 TB | 2 TB minus 512 bytes | 320 | 8 | 255 GB | 4 IDE; 60 SCSI | 2 TB minus 512 bytes |
VMware vSphere ESXi 5.0 | 160 logical cores | 2 TB | 64 TB | 512 | 32 | 1 TB | 4 IDE; 60 SCSI | 2 TB minus 512 bytes |
VMware vSphere Hypervisor | 16 NUMA Nodes / 320 logical CPUs | 4 TB | Depending on filesystem | 512 | 8 | 1 TB | 4 IDE; 60 SCSI; 120 SATA | 62 TB |
VMware vSphere Hypervisor | 16 NUMA Nodes / 320 logical CPUs | 4 TB | Depending on filesystem | 512 | 64 | 1 TB | 4 IDE; 60 SCSI; 120 SATA | 62 TB |
VMware vSphere Hypervisor | 16 NUMA Nodes / 768 logical CPUs | 16 TB | Depending on filesystem | 1024 | 256 | 6128 GB | 4 IDE; 256 SCSI; 120 SATA; 60 NVMe | 62 TB |
VirtualBox | No limit | No limit | No limit | No limit | 32 | No limit | 4 IDE; no limit for SATA, SCSI, SAS | GUI: 2 TB Command line: no limit |
Microsoft Hyper-V Server 2008 R2 | 64 cores / 8 CPUs | 1 TB | No limit | 384 | 4 | 64 GB | 4 IDE; 256 SCSI | 2 TB |
Microsoft Hyper-V Server 2012 | 320 cores / 64 CPUs | 4 TB | No limit | 1024 | 64 | 1 TB | 4 IDE; 256 SCSI | 64 TB |
Microsoft Hyper-V Server 2016 | 512 cores / 320 CPUs | 24 TB | No limit | 1024 | 240 | 12 TB | 4 IDE; 256 SCSI | 64 TB |
Xen | 4095 CPUs | 16TB | No limit | No limit | 512 PV / 128 HVM | 512GB PV / 1TB HVM | ? | ? |
XCP-ng | 4095 CPUs | 16TB | No limit | No limit | 512 PV / 128 HVM | 512GB PV / 1TB HVM | ? | ? |
Xen Server | 4095 CPUs | 16TB | No limit | No limit | 512 PV / 128 HVM | 512GB PV / 1TB HVM | ? | ? |
Note: No limit means no enforced limit. For example, a VM with 1 TB of memory cannot fit in a host with only 8 GB memory and no memory swap disk, so it will have a limit of 8 GB physically.