Virtual Machines and x86 Virtualization

Dennis Faas's picture

In computer science, a virtual machine (VM) is a software implementation of a machine (computer) that executes programs like a real machine.

System Virtual Machine vs Process Virtual Machine

A virtual machine was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine". Current use includes virtual machines which have no direct correspondence to any real hardware.

Virtual machines are separated into two major categories, based on their use and degree of correspondence to any real machine: a System Virtual Machine and a Process Virtual Machine.

A system virtual machine provides a complete system platform which supports the execution of a complete operating system (OS). In contrast, a process virtual machine is designed to run a single program, which means that it supports a single process.

Virtual Sandbox

An essential characteristic of a virtual machine is that the software running inside is limited to the resources and abstractions provided by the virtual machine -- it cannot break out of its virtual world.

Example: A program written in Java receives services from the Java Runtime Environment (JRE) software by issuing commands to, and receiving the expected results from, the Java software. By providing these services to the program, the Java software is acting as a "virtual machine", taking the place of the operating system or hardware for which the program would ordinarily be tailored.

x86 virtualization is the method by which x86-based "guest" operating systems can run within another "host" x86 operating system, with little or no modification of the guest OS.

Software Techniques

On February 8, 1999, VMware introduced the first x86 virtualization product, "VMware Virtual Platform", based on earlier research by its founders at Stanford University.

Microsoft offers three Windows-based x86 virtualization products: Microsoft Virtual PC and Microsoft Virtual Server, as well as Hyper-V.

Open-source solutions include QEMU, Kernel-based Virtual Machine and VirtualBox.

Hardware Support

Intel and AMD have independently developed virtualization extensions to the x86 architecture. Though not directly compatible with each other, they serve largely the same functions. Either will allow a virtual machine hypervisor to run an unmodified guest operating system without incurring significant emulation performance penalties.

Intel Virtualization Technology for x86 (Intel VT-x)

The following modern Intel processors include support for VT-x,:

  • Pentium 4 662 and 672
  • Pentium Extreme Edition 955 and 965 (not Pentium 4 Extreme Edition with HT)
  • Pentium D 920-960 except 945, 935, 925, 915
  • some models of the Core processors family
  • some models of the Core 2 processors family
  • Xeon 3000, 5000, 7000 series
  • Some Intel Atom chips
  • all Intel Core i7 processors

Neither Intel Celeron, Pentium Dual-Core nor Pentium M processors have VT technology.

AMD Virtualization (AMD-V)

AMD markets its virtualization extensions to the 64-bit x86 architecture as AMD Virtualization, abbreviated AMD-V. It is still referred to as "Pacifica", the AMD internal project code name.

AMD-V operates on AMD Athlon 64 and Athlon 64 X2 with family "F" or "G" on socket AM2 (not 939), Turion 64 X2, Opteron 2nd generation and 3rd-generation, Phenom, and all newer processors. Sempron processors do not include support for AMD-V.

On May 23, 2006, AMD released the Athlon 64 ("Orleans"), the Athlon 64 X2 ("Windsor") and the Athlon 64 FX ("Windsor") as the first AMD processors to support AMD-V. Prior processors do not have AMD-V.

Does your Processor Support Virtualization?

To determine your processor type, download a processor identifying utility, such as CPUz:

This document is licensed under the GNU Free Documentation License (GFDL), which means that you can copy and modify it as long as the entire work (including additions) remains under this license.

Rate this article: 
No votes yet