- X86 virtualization
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 thePopek and Goldberg virtualization requirements . As a result, it was very difficult to implement a generalvirtual machine on an x86 processor. In 2005 and 2006, extensions to their respective x86 architectures byIntel andAMD resolved this and other virtualization difficulties.Software techniques
On
February 8 ,1999 ,VMware introduced the first x86 virtualization product, "VMware Virtual Platform", based on earlier research by its founders atStanford University . VMware filed for a patent on their techniques in October 1998, which was granted as US patent|6397242 onMay 28 ,2002 . VMware and similar virtualization software for the x86 must employbinary translation 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 IBMSystem/370 or MotorolaMC68020 .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, Lawton published the paper [http://www.floobydust.com/virtualization/lawton_1999.txt 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 three Windows-based x86 virtualization products:Microsoft Virtual PC andMicrosoft Virtual Server , based on technology they acquired fromConnectix , as well asHyper-V .Open source alternatives includeQEMU andVirtualBox .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 asparavirtualization . As of 3.0 Xen also now supportsfull virtualization with an unmodified guest OS providedhardware-assisted virtualization support (i.e., Intel VT or AMD-V) is available.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 significantemulation performance penalties.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 andAthlon 64 X2 with family "F" or "G" onsocket AM2 not 939,Turion 64 X2 ,Opteron 2nd generation [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?] and 3rd generation [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?] , Phenom, and all newer processors.This [http://en.wikipedia.org/ wiki] claims, that on May 23, 2006, AMD released the Athlon 64 [http://en.wikipedia.org/wiki/List_of_AMD_Athlon_64_microprocessors#.22Orleans.22_.28F2_.26_F3.2C_90_nm.29 ("Orleans")] , the Athlon 64 X2 [http://en.wikipedia.org/wiki/List_of_AMD_Athlon_64_microprocessors#.22Windsor.22_.28F2_.26_F3.2C_90_nm.29 ("Windsor")] and the Athlon 64 FX [http://en.wikipedia.org/wiki/List_of_AMD_Athlon_64_microprocessors#.22Windsor.22_.28F2.2C_90_nm.29 ("Windsor")] as the first AMD processors to support AMD-V. Prior processors do not have AMD-V.
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 AMDTorrenza architecture.Intel Virtualization Technology (Intel VT)
Intel Virtualization Technology, or Intel VT, is a set of technologies from
Intel for virtualization. It was introduced at the Intel Developer Forum in 2003, [cite news | last = Demerjian | first = Charlie | coauthors = | title = Intel's Otellini drops four processor bombshell, 24 hours from Tulsa | work = The Inquirer | pages = | language = | publisher = | date = 2003-09-16 | url = http://www.theinquirer.net/en/inquirer/news/2003/09/16/intels-otellini-drops-four-processor-bombshell-24-hours-from-tulsa | accessdate = 2008-07-06] and launched at the Intel Developer Forum in 2005.Fact|date=July 2008 Intel VT is composed of Virtualization Technology forIA-32 (VT-x), Virtualization Technology forIA-64 (VT-i), Virtualization Technology for Directed I/O (VT-d), and Virtualization Technology for Connectivity (VT-c).Virtualization Technology for IA-32
Virtualization Technology for IA-32 (VT-x), previously codenamed "Vanderpool", is Intel's technology for virtualization on the IA-32 platform. Intel plans to add Extended Page Tables (EPT), [cite journal | last = Neiger | first = Gil | authorlink = | coauthors = A. Santoni, F. Leung, D. Rodgers, R. Uhlig | title = Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization | journal = Intel Technology Journal | volume = 10 | issue = 3 | pages = 167-178 | publisher = Intel | location = | date = | url = http://download.intel.com/technology/itj/2006/v10i3/v10-i3-art01.pdf | doi = 10.1535/itj.1003.01 | id = | accessdate = 2008-07-06] a technology for page table virtualization, [cite web | last = Gillespie | first = Matt | authorlink = | coauthors = | title = Best Practices for Paravirtualization Enhancements from Intel® Virtualization Technology: EPT and VT-d | work = Intel Software Network | publisher = Intel | date = 2007-11-12 | url = http://softwarecommunity.intel.com/articles/eng/1416.htm | format = | doi = | accessdate = 2008-07-06] in the upcoming Nehalem architecture. [cite press release | title = First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem) | publisher = Intel | date = | format = application/pdf | language = | url = http://www.intel.com/pressroom/archive/reference/whitepaper_Nehalem.pdf | accessdate = 2008-07-06]
The following modern Intel processors include support for VT-x, [cite web | last = | first = | authorlink = | coauthors = | title = Intel Processor Number Details | work = Intel | publisher = Intel | date = 2007-12-03 | url = http://www.intel.com/products/processor_number/chart/index.htm | format = | doi = | accessdate = 2008-10-03] :
- Pentium 4 662 and 672
- Pentium Extreme Edition 955 and 965 (not Pentium 4 Extreme Edition with HT)
- Pentium D 920-960 except 925, 935, 945
- Core Solo U1000 series (not T1000 series)
- Core Duo T2300, T2400, T2500, T2600, T2700 only, plus L2000 and U2000 series
- Core 2 Solo (all versions)
- Core 2 Duo all except E8190, E7xxx, E4xxx, T5200-T5550
- Core 2 Quad all except Q8200
- Core 2 Extreme Duo and Quad (all versions)
- Xeon 3000 series
- Xeon 5000 series
- Xeon 7000 series
Virtualization Technology for IA-64
Virtualization Technology for IA-64 (VT-i), previously codenamed "Silvervale", is Intel's technology for virtualization on the IA-64 (
Itanium ) platform.Virtualization Technology for Directed I/O
Intel's Virtualization Technology for Directed I/O (VT-d) is a technology that enables guest
virtual machine s to directly useperipheral devices, primarily through DMA andinterrupt remapping. [cite journal | last = Abramson | first = Darren | authorlink = | coauthors = J. Jackson, S. Muthrasanallur, G. Neiger, G. Regnier, R. Sankaran, I. Schoinas, R. Uhlig, B. Vembu, J. Wiegert | title = Intel Virtualization Technology for Directed I/O | journal = Intel Technology Journal | volume = 10 | issue = 3 | pages = 179-192 | publisher = Intel | location = | date = | url = http://download.intel.com/technology/itj/2006/v10i3/v10-i3-art02.pdf | doi = 10.1535/itj.1003 | id = | accessdate = 2008-07-06] [ [ftp://download.intel.com/technology/computing/vptech/Intel(r)_VT_for_Direct_IO.pdf Intel Virtualization Technology for Directed I/O Architecture Specification] ] [cite web | last = | first = | authorlink = | coauthors = | title = Intel Virtualization Technology for Directed I/O (VT-d): Enhancing Intel platforms for efficient virtualization of I/O devices | work = Intel Software Network | publisher = Intel | date = 2007-08-10 | url = http://softwarecommunity.intel.com/articles/eng/1416.htm | format = | doi = | accessdate = 2008-07-06]Virtualization Technology for Connectivity
Intel's Virtualization Technology for Connectivity (VT-c) is itself a collection of technologies that assists in I/O virtualization. It is composed of Virtual Machine Device Queues (VMDq), Intel I/O Acceleration Technology (I/OAT), and Single Root I/O Virtualization. [cite press release | title = Intel Virtualization Technology for Connectivity | publisher = Intel | date = | format = application/pdf | language = | url = http://softwarecommunity.intel.com/isn/downloads/virtualization/pdfs/20137_LAD_VTc_Tech_Brief_r04.pdf | accessdate = 2008-07-05] Intel QuickData Technology is a component of Intel I/OAT.Fact|date=July 2008
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
* LynxSecure - Secure MILS Hypervisor from [http://www.lynuxworks.com/virtualization/hypervisor.php LynuxWorks] Supports Intel VT-x and VT-d.
*Microsoft Virtual Server — Virtual Server 2005 R2 SP1 supports hardware assisted virtualization.cite web|url=http://blogs.technet.com/jhoward/archive/2006/04/28/426703.aspx|title=Virtual Server 2005 R2 SP1 Beta 1 download link and availability details|date=2006-04-28 |publisher=technet.com] [cite web|url=http://www.microsoft.com/windowsserversystem/virtualserver/downloads/servicepack.mspx|title=Virtual Server 2005 R2 SP1 - beta 2 feature listing|publisher=Microsoft]
*Microsoft Windows Server 2008 - Server 2008's ability to run multiple virtual servers requires hardware virtualization support [http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx#SetupandRequirements]
* Oracle VM - uses the Xen hypervisor
*Parallels Workstation andParallels 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 [http://www.ghs.com/products/rtos/integrity_pc.html Green Hills Software] hosted on INTEGRITY real-time operating system. Supports Intel VT-x and VT-d.
* [http://www.real-time-systems.com/real-time_hypervisor/index.php 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. [cite web|url=http://www.virtualbox.org/wiki/VirtualBox_architecture|title=VirtualBox architecture|publisher=InnoTek ]
*Virtual Iron - Virtual Iron supports Intel VT-x and AMD-V.
* [http://www.virtuallogix.com/ VirtualLogix] VLX supports Intel VT-x and VT-d.
*VMware Workstation — Workstation 5.5 supports Intel VT-x. [cite web |url=http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1901 |title=Hardware Requirements for 64-Bit Guest Operating Systems |date=2007-03-20 |accessdate=2007-10-10 |publisher=VMware, Inc.]
*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. Xen 3.2.1 supports Intel VT-d. Xen 3.3 is expected to support Intel VT-c.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 includeAMD ,Dell ,Fujitsu Siemens ,Hewlett-Packard , Intel,IBM ,Sun Microsystems ,SWsoft (Now Parallels) andVMware . SPEC is currently seeking information from the IT community to better understand the types of information that would provide the best industry benchmarks.See also
*
Virtualization
*Virtualization Development
*Virtual machine
*Comparison of virtual machines
*Comparison of Application Virtual Machines
*Emulation
*Hardware-assisted virtualization
*Network virtualization
*Paravirtualization
*Operating system-level virtualization References
Wikimedia Foundation. 2010.