Chapter 2 (1)
Chapter 2 (1)
Virtualization
Virtualization
• Virtualization allows the creation of a secure, customizable, and isolated execution
environment for running applications, even if they are untrusted, without affecting
other users’ applications.
• Virtualization is a large umbrella of technologies and concepts that are meant to
provide an abstract environment—whether virtual hardware or an operating system—to
run applications.
• Virtualization technologies have gained renewed interested recently due to the
confluence of several phenomena:
• Increased performance and computing capacity.
• Underutilized hardware and software resources.
• Lack of space
• Greening initiatives.
• Rise of administrative costs
Characteristics of virtualized environments
Increased security
• Increased security is a requirement when
dealing with untrusted code.
• For example,applets downloaded from the
Internet run in a sandboxed3 version of the
Java Virtual Machine(JVM), which provides
them with limited access to the hosting
operating system resources. Both the JVM and
the .NET runtime provide extensive security
policies for customizing the execution
environment of applications
Managed execution
• Virtualization of the execution environment not only allows increased security, but a wider range of features
also can be implemented.
• Sharing, aggregation, emulation, and isolation are them most relevant features
• Sharing. Virtualization allows the creation of a separate computing environments within the same host.
• Aggregation. Not only is it possible to share physical resource among several guests, but virtualization also
allows aggregation, which is the opposite process.
• Emulation. Guest programs are executed within an environment that is controlled by the virtualization layer,
which ultimately is a program. This allows for controlling and tuning the environment that is exposed to
guests.
• Isolation. Virtualization allows providing guests—whether the yare operating systems, applications, or other
entities—with a completely separate environment, in which they are executed.
Portability
• portability allows having your own system always with you and ready to use as long as the
required virtual machine manager is available.
• This requirement is, in general, less stringent than having all the applications and services you
need available to you anywhere you go.
Implementation Levels of
Virtualization.
• Virtualization is not that
easy to implement.
• A computer runs an OS that
is configured to that
particular hardware.
• Running a different OS on
the same hardware is not
exactly feasible.
• To tackle this, there exists a
hypervisor.
Instruction Set Architecture
Level (ISA)
• ISA virtualization can work through ISA emulation.
• This is used to run many legacy codes that were written for a different
configuration of hardware.
• These codes run on any virtual machine using the ISA.
• With ISA, it is possible to make the virtual machine hardware
agnostic.
• This is one of the five implementation levels of virtualization in cloud
computing.
Hardware Abstraction Level
(HAL)
• At this level, the virtual machine is formed, and this manages the
hardware using the process of virtualization.
• Multiple users will not be able to use the same hardware and also use
multiple virtualization instances at the very same time.
• This is mostly used in the cloud-based infrastructure.
Operating System Level
• At the level of the operating system, the virtualization model is
capable of creating a layer that is abstract between the operating
system and the application.
• This is an isolated container that is on the operating system and the
physical server, which makes use of the software and hardware.
Library Level
• The operating system is cumbersome, and this is when the
applications make use of the API that is from the libraries at a user
level.
Application Level
• This is generally used when you run virtual machines that use high-
level languages.
• The application will sit above the virtualization layer, which in turn sits
on the application program.
• It lets the high-level language programs compiled to be used in the
application level of the virtual machine run seamlessly.
Full Virtualization
• In this, the guest OS is fully isolated
using the virtual machine from the
virtualization layer and hardware.
• Examples of full virtualization include
Microsoft and Parallels systems.
• The virtual machine permits the
execution of the instructions in
addition to running the unmodified
OS in a completely isolated method.
• It is considered to be less secure in
comparison to paravirtualization.
Paravirtualization
• Here, the guest OS isn't isolated fully,
but is partially isolated from the
virtualization layer and hardware
with the help of the virtual machine.
• Examples of paravirtualization
include VMware and Xen.
• The virtual machine doesn't
implement full isolation of OS.
• It just provides a different API that
can be utilized when the OS is
subjected to changes.
Difference between Full Virtualization and
Paravirtualization:
S.No. Full Virtualization Paravirtualization
In paravirtualization, virtual machine does not
In Full virtualization, virtual machine permit the
implement full isolation of OS but rather provides a
1. execution of the instructions with running of
different API which is utilized when OS is subjected to
unmodified OS in an entire isolated way.
alteration.
While the Paravirtualization is more secure than the Full
2. Full Virtualization is less secure.
Virtualization.
Full Virtualization uses binary translation and While Paravirtualization uses hypercalls at compile time
3.
direct approach as a technique for operations. for operations.
Full Virtualization is slow than paravirtualization Paravirtualization is faster in operation as compared to
4.
in operation. full virtualization.
Full Virtualization is more portable and
5. Paravirtualization is less portable and compatible.
compatible.
Examples of full virtualization are Microsoft and
6. Examples of paravirtualization are VMware and Xen.
Parallels systems.
A taxonomy of virtualization
techniques
3.3.1 Execution virtualization
Cons of Virtualization :
7. Data can be at Risk –
8. Learning New Infrastructure –
9. High Initial Investment –