Virtualizing modern processors
The hardware architectures of most general-purpose processor families have matured to the point where they fully support the execution of virtualized guest operating systems, at least in their higher-end variants. The following sections briefly introduce the virtualization capabilities provided by modern general-purpose processor families.
x86 processor virtualization
The x86 architecture was not originally designed to support the execution of virtualized operating systems.
As a result, x86 processors, from the earliest days through to the Pentium series, implemented instruction sets containing several unsafe but non-trapping instructions. These instructions caused problems with virtualization by, for example, allowing the guest operating system to access privileged registers that did not contain data corresponding to the state of the virtual machine.
X86 CURRENT PRIVILEGE LEVEL AND UNSAFE INSTRUCTIONS
In the x86 architecture...