Hyper-V architecture components
Hyper-V has many components that are responsible for providing an end-to-end management solution for virtual machines and the Management OS. The following diagram shows the most important components of Hyper-V, which will be explained in the later sections:
Hypervisor
The small Hyper-V Hypervisor (almost 20 MB) is responsible for managing, separating, and controlling all the partition access. Also, it is in charge of isolating all the partitions from each other with high security and reliability.
Partitions
When Hyper-V is present, the host operating system and the virtual machines run and share the same access and privilege to Hypervisor, and both are known as partitions. However, the host OS runs a series of components to manage the virtual machines and for that reason, the host partition is called parent partition or management OS, and virtual machines are called child partitions or guests OS.
Virtualization stack
The virtual machine creation and management is made by a series of virtual devices and software components called virtualization stack, which is executed in the parent partition. These series of components work in conjunction with the Hypervisor.
Virtualization Service Provider (VSP) is a software component that controls I/O requests on behalf of the virtual machines in the parent partition. Virtual Machine Bus (VMBus) is responsible for data transfer, service, and device delivery between Parent and Child partitions through a dedicated channel available between the Virtualization Service Providers (VSPs) and Virtualization Service Clients (VSCs). VSP uses VMBus to communicate with child partitions using VSCs to provide the synthetic drivers that run in the child partitions.
For every virtual machine that is started, a Worker Process is created in the parent partition. Worker process and Virtual Machine Management Service (VMMS) are user mode components that provide the ability for parent partition to create, start, stop, save, and delete virtual machines. All these tasks are coordinated by the Virtual Infrastructure Driver (VID), which manages the communication between parent and child partitions.
Enlightened versus emulated
The access between partitions and the Hypervisor is made by a special interface called Hypercalls. They guarantee that the virtual machines can have access to the hardware using components such as VID, VMBus, VSCs, and VSPs. These mechanisms are present during the Integration Components (ICs) installation. Some Windows and Linux operating systems have integration components packages already installed in their Kernel. Virtual machines that have these components are called Enlightened VMs . For old or non-supported operating systems, the parent partition intercepts the virtual machine communication, emulating the Hypercalls. The result is poor performance and limitations to access the hardware, since the management OS needs to work as a bridge to allow the VM to access the hardware. That's why it is very important to ensure that all the virtual machines are running with the latest IC version.