Share on Facebook Share on Twitter Email
Answers.com

X86 virtualization

 
Wikipedia: X86 virtualization

In computing, x86 virtualization provides software based emulation of x86 processor hardware. A "guest" or "virtual" OS may run as a process on a "host" or "physical" system with little or no modification to the guest OS. A virtual machine(VM) is an environment created by a virtualizer (such as Sun VirtualBox). Guest operating systems run on virtual machines.

The following scenario illustrates typical x86 desktop virtualizations:

  • A standard desktop PC (the physical host machine) runs a 32-bit Linux Ubuntu operating system.
  • A "VMware Player for Linux" application runs on this system.
  • A standard build of Microsoft Windows XP (the guest system) is installed and then run in "VMware Player for Linux" as an x86 virtual machine.
  • Users see a normal Windows XP desktop within the VMware Player application window with no installation or dedication of hardware to the virtual machine.
  • Users can start and stop the virtual machine at will using it like a physical computer running an OS with access to hardware, local network and the Internet.
  • The virtual machine appears to the host machine operating system as a native application which create and manage a collection of files on the host's hard drive and uses the host machine RAM when it is running. That native application, a Linux program in this scenario, handles input and output and displays the virtual desktop.

Contents

Software techniques

VMware introduced the first x86 virtualization product on February 8, 1999. The "VMware Virtual Platform", was based on earlier research by VMware founders at Stanford University. VMware filed for a patent on its techniques in October 1998, and received U.S. Patent 6,397,242 on May 28, 2002. VMware and similar virtualization software for the x86 processor family 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).

Microsoft offers three Windows-based x86 virtualization products: Microsoft Virtual PC and Microsoft Virtual Server, based on technology acquired from Connectix, and Hyper-V, a more[weasel words]advanced enterprise solution.

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

The research systems Denali, L4, and Xen provide high-performance virtualization of x86 by implementing a virtual machine that differs from the raw hardware. This approach, known as paravirtualization, involves porting operating systems to run on the resulting virtual machine, which does not implement the parts of the actual x86 instruction set that are hard to virtualize. As of version 3.0 Xen supports full virtualization with an unmodified guest OS. This assumes that the host system supports hardware-assisted virtualization (such as Intel VT or AMD-V).

Hardware support

The x86 processor architecture did not originally meet the "Formal Requirements for Virtualizable Third Generation Architectures", a specification for virtualization created in 1974 by Gerald J. Popek and Robert P. Goldberg. Thus developers found it difficult to implement a virtual machine platform on the x86 architecture without significant overhead on the host machine. In 2005 and 2006, Intel and AMD (working independently) resolved this by creating new "Processor Extensions" to the x86 architecture. Although the actual implementation of processor extensions differ between AMD and Intel, both achieve the same goal. They both allow a virtual machine hypervisor to run an unmodified operating system without incurring significant emulation performance penalties.

AMD virtualization (AMD-V)

AMD Phenom CPU die

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

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

AMD-V capability also features on Athlon 64 and Athlon 64 X2 family of processors with "F" or "G" stepping on socket AM2 (not socket 939), Turion 64 X2, and Opteron 2nd generation[1] and 3rd-generation[2], Phenom and Phenom II processors. Only Sempron processors except Sable and Huron do not include support for AMD-V.

Beginning with the Barcelona line, AMD Opteron CPUs support a hardware virtualizaton technology called Rapid Virtualisation Indexing, later adopted by Intel as Extended Page Tables (EPT).

Intel Virtualization Technology for x86 (Intel VT-x)

Previously codenamed "Vanderpool", VT-x represents Intel's technology for virtualization on the x86 platform. Intel includes Extended Page Tables (EPT),[3] a technology for page-table virtualization,[4] in the Nehalem architecture.[5][6]

As of 2009 not all recent Intel processors support VT-x - Intel uses the feature to segment its market.[7] For a complete and up-to-date list see the Intel website.[8] The following Intel processors include support for VT-x:[9]

Intel Core i7 (Bloomfield) CPU
  • 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
  • Core Duo T2300, T2400, T2500, T2600, T2700 (Yonah)
  • Core 2 Duo E6300, E6400, E6320, E6420, E6540, E6550, E6600, E6700, E6750, E6850 (Conroe)
  • Core 2 Duo E5400, E7600, E8200, E8300, E8400, E8500, E8600 and some versions of the E7400 and E7500 (Wolfdale)
  • Mobile Core 2 Duo T5500, T5600, T6670, T7100, T7200, T7250, T7300, T7400, T7500, T7600, T7600G, T7700, T7800, U7500, L7200, L7300, L7400, L7500, L7700, U7500, U7600, U7700 (Merom)
  • Mobile Core 2 Duo SU9300, SU9400, SU9600, SL9300, SL9380, SL9400, SL9600, SP9300, SP9400, SP9600, P7370, P7570, P8400, P8600, P8700, P8800, P9500, P9600, P9700, T8100, T8300, T9300, T9400, T9500, T9550, T9600, T9800, T9900 (Penryn)
  • Core 2 Quad Q6600, Q6700 (Kentsfield)
  • Core 2 Quad Q8400, Q8400S, Q9300, Q9400, Q9400S, Q9450, Q9550, Q9550S, Q9650 and some versions of the Q8300 (Yorkfield)
  • Core 2 Extreme X6800 (Conroe XE)
  • Core 2 Extreme QX6700, QX6800, QX6850 (Kentsfield XE)
  • Core 2 Extreme QX9650, QX9770, QX9775 (Yorkfield XE)
  • Xeon 3300 and +, 5000, 7000 series
  • Atom Z520, Z530, Z540, Z550 (Silverthorne)
  • all Intel Core i7 processors
  • all Intel Core i5 processors
  • Pentium Dual-Core E6300, E6500 and some versions of the E5300 and E5400*
  • Celeron E3200, E3300, E3400 (it will be launched at 2010)


