X86 virtualization: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
updated screenshot
Line 22: Line 22:


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<ref>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?</ref> and 3rd generation<ref>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?</ref>, [[Phenom (processor)|Phenom]], and all newer processors.
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<ref>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?</ref> and 3rd generation<ref>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?</ref>, [[Phenom (processor)|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.
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.

Revision as of 18:50, 27 September 2008

File:VMware Workstation.png
ubuntu running on Windows Vista, an example of 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 U.S. patent 6,397,242 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 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[1] and 3rd generation[2], Phenom, and all newer processors.

This wiki claims, that 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.

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,[3] and launched at the Intel Developer Forum in 2005.[citation needed] 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),[4] a technology for page table virtualization,[5] in the upcoming Nehalem architecture.[6]

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.[7][8][9]

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.[10] Intel QuickData Technology is a component of Intel I/OAT.[citation needed]

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 LynuxWorks Supports Intel VT-x and VT-d.
  • Microsoft Virtual Server — Virtual Server 2005 R2 SP1 supports hardware assisted virtualization.[11][12]
  • 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.[13]
  • 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.[14]
  • 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

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. ^ Demerjian, Charlie (2003-09-16). "Intel's Otellini drops four processor bombshell, 24 hours from Tulsa". The Inquirer. Retrieved 2008-07-06. {{cite news}}: Cite has empty unknown parameter: |coauthors= (help)
  4. ^ Neiger, Gil. "Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization" (PDF). Intel Technology Journal. 10 (3). Intel: 167–178. doi:10.1535/itj.1003.01. Retrieved 2008-07-06. {{cite journal}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  5. ^ Gillespie, Matt (2007-11-12). "Best Practices for Paravirtualization Enhancements from Intel® Virtualization Technology: EPT and VT-d". Intel Software Network. Intel. Retrieved 2008-07-06. {{cite web}}: Cite has empty unknown parameter: |coauthors= (help)
  6. ^ "First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem)" (application/pdf) (Press release). Intel. Retrieved 2008-07-06.
  7. ^ Abramson, Darren. "Intel Virtualization Technology for Directed I/O" (PDF). Intel Technology Journal. 10 (3). Intel: 179–192. doi:10.1535/itj.1003. Retrieved 2008-07-06. {{cite journal}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  8. ^ Intel Virtualization Technology for Directed I/O Architecture Specification
  9. ^ "Intel Virtualization Technology for Directed I/O (VT-d): Enhancing Intel platforms for efficient virtualization of I/O devices". Intel Software Network. Intel. 2007-08-10. Retrieved 2008-07-06. {{cite web}}: Cite has empty unknown parameter: |coauthors= (help)
  10. ^ "Intel Virtualization Technology for Connectivity" (application/pdf) (Press release). Intel. Retrieved 2008-07-05.
  11. ^ "Virtual Server 2005 R2 SP1 Beta 1 download link and availability details". technet.com. 2006-04-28. {{cite web}}: Check date values in: |date= (help)
  12. ^ "Virtual Server 2005 R2 SP1 - beta 2 feature listing". Microsoft.
  13. ^ "VirtualBox architecture". InnoTek.
  14. ^ "Hardware Requirements for 64-Bit Guest Operating Systems". VMware, Inc. 2007-03-20. Retrieved 2007-10-10. {{cite web}}: Check date values in: |date= (help)