Ethernet adapter, a PS/2 keyboard and mouse, and a complete virtual motherboard
with BIOS. Behind the scenes, though, the Hyper-V solution is running code to
pretend that this hardware exists. Providing emulated hardware requires an additional
workload in the hypervisor, predominantly provided by the worker process for the
virtual machine, vmwp.exe.
Remember that vmwp.exe runs in the user mode space of the parent partition, which
means as emulated hardware is used, its performance will be poorer than the
synthetic equivalents (which run purely in kernel mode and don’t have the additional
overhead of emulating physical pieces of hardware). The emulated hardware requires
many context switches between user mode and kernel mode for the actual real
hardware communications via the management partition’s I/O stack, and the
communication path is far more convoluted. Additionally, the interface to the
emulated devices assumes things about a physical machine. For instance, setting up
an IDE transfer involves seven I/O port writes, each of which is a separate round-trip
to the emulator in the vmwp.exe and a huge performance penalty. This performance
penalty is why synthetic hardware is always preferred over emulated hardware, but
sometimes there isn’t a choice, and for some types of hardware that is rarely used or
primarily triggered by the user, the difference in performance is not noticeable
(consider mouse or keyboard type hardware).
The term generation 1 virtual machine may be completely new to you. Prior to
Windows Server 2012 R2 Hyper-V, it would have just been called a virtual machine.
There is now a new type of virtual machine, which I cover in the section, “Generation
2 Virtual Machine,” and that is why there is now a name distinction. Consider the
generation 1 virtual machine as the virtual machine that you have known and loved
since Windows Server 2008 Hyper-V, but with a few improvements. Unless you are
deploying all brand-new virtual machines on Windows Server 2012 R2 with the latest
operating systems, you will continue to use generation 1 virtual machines for some
time, and this is not a problem at all. Remember that generation 1 virtual machines
not only fully support the VMBus and synthetic hardware, but also provide support for
emulated hardware when required.
VIRTUAL MOTHERBOARD AND BIOS
At the core of a virtual machine is the virtual motherboard and the basic input/output
system (BIOS). This provides the environment needed to initially start the virtual
machine, choose the boot device, and hand over control to the operating system
installed. Microsoft uses the American Megatrends BIOS for the virtual machines.
However, you don’t access the BIOS of a virtual machine in the same way that you
access the BIOS of a physical machine (for example, by pressing the Esc or Delete
key). Instead, the options related to BIOS startup and boot order are configured
through the virtual machine properties using the BIOS area, as shown in Figure 2.4.
Notice that the figure shows that the Num Lock state can be set as well as the types of
boot devices supported in a generation 1 virtual machine (CD, IDE, legacy network