Hardware Virtualization (Intel VT-x and AMD-V)

Hardware virtualization is built-in processor support that helps a hypervisor host guest operating systems. The two main implementations are Intel’s Virtualization Technology, branded VT-x, and AMD’s equivalent, branded AMD-V; both reached mainstream processors in the 2005 to 2006 period. Intel’s own datasheets describe Intel VT for Intel 64 and IA-32 architecture as hardware assists that improve the performance and robustness of virtualization.

The problem these extensions solve goes back to Popek and Goldberg’s 1974 requirements. Their analysis showed that a processor can host an efficient virtual machine monitor only if every instruction that could affect shared system resources is a “sensitive” instruction that the monitor can catch. The original x86 design did not meet this test: certain instructions behaved differently in a guest but did not trap, so a monitor could not reliably intercept them. Software hypervisors worked around this with elaborate techniques, but the gap was real.

VT-x and AMD-V close that gap in hardware. They add a new, more privileged execution mode for the hypervisor and a less privileged mode for guests, so the processor itself traps the sensitive operations a guest performs and hands control back to the hypervisor. The guest operating system can run unmodified, and most of its instructions still execute directly on the processor at full speed.

This hardware support is what made virtualization fast and general enough to underpin large-scale cloud computing. Later additions, such as nested page tables for memory and I/O virtualization for devices, extended the same idea to the parts of the machine that the first generation of extensions did not cover.