To virtualize operating systems, a series of approaches is applied. They can be divided by implementation type into software and hardware ones.
Let’s consider each of these types of virtualization separately. Let’s start with software methods.
Dynamic translation implies the interception of the commands of the guest operating system, as a result of which the hypervisor modifies and returns them to the guest OS. Thus, the guest operating system actually becomes one of the applications of the main operating system from which it is running. The guest system actually believes that it is running on a real physical platform.
Paravirtualization is a virtualization technology in which guest operating systems are prepared for execution in a virtualized environment, for which their kernel is slightly modified. The operating system interacts with the hypervisor program, which provides it with a guest API. This is done so that different virtual machines could work with the hardware without conflicting with other virtual machines. The method of paravirtualization allows you to achieve higher performance than the method of dynamic translation.
The main disadvantage of this method is that it is applicable only if guest operating systems have open source code that can be modified according to the license. Alternatively, the hypervisor and the guest operating system are developed by one manufacturer, taking into account the possibility of paravirtualizing the guest system (although under the condition that a hypervisor of a lower level can be launched under the hypervisor, the hypervisor itself may also be paravirtualized).
The main advantage of this method is the absence of the necessity to use a full-fledged operating system as the main one, it is enough to use a special system (hypervisor). And, as a consequence, hardware resources are used by virtual environments more efficiently, since they actually work directly, practically without mediation of the main operating system.
In the case of full virtualization, unmodified instances of guest operating systems are used. In order to support the operation of these guest systems, a common emulation layer is used on top of the main operating system. This technology is used in such applications as VMware Workstation, Parallels Desktop, MS Virtual PC, Virtual Iron.
The main advantage of this method of virtualization is that its relatively easy to implement. This solution is quite reliable and versatile. All the management functions are assumed by the main operating system. In addition to benefits, there are disadvantages. Among them, there are high additional load on hardware resources and rather weak flexibility in the use of hardware.
In-band virtualization is a new method, based on the use of hardware-supported virtualization capabilities, which allows users to use any OS version in combination with various working environments. In fact, the in-band virtualization is a complete virtualization implemented at the hardware level. This approach was implemented within the framework of the BlueStacks Multi-OS project.
The most common form of virtualization at the moment is the virtualization of the operating system. A virtual operating system is a combination of several operating systems that operate on the same hardware basis. The main advantage of this method is the high efficiency of using hardware resources. Schematically, the principle of operation is shown in Figure 3.
The result of application virtualization is the conversion from an application that needs to be installed in the operating system to a standalone application that doesn’t require installation. The virtualization software determines when the virtualized application installs the operating system components that it needs and then emulates them. As a result of these actions, a specialized environment is created for a specific application, which ensures complete isolation of the running application.
To create such an application, the virtualized software is placed in a special folder. When the virtual application starts, the software itself and the folder that is the working environment for it are launched. Thus, a certain barrier is created between the application and the operating system, which eliminates the occurrence of conflicts between the software and the operating system. Applications such as Citrix XenApp, SoftGrid and VMWare ThinApp implement virtualization.
The classic process of software virtualization involves the presence of the main operating system on top of which the virtualization platform is launched. It is this platform that takes care of emulating hardware components and manages resources for the guest system.
These methods are quite difficult to implement. Their main disadvantage is the significant loss of productivity associated with the consumption of resources by the main system. It is also important to note the fact of a significant decrease in security. Given that after gaining control over the underlying operating system, the control over guest systems is automatically intercepted. As distinguished from software methods, with the help of hardware virtualization it is possible to obtain isolated guest systems managed directly by the hypervisor.
He hardware process of virtualization has practically no profound differences from the software virtualization. In fact, this is a virtualization process backed up by hardware support.
Consideration should be given to the main types of virtualization of various components of the IT infrastructure.
When it comes to virtualization of resources, we mean the separation of one physical server into several of them. Each individual part is displayed to the user as a separate server. This method is implemented at the operating system kernel level. The main advantage of this method is the fact that virtual servers operating at the level of the operating system kernel are just as fast. It allows running hundreds of virtual servers on one physical server.
An example of implementation of resource sharing is the OpenSolaris Network Virtualization and Resource Control project, which allows creating several virtual network interfaces based on a single physical one.
Also, this process involves merging, distribution and pooling of resources. For example, symmetric multiprocessor systems combine multiple processors; RAID and disk managers combine many disks into one large logical drive. Often, this subtype also includes network file systems abstracted from the data stores on which they are built (Vmware VMFS, Solaris / OpenSolaris ZFS, NetApp WAFL).