Operating System Level
Operating System Level
User-Application Level
Virtualization at the application level virtualizes an application as a VM. On a traditional OS,
an application often runs as a process. Therefore, application-level virtualization is also
known as process-level virtualization. The most popular approach is to deploy high level
language (HLL) VMs. Other forms of application-level virtualization are known as application
isolation, application sandboxing, or application streaming. The process involves wrapping
the application in a layer that is isolated from the host OS and other applications. The result
is an application that is much easier to distribute and remove from user workstations
From the user’s point of view, VEs look like real servers. This means a VE has its own set of
processes, file system, user accounts, network interfaces with IP addresses, routing tables,
firewall rules, and other personal settings. Although VEs can be customized for different
people, they share the same operating system kernel. Therefore, OS-level virtualization is
also called single-OS image virtualization.
Figure 3.3 illustrates operating system virtualization from the point of view of a machine
stack.
2 Advantages of OS Extensions
All OS-level VMs on the same physical machine share a single operating system
kernel
Virtualization layer can be designed in a way that allows processes in VMs to access
as many resources of the host machine as possible
3. Disadvantages of OS Extensions
The main disadvantage of OS extensions is that all the VMs at operating system level on a
single container must have the same kind of guest operating system. That is, although
different OS-level VMs may have different operating system distributions; they must pertain
to the same operating system family
Full virtualization does not need to modify the host OS. It relies on binary translation
to trap and to virtualize the execution of certain sensitive, non virtualizable
instructions. The guest OS and their applications consist of noncritical and critical
instructions.
In a host-based system, both a host OS and a guest OS are used. A virtualization
software layer is built between the host OS and guest OS.
Full Virtualization
With full virtualization, noncritical instructions run on the hardware directly while
critical instructions are discovered and replaced with traps into the VMM to be
emulated by software. Both the hypervisor and VMM approaches are considered full
virtualization.
This approach was implemented by VMware and many other software companies.
As shown in Figure 3.6,
VMware puts the VMM at Ring 0 and the guest OS at Ring 1. The VMM scans the
instruction stream and identifies the privileged, control- and behavior-sensitive
instructions. When these instructions are identified, they are trapped into the VMM,
which emulates the behavior of these instructions. The method used in this
emulation is called binary translation.
Therefore, full virtualization combines binary translation and direct execution. The
guest OS is completely decoupled from the underlying hardware. Consequently, the
guest OS is unaware that it is being virtualized
Host-Based Virtualization
An alternative VM architecture is to install a virtualization layer on top of the host OS. This host OS is still
responsible for managing the hardware. The guest OS are installed and run on top of the virtualization layer.
Dedicated applications may run on the VMs. Certainly, some other applications can also run with the host OS
directly This host based architecture has some distinct advantages,
First, the user can install this VM architecture without modifying the host OS.
Second, the host-based approach appeals to many host machine configurations
The traditional x86 processor offers four instruction execution rings: Rings 0, 1, 2, and 3. The
lower the ring number, the higher the privilege of instruction being executed. The OS is
responsible for managing the hardware and the privileged instructions to execute at Ring 0,
while user-level applications run at Ring 3.
1. Para-Virtualization Architecture
According to the x86 ring definition, the virtualization layer should also be installed
at Ring 0. Different instructions at Ring 0 may cause some problems. In Figure 3.8,
we show that para-virtualization replaces nonvirtualizable instructions with
hypercalls that communicate directly with the hypervisor or VMM. However, when
the guest OS kernel is modified for virtualization, it can no longer run on the
hardware directly.