x86 virtualization
From Wikipedia, the free encyclopedia
x86 virtualization is the method by which x86-based "guest" operating systems are run under another "host" x86 operating system, with little or no modification of the guest OS. The x86 processor architecture did not originally meet the Popek and Goldberg virtualization requirements. As a result, it was very difficult to implement a general virtual machine on an x86 processor. In 2005 and 2006, extensions to their respective x86 architectures by Intel and AMD resolved this and other virtualization difficulties.
Contents |
[edit] 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. VMware filed for a patent on their techniques in October 1998, which was granted as U.S. Patent 6,397,242 on May 28, 2002. VMware and similar virtualization software for the x86 must employ very sophisticated techniques to trap and virtualize the execution of certain instructions. These techniques incur some performance overhead as compared to a VM running on a natively virtualizable architecture such as the IBM System/370 or Motorola MC68020.
Kevin Lawton started the Plex86 project (originally called "freemware") to create Free software for x86 virtualization. The focus of this project has since changed to support only Linux as a guest operating system, but prior to that Mr. Lawton published the paper Running multiple operating systems concurrently on an IA32 PC using virtualization techniques, which gives an analysis of what aspects of the x86 architecture are hard to virtualize and some techniques to overcome these difficulties.
Microsoft offers two Windows-based x86 virtualization products, Microsoft Virtual PC and Microsoft Virtual Server, based on technology they acquired from Connectix.
Open source alternatives include QEMU and VirtualBox.
The research systems Denali, L4, and Xen explored ways to provide high performance virtualization of x86 by implementing a virtual machine that differs from the raw hardware. Operating systems are ported to run on the resulting virtual machine, which does not implement the hard-to-virtualize parts of the actual x86 instruction set. This technique is known as paravirtualization. As of 3.0 Xen also now supports full virtualization with an unmodified guest OS provided hardware virtualisation support (i.e., Intel VT or AMD-V) is available.
[edit] Hardware support
Intel and AMD have independently developed virtualization extensions to the x86 architecture. They are not directly compatible with each other, but 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.
[edit] AMD virtualization (AMD-V)
AMD's virtualization extensions to the 64-bit x86 architecture is named AMD Virtualization, abbreviated AMD-V. It is still referred to as "Pacifica", the AMD internal project code name.
AMD-V is present in AMD Athlon 64 with family "F" and "G" on socket AM2 not 939, Athlon 64 X2 with family "F" and "G", Turion 64 X2, Opteron 2nd generation[1] and 3rd generation[2], Phenom, and all newer processors.[citation needed]
AMD has published a specification for a technology named IO Memory Management Unit (IOMMU) to AMD-V. This provides a way of configuring interrupt delivery to individual virtual machines and an IO memory translation unit for preventing a virtual machine from using DMA to break isolation. The IOMMU also plays an important role in advanced operating systems (absent virtualization) and the AMD Torrenza architecture.
[edit] Intel VT (IVT)
Intel's virtualization extension for 32-bit and 64-bit x86 architecture is named IVT (short for Intel Virtualization Technology), and is sometimes referred to by the development code name "Vanderpool". The 32-bit or IA-32 IVT extensions are referred to as VT-x.[3] Intel has also published specifications for IVT for the IA-64 (Itanium) processors which are referred to as VT-i;[3] formerly the IA-64 virtualization was code-named "Silvervale".
Intel VT was officially launched at the Intel Developer Forum Spring 2005. It is available on certain Pentium 4 6x1 and 6x2 models,[4] Pentium D 9x0[5], Xeon 3xxx/5xxx/7xxx, Core Duo[6] (excluding the T2300E and T2x50 models) and Core 2 Duo[7] processors (excluding the T52x0, T5300, T54x0, T5500 with stepping "B2", E2xx0, E4x00, E7200 and E8190 models). On some implementations, IVT support may be switched off in the Firmware. This can be determined by checking if the VMX flag is enabled by the Feature Control MSR.
Documentation on the Intel website has stated that VT requires not only support from the processor, but also support from the chipset, BIOS, and perhaps software.[8][9]
Intel plans to add a technology named Virtualization for Directed I/O (VT-d) to VT. This provides a way of configuring interrupt delivery to individual virtual machines and an IOMMU for preventing a virtual machine from using DMA to break isolation.
[edit] Software using AMD-V and/or Intel-VT
The following software is known to conditionally make use of virtualization technology features:
- Blue Pill (malware)
- Hyper-V - Windows Server Virtualization
- Kernel-based Virtual Machine (KVM) - a Linux kernel module hypervisor
- Microsoft Virtual PC — As of Virtual PC 2007 supports both Intel VT-x and AMD AMD-V.
- Microsoft Virtual Server — Virtual Server 2005 R2 SP1 supports hardware assisted virtualization.[10][11]
- Microsoft Windows Server 2008 - Server 2008's ability to run multiple virtual servers requires hardware virtualization support[1]
- Oracle VM - uses the Xen hypervisor
- Parallels Workstation and Parallels Desktop for Mac — lightweight hypervisor with Intel VT-x and AMD AMD-V support.
- Parallels Server (Beta) — Enterprise version of Parallels Workstation and Desktop for Mac. It will provide support for Intel's second generation virtualization technology, called Virtualization Technology for Directed, or VT-d.
- Padded Cell - virtual machine technology from Green Hills Software hosted on INTEGRITY real-time operating system. Supports Intel VT-x and VT-d.
- Real-Time Systems RTS Real-Time Hypervisor for x86
- Sun xVM - xVM is based on Xen on x64
- VirtualBox supports both AMD-V and VT-x.[12]
- Virtual Iron - Virtual Iron supports Intel VT-x and AMD-V.
- VirtualLogix VLX supports Intel VT-x and VT-d.
- VMware Workstation — Workstation 5.5 supports Intel VT-x.[13]
- VMware Fusion - Virtualization product for Mac OS X for use on Macintosh systems equipped with Intel Core, Core 2 Duo and Xeon processors.
- VMware ESX Server - Enterprise Virtualization Server, needs hardware support when running x64 and x32 virtual machine simultaneously.
- VMware Server - Supports Intel VT-x and AMD-V.
- Xen — Xen 3.0.2 supports Intel VT-x and AMD-V.
[edit] Performance
Standard Performance Evaluation Corporation (SPEC) has created a working group to address the development of a set of industry standard methods to compare performance of virtualization technologies. Current members of the working group include AMD, Dell, Fujitsu Siemens, Hewlett-Packard, Intel, IBM, Sun Microsystems, SWsoft(Now Parallels) and VMware. SPEC is currently seeking information from the IT community to better understand the types of information that would provide the best industry benchmarks.
[edit] Windows Vista
Originally Windows Vista Home Basic and Home Premium's End User License Agreements stated that they may not be installed or run inside of a virtual machine, despite no technological barriers existing to prevent a user from doing so. The ban was reversed in January 2008.
Here is the Windows Vista SP1 supplement:
"MICROSOFT SOFTWARE SUPPLEMENTAL LICENSE TERMS
WINDOWS VISTA HOME BASIC, HOME PREMIUM, BUSINESS, ULTIMATE, AND THEIR SERVICE PACK 1 VERSIONS
If you are licensed to use Microsoft Windows Vista Home Basic, Home Premium, Business, or Ultimate,
or Service Pack 1 of any of these Windows Vista editions (the “software”), you have the following
license right. If there is a conflict with any past or future license terms for the software, this
supplemental license term applies.
Use with Virtualization Technologies. Instead of using the software directly on the licensed
device, you may install and use the software within only one virtual (or otherwise emulated) hardware
system on the licensed device. When used in a virtualized environment, content protected by digital
rights management technology, BitLocker or any full volume disk drive encryption technology may not
be as secure as protected content not in a virtualized environment. You should comply with all
domestic and international laws that apply to such protected content."
[edit] See also
- Virtualization
- Virtualization Development
- Virtual machine
- Comparison of virtual machines
- Comparison of Application Virtual Machines
- Emulation
- Native virtualization
- Network virtualization
- Paravirtualization
- Operating system-level virtualization
[edit] References
- ^ http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_8806~111165,00.html#111166 What are the main differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors?
- ^ http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_8806~119722,00.html#119726 What virtualization enhancements do Third-Generation AMD Opteron processors feature?
- ^ a b Intel Virtualization Technology. Intel.
- ^ Processor Spec Finder. Intel Corp.. Retrieved on 2007-03-22.
- ^ Intel Pentium D processor specifications
- ^ Intel Core Duo processor numbers
- ^ Intel Core2 Duo processor numbers
- ^ Intel Processors Supporting VT. Xen Source.
- ^ Intel Pentium 4 Processor 6xx Sequence and Intel Pentium 4 Processor Extreme Edition Datasheet. Intel.
- ^ Virtual Server 2005 R2 SP1 Beta 1 download link and availability details. technet.com (2006-04-28).
- ^ Virtual Server 2005 R2 SP1 - beta 2 feature listing. Microsoft.
- ^ VirtualBox architecture. InnoTek.
- ^ Hardware Requirements for 64-Bit Guest Operating Systems. VMware, Inc. (2007-03-20). Retrieved on 2007-10-10.
- ^ Microsoft relents: Vista consumer virtualization ban lifted

