Tech: Virtual Machine Monitors vs Hypervisors

Ben Armstrong posted a brief explaination about Virtual Machines Monitors (VMM) and Hypervisors:


In the simplest terms – the VMM is the piece of software responsible for monitoring and enforcing policy on the virtual machines for which it is responsible. This means that the VMM keeps track of everything happening inside of a virtual machine, and when necessary provides resources, redirects the virtual machine to resources, or denies access to resources (different implementations of VMMs provide or redirect resources to varying levels – but that is a topic of discussion for another day).

Classically there are two types of VMM.

A type II VMM is one that runs on top of a hosting operating system and then spawns higher level virtual machines. Examples of type II VMMs include the JavaVM and .Net environment. These VMMs monitor their virtual machines and redirect requests for resource to appropriate APIs in the hosting environment (with some level of processing in between).

A type I VMM is one that runs directly on the hardware without the need of a hosting operating system. Type I VMMs are also known as ‘hypervisors’ – so the only true difference between a VMM and a hypervisor is where it runs. The functionality provided by both is equitable. Examples of type I VMMs include the mainframe virtualization solutions offered by companies such as Amdahl and IBM, and on modern computers by solutions like VMware ESX, Xen and Windows virtualization…

IBM uses the word hypervisor for everything:


Hypervisors use a thin layer of code in software or firmware to achieve fine-grained, dynamic resource sharing.

There are two types of hypervisors. Type 1 hypervisors run directly on the system hardware. The following figure shows one physical system with a type 1 hypervisor running directly on the system hardware, and three virtual systems using virtual resources provided by the hypervisor.

Type 2 hypervisors run on a host operating system that provides virtualization services, such as I/O device support and memory management.

Type 1 hypervisors are typically the preferred approach because they can achieve higher virtualization efficiency by dealing directly with the hardware. Type 1 hypervisors provide higher performance efficiency, availability, and security than type 2 hypervisors. Type 2 hypervisors are used mainly on client systems where efficiency is less critical. Type 2 hypervisors are also used mainly on systems where support for a broad range of I/O devices is important and can be provided by the host operating system…