Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
Vol. 3 19-1
CHAPTER 19
INTRODUCTION TO VIRTUAL-MACHINE EXTENSIONS
19.1 OVERVIEW
This chapter describes the basics of virtual machine architecture and an overview of
the virtual-machine extensions (VMX) that support virtualization of processor hard-
ware for multiple software environments.
Information about VMX instructions is provided in Intel® 64 and IA-32 Architectures
Software Developer’s Manual, Volume 2B. Other aspects of VMX and system
programming considerations are described in chapters of Intel® 64 and IA-32 Archi-
tectures Software Developer’s Manual, Volume 3B.
19.2 VIRTUAL MACHINE ARCHITECTURE
Virtual-machine extensions define processor-level support for virtual machines on
IA-32 processors. Two principal classes of software are supported:
Virtual-machine monitors (VMM) A VMM acts as a host and has full control
of the processor(s) and other platform hardware. A VMM presents guest software
(see next paragraph) with an abstraction of a virtual processor and allows it to
execute directly on a logical processor. A VMM is able to retain selective control of
processor resources, physical memory, interrupt management, and I/O.
Guest software — Each virtual machine (VM) is a guest software environment
that supports a stack consisting of operating system (OS) and application
software. Each operates independently of other virtual machines and uses on the
same interface to processor(s), memory, storage, graphics, and I/O provided by
a physical platform. The software stack acts as if it were running on a platform
with no VMM. Software executing in a virtual machine must operate with reduced
privilege so that the VMM can retain control of platform resources.
19.3 INTRODUCTION TO VMX OPERATION
Processor support for virtualization is provided by a form of processor operation
called VMX operation. There are two kinds of VMX operation: VMX root operation and
VMX non-root operation. In general, a VMM will run in VMX root operation and guest
software will run in VMX non-root operation. Transitions between VMX root operation
and VMX non-root operation are called VMX transitions. There are two kinds of VMX
transitions. Transitions into VMX non-root operation are called VM entries. Transi-
tions from VMX non-root operation to VMX root operation are called VM exits.