Virtual machine architecture

Virtual machine architecture

Most computers consist of multiple layers of hardware and software that operate together as a system. Hardware resources typically include a central processor, display, storage, networking, and other peripheral devices. Device drivers installed in the operating system control hardware resources, translating operating-system instructions into the specific device control language. Device drivers assume exclusive device ownership. For example, it is assumed that a video driver owns the video adapter exclusively. Any software application that calls the video adapter must interact with the hardware through the video driver.

Exclusive device ownership typically precludes running more than one operating system simultaneously on a computer. Virtual machine technology overcomes this limitation by redirecting interactions with device resources to lower system levels in such a way that higher-level application layers are unaffected. The Virtual Server 2005 virtual machine technology allows you to run multiple operating systems simultaneously on a single physical computer.

The following figure illustrates the architecture of Virtual Server’s virtual machine technology.

Virtual machine architecture

Starting from the bottom of the logical stack, the host operating system manages the physical computer. The Virtual Machine Monitor (VMM) virtualization layer manages virtual machines, providing the software infrastructure for hardware emulation. Each virtual machine consists of a set of virtualized devices.

All virtual machines run within a single process. Each virtual processor runs on its own thread. All software code running within the virtual machine runs in a separate VMM context. This context consists of an address space that is completely separate from any Windows process, or from any other virtual machine. In this sense, the architecture is stronger than a simple per-process design.

Finally, the guest operating system and applications run on the virtual machine as if they were running on physical hardware, rather than emulated hardware. When a guest operating system is running, the special-purpose VMM kernel manages the CPU and hardware during virtual machine operations, creating an isolated environment in which the guest operating system and applications run close to the hardware at the highest possible performance.

For more information about the architecture of Virtual Server, see Architecture. For more information about VMM, see Virtual Machine Monitor.