Note: If unsure whether an Intel processor supports Intel VT-x or not, check the Intel Processor Spec Finder for official information.


Important: Even if some models seem to support Intel VT, not all SKUs of the same model need do so (different sSpec#). Example: Intel Core 2 Duo T5500 seems to support Intel VT [1], but of the four models of this processor,[10] only one (SL9U8) supports Intel VT.

IOMMU

An input/output memory management unit (IOMMU) enables guest virtual machines to directly use peripheral devices, such as ethernet, accelerated graphics cards, and hard-drive controllers, through DMA and interrupt remapping. Both AMD and Intel have released specifications:

  • the AMD specification, "AMD-Vi" (previously just IOMMU)
  • "Intel's Virtualization Technology for Directed I/O" (VT-d)

A note on 64-bit guests

One can run a 64-bit guest on a 32-bit host OS if the underlying processor runs in 64-bit mode and supports the necessary virtualization extensions. Not all platforms support this.

Virtualization features activation

Intel's VT-x feature needs activation in the BIOS before applications can make use of it. Most computer and motherboard/BIOS/chipset manufacturers disable this support by default but make an option available to activate it.

Software using AMD-V and/or Intel VT

The following software conditionally makes use of virtualization technology features:

See also

References

  1. ^ 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?
  2. ^ 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?
  3. ^ Neiger, Gil; A. Santoni, F. Leung, D. Rodgers, R. Uhlig. "Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization". Intel Technology Journal (Intel) 10 (3): 167–178. doi:10.1535/itj.1003.01. http://download.intel.com/technology/itj/2006/v10i3/v10-i3-art01.pdf. Retrieved 2008-07-06. 
  4. ^ Gillespie, Matt (2007-11-12). "Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d". Intel Software Network. Intel. http://software.intel.com/en-us/articles/best-practices-for-paravirtualization-enhancements-from-intel-virtualization-technology-ept-and-vt-d. Retrieved 2008-07-06. 
  5. ^ Intel. "First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem)" (application/pdf). Press release. http://www.intel.com/pressroom/archive/reference/whitepaper_Nehalem.pdf. Retrieved 2008-07-06. 
  6. ^ "Technology Brief: Intel Microarchitecture Nehalem Virtualization Technology" (application/pdf). Intel. 2009-03-25. http://download.intel.com/business/resources/briefs/xeon5500/xeon_5500_virtualization.pdf. Retrieved 2009-11-03. 
  7. ^ http://arstechnica.com/microsoft/news/2009/05/r2e-microsoft-intel-goof-up-windows-7s-xp-mode.ars
  8. ^ http://ark.intel.com/VTList.aspx
  9. ^ "Intel Processor Number Details". Intel. Intel. 2007-12-03. http://www.intel.com/products/processor_number/chart/index.htm. Retrieved 2008-10-03. 
  10. ^ http://processorfinder.intel.com/List.aspx?ParentRadio=All&ProcFam=0&SearchKey=t5500
  11. ^ "VirtualBox architecture". InnoTek. http://www.virtualbox.org/wiki/VirtualBox_architecture. 
  12. ^ http://www.vmware.com/products/vsphere/
  13. ^ http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx#SetupandRequirements and http://videos.techielife.com/windows-server-2008-presentation-virtualization/video-online/2008/11/28
  14. ^ "Virtual Server 2005 R2 SP1 Beta 1 download link and availability details". technet.com. 2006-04-28. http://blogs.technet.com/jhoward/archive/2006/04/28/426703.aspx. 
  15. ^ "Virtual Server 2005 R2 SP1 - beta 2 feature listing". Microsoft. http://www.microsoft.com/windowsserversystem/virtualserver/downloads/servicepack.mspx. 
  16. ^ Oracle VM Technical Information
  17. ^ "Hardware Requirements for 64-Bit Guest Operating Systems". VMware, Inc.. 2007-03-20. http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1901. Retrieved 2007-10-10. 
  18. ^ AT-RTOSVisor: Real-time Hypervisor Plattform, acontis technologies GmbH, retrieved on 2009-11-21

Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "X86 virtualization" Read more