|
|
||
|
|
|
Virtualization ExplainedVirtualization TechniquesThe various software technologies currently available offer different ways of implementing virtualization. Here we explain the most common methods of virtualization on x86 based hardware. There are essentially three different techniques currently being used for virtualization:
Full VirtualizationA technique used to provide a complete simulation of the underlying hardware. This means that all software that can run natively on the hardware can be run in the virtual machine. This means in theory all operating systems and applications. A hypervisor, also called a virtual machine monitor (VMM), controls the host processor and resources, allocating what is needed to each operating system in turn and making sure that the guest operating systems (the virtual machines) cannot disrupt each other. With full virtualization, the guest OS is not aware it is being virtualized and requires no modification. Type 1 hypervisor Type 2 hypervisor Embedded hypervisor
Para-virtualizationAlso known as OS assisted virtualization. The guest operating systems kernel is modified to replace certain instructions with hypercalls that communicate directly with the hypervisor. The para-virtualization approach can result in lower virtualization overhead. However, parts of the guest operating systems must be modified. The guest OS kernel has to have hypervisor-specific code. In essence, the guest OS "knows" it is being virtualized. An example of para-virtualization is a Xen based system.
Operating System-Level VirtualizationA technique where the kernel of an operating system allows for multiple isolated user-space instances. These instances are known as containers, Virtual Private Servers (VPSs), or Virtual Environments (VEs). This form of virtualization usually imposes little or no overhead. However, it is not as flexible as other virtualization approaches since it cannot host a guest OS that is different from the host one. For example, with Linux as the host operating system, only Linux distributions can be run as the guest operating systems. The same kernel is used for both the host operating system and all guest operating systems. An examples of OS level virtualization is OpenVZ.
|
||||||||||
|
|