The software that creates a virtual machine (VM) environment in a computer (for the fundamental concept, see virtual machine
). In a regular, non-virtual computer, the operating system is the master control program, which manages the execution of all applications and acts as an interface between the apps and the hardware. The OS has the highest privilege level in the machine, known as "ring 0" (see ring
In a VM environment, the VM monitor (VMM) becomes the master control program with the highest privilege level, and the VMM manages one or more "guest operating systems." Each guest OS manages its own applications in a separate "virtual machine" (VM) in the computer, sometimes called a "guest OS stack."
What Gets Virtualized
The VM monitor (VMM) is an interface between the guest OS and the hardware. It intercepts calls to the peripheral devices and memory tables from each guest OS and intercedes on its behalf (see virtual memory
). In reverse, when a disk or SSD write creates an interrupt, the VM monitor injects that interrupt into the appropriate guest OS. Following are the major monitor types.
This VM monitor (VMM) is installed in an existing, running computer. The VMM kernel runs alongside the host OS, and calls for I/O are redirected to virtual drivers that call the native API of the host OS. Examples of OS-hosted VMMs are VMware Workstation, VMware Server, Parallels Workstation and Parallels Desktop for Mac.
The hypervisor monitor provides the most control, flexibility and performance, because it is not subject to limitations of a host OS. The hypervisor relies on its own software drivers for the hardware; however, they may limit portability to another platform. Examples of this method are VMware ESX and IBM's mainframe z/VM.
This method combines the robustness of the hypervisor with the flexibility of the host model. In order to take advantage of the drivers in a popular OS, the Service OS runs as a component of the hypervisor in a separate VM. Xen, XenServer and Hyper-V are examples of the service VM approach. See virtual machine