VMware and 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.
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,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.
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. (Hyper-V and Networking)
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
* Hypervisor contains the Virtual Machine Monitor (VMM)
* Guest OS unchanged, Host can be any kind of hardware
* Guest uses generic device drivers
VMware can vrtualize any x86 operating system u sing a combination of binary translation and direct execution techniques. This approach, depicted in Figure translates kernel code to replace non virtualizable instructions with new sequences of instructions that have the intended effect on the virtual ha rd ware.Meanwhile, user level code is directly executed on the
processor for high performance virtualization. Each virtual machine monitor provides ea ch Virtual Ma chine with all the services of the physical system, including a virtual BIOS, virtual devices and virtualized memory management
* Guest OS requires paravirtualized drivers
* Thin layer for hypervisor, guest has access to Host hardware
* Host any kind of hardware
Para virtualization is different from full virtualization , where the unmodified OS do es not kn ow it is virtualized and sensitive OS calls are
trapped using b nary translation . The value proposition of para virtualization is in lower virtualization overhead, but the performance advantage of paravirtualization over full virtualization can vary greatly depend in g on the workload. As paravirtualizatio n can not support
unmodified operating systems ( e. g. Windows 2000/X P), its compatibility and portability is poor.Para virtualizatio n ca n also introduce significant support and maintain ability issues in production environmen ts as it requires deep OS kernel modification s. The op en source Xen project is an
example of para virtualization that virtualizes the processor and memory using a modified Linux kernel and virtualizes the I/O using custom guest OS device d rivers.While it is very difficult to build them ore sophisticated binary translation support necessary for full virtualization, mod ifying the guest OS to enable para virtualization is relatively easy .
Re: VMware and x86 virtualization
Hardware Assisted Virtualization:
Hard ware vendors are rapidly embracing virtualization and developingn ew features to simplify virtualization techniques. First generation enhancements include Intel Virtualization Technolog y (VT-x) and AMD ’s
AMD-V which both target privileged instructions with a new CPU execution
mode feature that allows the VMM to run in a new root mode below ring 0. As depicted in Figure , privileged and sensitiv e calls are set to automatically trap to the hypervisor ( Hyper-V and Networking ), removing the need for either binary translation or paravirtualization . The guest state is stored in Virtual Machine Control Structures (VT-x) or virtualization Virtual Machine Control Blocks (AMD-V).
Processors with Intel VT and AMD-V became available in 2006, so only newer system s contain these hardware assist features.
To run multiple virtual machines on a single system , another level of memory virtualization is required.In other words, one has to virtualize the MMU to sup port the guest OS. The guest OS continues to control the mapping of virtual addresses to the guest memory physical addresses, but the guest OS cannot have direct access to the actual machine memory.The VMM is responsible for mapping guest physical memory to the actual machine memory, and it uses shadow page tables to accelerate the mappings.
As depicted by the red line in Figure, the VMM uses TLB hardwa re to map the virtual memory directly to the machine memory to a void the two levels of translation on every access. When the guest OS changes the virtual memory to physical memory mapping, the VMM updates the shadow page
tables to enable a direct look up. MMU virtualization creates some overhead for all virtualization approaches, but this is the area where second generation hardware assisted virtualization will of fer efficiency gains.
Device and I/O Virtualization:
The final component required beyond CPU and memory virtualization is device an d I/ O virtualization .
This involves managing the routing of I/O requests between virtual devices and the shared physical hardware. Software based I/ O virtualization and management, in contrast to a direct pass-through to the hardware, enables a rich set of features and simplified management. With networking for example, virtual NICs and switches create virtual networks between virtual machines without the network traffic consuming bandwidth on the physical network, NIC teaming allows multiple physical NICS to appear as one and fail over transparently for virtual machines, and virtual machines can be seamlessly relocated to different systems using VMotion while keeping their existing MAC addresses. The key to effective I/O virtualization is to preserve these virtualization benefits while keeping the add ed CPU utilization to a minimum .
|Tags: amd, virtualization, windows, x86|
|Thread Tools||Search this Thread|
|Similar Threads for: "VMware and x86 virtualization"|
|Thread||Thread Starter||Forum||Replies||Last Post|
|VMware workstation 8 for windows- full screen VMware player||Benedykt||Windows Software||3||24-09-2011 10:22 PM|
|Cannot access vmware-host after upgrading windows7 and vmware fusion3.0||prem11||Windows Software||11||14-09-2011 11:52 PM|
|BackTrack - Installing vmware-tools in vmware-fusion||SoftWore||Tips & Tweaks||1||12-05-2010 03:25 PM|
|Install VMware virtualization on your mobile phones||Gluteus||Portable Devices||2||21-11-2008 08:15 PM|