The term Virtualization means the creation of a virtual computational resource which normally supplied physically as a hardware platform with an operating system and a storage device or a network resource. The operating system of a computer provides a separation between the physical resources available and their use by the user, through the creation of the logical components to a higher abstraction layer. Virtualization operates a function logically similar, constructing a plurality of logical perspectives on physical resources, each of which can be used to interact with a particular user as needed. Virtualization constructs an isomorphism between the virtual and the real system.
In the perspective of resources, virtualization creates a plurality of logical subsets of the full set of available physical resources (CPU, memory, network ). The user perceives and uses only the abstractions provided by the virtualization layer, ignoring the details of the resources.
Hypervisor based virtualization and non hypervisor based virtualization
The software component that provides the interface for the virtual machine with the platform on which it resides is called a virtual machine monitor or hypervisor. There are two basic types:
Type I Hypervisor : The hypervisor runs directly on the hardware, allowing direct control to provide virtualization capabilities. It identifies a layer of separation between the operating system and the physical platform. A good example is Microsoft Hyper-V. The hypervisor provides that the execution of various operating systems in their environments and is fully isolated. One of the partitions, must include the host operating system, specifically Windows Server 2008, which is able to create child partitions daughters with their guest operating systems. These systems are directly running on the hypervisor. Another example is the open-source Xen project, which is widely used by different service providers of cloud computing.
Type II Hypervisor : The hypervisor is running on the host operating system, which in turn lies on the physical platform. It is particularly effective in situations where user want immediate access to both the host operating system (usually the user’s desktop OS) and the guest OS. It provides all supportive services for virtualization, but relies on the host system in memory management, resource allocation, scheduling and drivers. Known examples of hypervisor in this category are VMware and VirtualBox.
There are different types of virtualization, not necessarily based on hypervisor only :
Full Virtualization : The hypervisor virtualizes completely the hardware (memory, CPU, network etc.) thereby ensuring full compatibility with any operating system that supports the virtual physical infrastructure. The guest and host systems are completely isolated. The first significant example of full virtualization is represented by the operating system IBM CP-40 developed in 1967, it was able to run multiple instances of client operating systems. The aforementioned Hyper-V, VMware and VirtualBox ensure compatibility with this type of virtualization.
Hardware Assisted Virtualization : Also known hardware virtual machine (HVM) or native virtualization. This is an approach to full virtualization in extended condition, wherein the processor provides the architectural support to facilitate the construction and the hypervisor forward calls of different guest operating system directly to the physical hardware, increasing the overall performance of the system. Xen hypervisor, VMware, VirtualBox and Hyper-V are compatible with this technology.
Paravirtualization : Hypervisor does not simulate hardware, but it presents a modified interface functionally similar to the real one. The interface takes the form of a set of APIs called Virtual Hardware API, which are designed with a view to be used by a specific virtual machine. The lack of hardware emulation results in better performance, but the guest operating systems need to be reviewed to ensure compatibility with the virtual interface, identifying less flexibility in the solution. The Xen hypervisor is compatible with this approach.
Operating system level virtualization : The solution includes a host operating system shared centrally, with a suitably modified kernel. Guest operating systems, also contain containers or virtual private servers (VPS), must necessarily be of the same type host. The features are then replicated without the need to perform cumbersome system calls between the different layers. Examples of host operating systems are compatible with this type of virtualization is used on most Linux server via the support VServer or OpenVZ and Solaris.