X86 virtualization

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 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.

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 US patent|6397242 on May 28, 2002. VMware and similar virtualization software for the x86 must employ binary 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 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, 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 and Microsoft Virtual Server, based on technology they acquired from Connectix, as well as Hyper-V.

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-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 significant emulation 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 and Athlon 64 X2 with family "F" or "G" on socket 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 AMD Torrenza 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 for IA-32 (VT-x), Virtualization Technology for IA-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
No Intel Celeron or Pentium M processors have VT technology.

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 machines to directly use peripheral devices, primarily through DMA and interrupt 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 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 [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 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.

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.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Virtualization Embedded Controller Interface — Virtualization Embedded Controller Interface, abbreviated as VECI, is a technology used for Intel Virtualization Technology (Intel VT) in chipsets that support Core 2 Duo microprocessors. Details The VECI bus allows the Virtualization Engine (VE) …   Wikipedia

  • X86 architecture — The generic term x86 refers to the most commercially successful instruction set architecture [Unlike the microarchitecture (and the specific electronic and physical implementation) used for a specific chip design] in the history of personal… …   Wikipedia

  • x86 — This article is about Intel microprocessor architecture in general. For the 32 bit generation of this architecture which is also called x86 , see IA 32. x86 Designer Intel, AMD Bits 16 bit, 32 bit, and/or 64 bit Introduced 1978 Design …   Wikipedia

  • X86-64 — is a superset of the x86 instruction set architecture. x86 64 processors can run existing 32 bit or 16 bit x86 programs at full speed, but also support new programs written with a 64 bit address space and other additional capabilities.The x86 64… …   Wikipedia

  • Virtualization infrastructure — broadly describes the separation between resource or request for service from the physical delivery of that service or resource. On a computer virtual memory gains access to additional memory other than the physical computer memory installed on… …   Wikipedia

  • X86 — Die Artikel IA 32 und X86 Prozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein erst… …   Deutsch Wikipedia

  • X86-Architektur — Die Artikel IA 32 und X86 Prozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein erst… …   Deutsch Wikipedia

  • X86-Prozessor — Die Artikel IA 32 und X86 Prozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein erst… …   Deutsch Wikipedia

  • X86 Prozessor — Die Artikel IA 32 und X86 Prozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte entferne diesen Baustein erst… …   Deutsch Wikipedia

  • x86-Prozessor — Prozessor Intel i8086 in Gehäuseform DIP 40. Der Intel i8088 besitzt im Vergleich zum …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”