Virtualization refers to the methods, which allow a computer’s resources to split. The term Virtualization is used differently in many different applications. There are many concepts and technologies in the field of hardware and software that use this term Virtualization.
The primary goal of Virtualization is to provide the user with an abstraction layer from the actual hardware isolated – computing power and storage space. A logical layer is introduced between the user and resource in order to hide the physical characteristics of the hardware. It is each user is shown that he is the sole user of a resource is / are joined to several (heterogeneous) hardware resources into a homogeneous environment. The user of the invisible, transparent management of the resource is usually the job of the operating system.
Virtualization software can be used for several purposes, eg to simulate an operating system or just an application. Classification of approaches to virtualization to create virtual environments in the overall context of virtualization. More on Virtualization Software.
Operating System OS virtualization using container
Approach of ‘OS containers’ for the creation of virtual environments : With virtualization run at the OS level, virtually within a closed container provided, no additional operating system is used, which means that it is not possible another OS to run as the host system. The OS containers represent a subset of the host operating system. The advantage of this approach is the good integration of the containers in the guest operating system. The disadvantage of this approach lies in the containers. From the containers, no other driver is loaded and the kernel is loaded. When the OS virtualization contains only one host kernel there is a special user-mode kernel under the control of the host kernel.
System Virtualization using Virtual Machine Monitor (VMM)
Approach of a virtual machine monitor (VMM) to create virtual operating environments : With virtualization using a virtual machine monitor (hypervisor), the waiting native (= real physically available) system is distributed intelligently. This can be done by hardware emulation, hardware virtualization or paravirtualization. Each guest systems in each case has its own complete computer with all the hardware components ( processor , disk drives , memory , etc.) made up a system. The advantage is that in the operating systems themselves (almost) no changes are necessary and the guest operating systems all have their own kernel, which entails a degree of flexibility.
Examples: VMware Workstation , Microsoft Virtual PC , VirtualBox , Parallels Workstation .
Hardware emulation (misleadingly called full virtualization)
The virtual machine simulates the complete hardware and allows an unmodified operating system that is designed for a different CPU, operation.
Examples: Bochs (in this simulation instead of emulation), PPC version of Microsoft Virtual PC , QEMU .
Hardware virtualization (native virtualization, full virtualization)
The virtual machine guest operating system provides the only parts of the physical hardware in the form of virtual hardware. This is sufficient, however, to run an unmodified operating system on it in an isolated environment. The host system must be on the same CPU type to be designed.
Examples: VMware , x86-based version of Microsoft Virtual PC , KVM , Xen 3.0 on processors with hardware virtualization technology Intel VT-x or AMD Pacifica.
In paravirtualization, while an additional operating system is started virtually as new, but no hardware virtualized or emulated, but the virtually started operating systems use an abstract management layer in order to shared resources (network connections, disk space, User or used in) access. The operating system needs to be able to be ported to run on the virtual machine (VM), which can reject the owners of proprietary operating systems for strategic reasons. The port, however, simplifies the structure of the VM and allows their virtual machines to improve performance. VMware or XEN also used the VMI interface that acts as a “mouthpiece” between the virtualization layer and host operating system.
Examples: Red Hat Fedora 5 with Xen 3.0 , SUSE Linux Enterprise Server with Xen or VMware ESX 3.5 Update 1 as, Citrix XenServer , KVM , PikeOS real-time operating system for embedded systems.
Application virtualization (application virtualization) is the local performing desktop and server applications, without requiring them to be installed. The virtualized application to a virtual environment is generated that contains all the registry entries, files and other components needed to run the program. This virtual environment acts as a buffer layer between the application and the operating system and avoids conflicts with other applications or the operating system.
Examples: Microsoft Application Virtualization (formerly SoftGrid) , Citrix Application Streaming , VMware ThinApp , Novell ZENworks Application Virtualization, Altiris SVS, Thinstall VS , Sandboxie , Evalaze, Cameyo, Ceedo.
In case of Hardware Virtualization, either the whole system (partitioning with LPAR , Domaining) or individual components such as CPU ( Intel’s Vanderpool or AMD’s Pacifica ) are virtualized.
When the system or operating system virtualization, the virtual machine monitor received commands from host systems (virtual machines) to be executed on the native hardware. Before the introduction of processor virtualization had to be modified in certain (possibly safety-critical) instructions, which were from the host system via the Virtual Machine Monitor sent to the hardware.
Through virtualization, the processor from AMD and Intel can usecommands without modifying the virtual machine monitor to be sent directly to the processor. The processor takes care of itself for the distinction between the guest system processes and VMM processes. By eliminating the modifications of the VMM, a higher performance is achieved.