A. Microsoft Virtual PC and Microsoft Virtual Server use what is known as hybrid Virtual Machine Managers (VMMs), meaning that both the host OS and the VMM run directly on the hardware. Under those applications, guest OSs have to make all processor and memory requests via the host OS, which slows the processing as there are often many kernel-to-user-mode switches in the operations.
Type 1 VMMs such as Hyper-V and VMware ESX Server, also known as “bare metal” VMMs, run a hypervisor directly on the hardware. All memory and CPU operations are performed by the child partitions directly, via the hypervisor, without interacting with the parent partition. Thus, operations are performed very quickly—at essentially the same speeds as if they ran directly on the hardware, with only a negligible performance hit caused by the hypervisor’s operation.
Type 1 VMM types differ in how they deal with drivers. Monolithic hypervisors, such as VMware ESX Server, handle all hardware access for their partitions. These hypervisors have to host drivers for all hardware that they access, including storage, network, and input devices. Drivers must be installed in the hypervisor, which is common to guest OSs and the host OS, and a special driver is required for the hypervisor. These requirements limit hardware support.
In microkernelized VMMs such as Hyper-V, the parent partition performs functions other than CPU and memory management. The parent partition hosts the independent hardware vendor drivers, so that no third-party code runs in the hypervisor and only standard Windows 64-bit drivers are required for the hardware. The child partitions access the hardware in one of two ways, depending on the child partition. For enlightened child partitions (i.e., those child partitions that have Hyper-V integration service packages available), a very fast memory-based bus, VMBus, is used. This bus exposes a VMBus device for network, Human Interface Device (HID), and storage devices. Non-enlightened child partitions see emulated hardware via the parent partition. The hypervisor intercepts I/O access and redirects it to the parent partition for emulation.