Hypervisors

From Emulation General Wiki
Jump to navigation Jump to search

A hypervisor is a program that takes advantage of an architectural quirk in Intel CPUs to run emulated software at near-bare-metal speeds, running modern operating systems faster than emulators, but running video games slower than native hardware. This is possible because the processor is designed to execute code in a hierarchy that allows less-privileged software to run almost unmodified. For any instruction in a program that requests more privileges, such as those used by drivers, the hypervisor steps in to emulate the hardware response. There are two types of hypervisors;

  1. A bare-metal hypervisor, which is the operating system.
  2. A software hypervisor, the ones many are familiar with. They hook into the kernel of an existing operating system (such as Linux or Windows NT) and run alongside the rest of the software on the system.

Hypervisors are the source of the "host" and "guest" terminology since they help clarify the specific "machine" one refers to; the host is the physical hardware and it manages the guests. Most hypervisors try and support the Open Virtualization Format (OVF) to facilitate virtual appliances which are built for a specific purpose (such as running common server software like WordPress or MediaWiki).

Type 2 hypervisors[edit]

Name Operating System(s) Latest Version Active Recommended
VMware Workstation Player/Pro Windows Linux 15.5.1 TBD
Oracle VM VirtualBox Windows Linux macOS FreeBSD Solaris 6.1.0 TBD
QEMU Windows Linux macOS FreeBSD 4.2 TBD
VMware Fusion macOS 11.5.1 TBD
VMware Workstation Pro
Is also available for Linux, though the Windows version has better 3D support because of its native Direct3D implementation.
VMware Workstation Player
Formerly VMware Player, Workstation Player is VMware's free offering but lacks a few features like snapshots.
VMware Fusion
A macOS port.
Oracle VM VirtualBox
Is based on QEMU, but is not a fork of it. VirtualBox is open source but it has an extension pack that adds features common on standard PCs like USB 2.0, 3.0, PXE boot, and hard drive encryption.
QEMU
A general-purpose emulator that supports a wide range of hardware for use on a multitude of platforms. Used to be a hypervisor by way of KQEMU but has been deprecated in favor of other systems like KVM (a kernel module for Linux and FreeBSD) and HAXM (which is developed by Intel). QEMU has been used to emulate several non-PC x86 machines like XQEMU for the Xbox, and Orbital for the PlayStation 4. The non-specific application of QEMU allows emulators like XQEMU and Orbital to function as hypervisors without having to write custom-made drivers.
Hyper-V
Microsoft's server-oriented hypervisor. Requires a Pro, Enterprise, or Education version of Windows 10.
Virtual PC
Microsoft's original offering for consumers, originally made by Connectix as commercial software until Microsoft made it a free download in 2006. Support ended with the introduction of Hyper-V, but the last version can still be downloaded here.

Type 1 hypervisors[edit]

Rather than being installed as a standard program in an operating system, Type 1 hypervisors form the operating system used by a computer. Examples include;

  • ESXi (commercial hypervisor by VMware)
  • Xen (open-source hypervisor developed for the Linux kernel)
  • UnRAID (commercial NAS distribution with an integrated hypervisor)

Integrations[edit]

Many type 2 hypervisors include some sort of additional software that can be installed in a guest. This software listens to the hypervisor and facilitates communication between the guest and host, allowing for features like automatic screen resizing (where the host measures the height and width of the window and sends an optimal size for the guest to resize the display to), clipboard sharing (where anything copied on the host can be pasted in the guest), shared folders (where a directory on the host can be made available for access from a guest using a built-in file server and a direct network connection to the guest), and mouse integration (where the hypervisor emulates an absolute pointing device like a drawing tablet to give the impression that moving the cursor in and out of the machine's display is seamless). Two hypervisors are known to have them;

  • VirtualBox Guest Additions
  • VMware Tools (and its open-source counterpart, open-vm-tools)

Emulation issues[edit]

Graphics[edit]

Hypervisors don't have direct access to the graphics hardware, which means graphics card emulation is less than ideal for video games that use 3D APIs. Every hypervisor has a different approach to handling 3D graphics; none are by any means performant enough to run modern video games without resorting to hardware passthrough. Support for OpenGL is slightly better than Direct3D since it doesn't have to be reverse engineered, but most Windows games (including ports) use Direct3D.

macOS[edit]

There's an ongoing effort to get macOS installations working on hypervisors. Support has historically been low or non-existent since Apple makes no effort to support standard PC hardware.

See also[edit]