Understanding Virtualization in Cloud Computing
Understanding Virtualization in Cloud Computing
Unit-3: Virtualizations
Introduction to Virtualization
Virtualization technology is one of the fundamental components of cloud computing, especially
in regard to infrastructure-based services. 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. The basis of this technology is the ability
of a computer program—or a combination of software and hardware—to emulate an executing
environment separate from the one that hosts such programs.
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.
The term virtualization is often synonymous with hardware virtualization, which plays a
fundamental role in efficiently delivering Infrastructure-as-a-Service (IaaS) solutions for cloud
computing. In fact, virtualization technologies have a long trail in the history of computer science
and have been available in many flavors by providing virtual environments at the operating system
level, the programming language level, and the application level. Moreover, virtualization
technologies provide a virtual environment for not only executing applications but also for
storage, memory, and networking.
Virtualization is technology that you can use to create virtual representations of servers, storage,
networks, and other physical machines. Virtual software mimics the functions of physical
hardware to run multiple virtual machines simultaneously on a single physical machine.
Businesses use virtualization to use their hardware resources efficiently and get greater returns
from their investment. It also powers cloud computing services that help organizations manage
infrastructure more efficiently.
Before virtualization, the single physical infrastructure was used to run a single OS and its
applications, which results in underutilization of resources. The nonshared nature of the
hardware forces the organizations to buy a new hardware to meet their additional computing
needs. For example, if any organization wants to experiment or simulate their new idea, they have
to use separate dedicated systems for different experiments. So, to complete their research work
successfully, they tend to buy a new hardware that will increase the CapEx and OpEx. Sometimes,
if the organization does not have money to invest more on the additional resources, they may not
be able to carry out some valuable experiments because of lack of resources. So, people started
thinking about sharing a single infrastructure for multiple purposes in the form of virtualization.
The computing scenarios before and after virtualization are shown in following figures.
After virtualization was introduced, different OSs and applications were able to share a single
physical infrastructure. The virtualization reduces the huge amount invested in buying additional
resources. The virtualization becomes a key driver in the IT industry, especially in cloud
computing. Generally, the terms cloud computing and virtualization are not same.
Advantages of virtualization
Drawbacks of Virtualization
• Single Point of Failure: If the physical server or hypervisor hosting multiple VMs fails, all
virtualized workloads are affected.
Example: A company’s entire virtualized web server cluster goes offline due to a single
hardware failure, causing website downtime.
• Demands High-End and Powerful Infrastructure: Virtualization requires robust
hardware (e.g., high CPU, RAM, and storage) to support multiple VMs without
performance issues.
Example: A small business struggles to virtualize its workloads because its outdated
servers lack the power to handle multiple VMs efficiently.
• May Lead to Lower Performance: The hypervisor introduces overhead, and
overprovisioning VMs can cause resource contention, reducing performance.
Example: A virtualized database server slows down because too many VMs on the same
host compete for CPU and memory resources.
• Requires Specialized Skill Set: Managing virtualized environments demands expertise in
hypervisors, networking, and security, which may require training or hiring.
Example: A company faces delays in virtualization deployment because its IT staff lacks
experience with VMware ESXi or Kubernetes.
⎯ Such a general abstraction finds different applications and then implementations of the
virtualization technology. The most intuitive and popular is represented by hardware
virtualization, which also constitutes the original realization of the virtualization concept.
⎯ In the case of hardware virtualization, the guest is represented by a system image
comprising an operating system and installed applications. These are installed on top of
virtual hardware that is controlled and managed by the virtualization layer, also called
the virtual machine manager.
⎯ The host is instead represented by the physical hardware, and in some cases the operating
system, that defines the environment where the virtual machine manager is running.
⎯ In the case of virtual storage, the guest might be client applications or users that interact
with the virtual storage management software deployed on top of the real storage system.
⎯ The case of virtual networking is also similar: The guest— applications and users—
interacts with a virtual network, such as a virtual private network (VPN), which is managed
by specific software (VPN client) using the physical network available on the node. VPNs
are useful for creating the illusion of being within a different physical network and thus
accessing the resources in it, which would otherwise not be available
The main common characteristic of all these different implementations is the fact that the virtual
environment is created by means of a software program. The ability to use software to emulate
such a wide variety of environments creates a lot of opportunities, previously less attractive
because of excessive overhead introduced by the virtualization layer. The technologies of today
allow profitable use of virtualization and make it possible to fully exploit the advantages that
come with it. Such advantages have always been characteristics of virtualized solutions.
⎯ Increased security
⎯ Managed execution
⎯ Portability
Managed execution: Virtualization of the execution environment not only allows increased
security, but a wider range of features also can be implemented. In particular, sharing,
aggregation, emulation, and isolation are the most relevant features as illustrated in following
figure.
Virtualization, driven by software like hypervisors, enables a wide range of features beyond
security, including sharing, aggregation, emulation, isolation, and performance tuning. These
characteristics allow efficient resource utilization, unified resource pools, support for diverse
environments, secure and stable execution, and optimized performance. They are critical to
applications in cloud computing, data centers, software testing, and legacy system support,
making virtualization a cornerstone of modern IT infrastructure. The main functions enabled by
managed execution are described below:
➢ Enables efficient use of CPU, memory, and storage by distributing them across
multiple guests.
Example: A data center uses VMware ESXi to run 20 VMs on a single high-performance
server, each hosting different applications, instead of deploying 20 separate physical
servers, thus maximizing resource utilization and reducing energy costs.
Example: A Kubernetes cluster aggregates the CPU and memory of 10 physical nodes into
a single virtual resource pool, allowing a containerized application to scale seamlessly
across the cluster as if it were a single machine.
Example: VirtualBox emulates a SCSI controller for a VM, allowing a legacy application to
run without requiring the host to have physical SCSI hardware. Alternatively, an arcade-
game emulator like MAME runs old arcade games on a modern PC by emulating the
original hardware.
4. Isolation: Virtualization provides each guest (e.g., OS, application) with a separate
execution environment, interacting only with an abstraction layer (e.g., hypervisor) that
controls access to underlying resources. This isolation ensures that guests do not interfere
with each other or the host, enhancing security and stability by filtering harmful
operations.
Example: In Microsoft Azure, multiple customer VMs run on the same physical server
using Hyper-V, but each VM is fully isolated, ensuring that a crash or security breach in
one VM does not affect others or the host.
Example: A Xen Hypervisor limits a VM to 4GB of RAM and 2 CPU cores to ensure other
VMs on the same host have sufficient resources. Alternatively, Xen migrates a running VM
from one server to another during maintenance without interrupting the guest OS.
❖ Performance tuning is vital for optimizing resource usage in data centers and ensuring
consistent application performance in cloud environments.
Portability: Portability refers to the ability to move a virtualized environment (e.g., a virtual
machine, container, or application) from one host or platform to another and execute it without
significant modifications. This is achieved by encapsulating the guest system (OS, applications,
configurations) into a self-contained unit, such as a virtual image or binary code, which can be
run on compatible virtualization software. Portability simplifies deployment, enhances flexibility,
and allows users to carry their systems or applications across different environments, provided
the required virtualization software (e.g., hypervisor or runtime) is available.
The concept of portability applies in different ways according to the specific type of virtualization
considered.
o VMs are encapsulated in virtual images that can be moved across hypervisors
of the same type or converted to compatible formats (e.g., using tools like
VMware Converter or OVF (Open Virtualization Format)).
▪ Container Portability:
▪ Application Portability:
Processor virtualization allows the VMs to share the virtual processors that are abstracted from
the physical processors available at the underlying infrastructure. The virtualization layer
abstracts the physical processor to the pool of virtual processors that is shared by the VMs. The
virtualization layer will be normally any hypervisors. Processor virtualization from a single
hardware is illustrated in following figure. But processor virtualization can also be achieved from
distributed servers.
B. Memory Virtualization
C. Storage Virtualization
Storage virtualization is a form of resource virtualization where multiple physical storage disks are
abstracted as a pool of virtual storage disks to the VMs. Normally, the virtualized storage will be
called a logical storage. Storage virtualization is mainly used for maintaining a backup or replica
of the data that are stored on the VMs. It can be further extended to support the high availability
of the data. It can also be achieved through the hypervisors. It efficiently utilizes the underlying
physical storage. The other advanced storage virtualization techniques are storage area networks
(SAN) and network-attached storage (NAS). Following figure illustrates the process of storage
virtualization.
D. Network Virtualization
Network virtualization is a type of resource virtualization in which the physical network can be
abstracted to create a virtual network. Normally, the physical network components like router,
switch, and Network Interface Card (NIC) will be controlled by the virtualization software to
provide virtual network components. The virtual network is a single software-based entity that
contains the network hardware and software resources. Network virtualization can be achieved
from internal network or by combining many external networks. The other advantage of network
virtualization is it enables the communication between the VMs that share the physical network.
There are different types of network access given to the VMs such as bridged network, network
address translation (NAT), and host only. The concept of network virtualization is illustrated in
following figure.
E. Data Virtualization
Data virtualization is the ability to retrieve the data without knowing its type and the physical
location where it is stored. It aggregates the heterogeneous data from the different sources to a
single logical/virtual volume of data. This logical data can be accessed from any applications such
as web services, E-commerce applications, web portals, Software as a Service (SaaS) application,
and mobile application. Data virtualization hides the type of the data and the location of the data
for the application that access it. It also ensures the single point access to data by aggregating
data from different sources. It is mainly used in data integration, business intelligence, and cloud
computing. The figure below represents data virtualization technology.
F. Application Virtualization
Application virtualization is the enabling technology for SaaS of cloud computing. The application
virtualization offers the ability to the user to use the application without the need to install any
software or tools in the machine. Here, the complexity of installing the client tools or other
supported software is reduced. Normally, the applications will be developed and hosted in the
central server. The hosted application will be again virtualized, and the users will be given the
separated/isolated virtual copy to access. The concept of application virtualization is illustrated
in following figure.
Approaches to Virtualization
There are different approaches to virtualization. Before discussing them, it is important to know
about protection rings in OSs. Protection rings are used to isolate the OS from untrusted user
applications. The OS can be protected with different privilege levels. In protection
ring architecture, the rings are arranged in hierarchical order from ring 0 to ring 3 as shown in
following figure.
Ring 0 contains the programs that are most privileged, and ring 3 contains the programs that are
least privileged. Normally, the highly trusted OS instructions will run in ring 0, and it has
unrestricted access to physical resources. Ring 3 contains the untrusted user applications, and
it has restricted access to physical resources. The other two rings (ring 1 and ring 2) are allotted
for device drivers. This protection ring architecture restricts the misuse of resources and
malicious behavior of untrusted user-level programs. For example, any user application from
ring 3 cannot directly access any physical resources as it is the least privileged level. But the kernel
of the OS at ring 0 can directly access the physical resources as it is the most privileged level.
Depending on the type of virtualization, the hypervisor and guest OS will run in different privilege
levels. Normally, the hypervisor will run with the most privileged level at ring 0, and the guest OS
will run at the least privileged level than the hypervisor.
1. Full virtualization
2. Paravirtualization
3. Hardware-assisted virtualization
4. Partial virtualization
Full Virtualization
Full virtualization refers to the ability to run a program, most likely an operating system, directly
on top of a virtual machine and without any modification, as though it were run on the raw
hardware. To make this possible, virtual machine manager are required to provide a complete
emulation of the entire underlying hardware.
In full virtualization, the guest OS is completely abstracted from the under lying infrastructure.
The virtualization layer or virtual machine manager (VMM) fully decouples the guest OS from the
underlying infrastructure. The guest OS is not aware that it is virtualized and thinks it is running
on the real hardware. In this approach, the hypervisor or VMM resides at ring 0 and provides all
the virtual infrastructures needed for VMs.
The guest OS resides at ring 1 and has the least privilege than the hyper visor. Hence, the OS
cannot communicate to the physical infrastructure directly. It requires the help of hypervisors to
communicate with the underlying infrastructure. The user applications reside at ring 3, as shown
in above figure. This approach uses binary translation and direct execution techniques. Binary
translation is used to translate nonvirtualized guest OS instructions with new sequences of
instructions that have the same intended effect on the virtual infrastructure. On the other hand,
direct execution is used for user application requests where the applications can directly access
the physical resources without modifying the instructions.
• Unmodified Guest OS: The guest OS requires no changes, making it compatible with
proprietary or unmodified OSes (e.g., Windows, Linux).
• Complete Hardware Emulation: The hypervisor emulates all hardware components (CPU,
memory, storage, network, I/O devices), creating a virtual environment indistinguishable
from physical hardware.
• Isolation: The guest OS and applications are fully decoupled from the physical
infrastructure, enhancing security and isolation.
o Runs multiple unmodified OSes (e.g., Windows, Ubuntu) in VMs, each with fully
emulated hardware, used in enterprise data centers.
o Provides full virtualization for Windows and Linux guests, emulating virtual CPUs,
disks, and networks, used in Azure and on-premises servers.
• This approach provides the best isolation and security for the VMs.
• Different OSs can run simultaneously.
• The virtual guest OS can be easily migrated to work in native hardware.
• It is easy to install and use and does not require any change in the guest OS.
Paravirtualization
This is a not-transparent virtualization solution that allows implementing thin virtual machine
managers. Paravirtualization techniques expose a software interface to the virtual machine that
is slightly modified from the host and, as a consequence, guests need to be modified. The aim of
paravirtualization is to provide the capability to demand the execution of performance-critical
operations directly on the host, thus preventing performance losses that would otherwise be
experienced in managed execution.
The main difference between the full virtualization and paravirtualization is the guest OS knows
that it is running in virtualized environment in paravirtualization. But in full virtualization, this
information is not known to the guest OS. Another difference is that the paravirtualization
replaces the translation of nonvirtualized OS requests with hypercalls. Hypercalls are similar to
system calls and used for the direct communication between OS and hypervisor. This direct
communication between the guest OS and hypervisor improves performance and efficiency. In
full virtualization, the guest OS will be used without any modification. But in paravirtualization,
the guest OS needs to be modified to replace nonvirtualizable instructions with the hypercalls. As
shown in following figure, the modified guest OS resides at ring 0 and the user applications at ring
3. As the guest OS is at privileged position, it can communicate directly to the virtualization layer
without any translation by means of hypercalls. Like in full virtualization, the user applications are
allowed to access the underlying infrastructure directly.
Figure: Paravirtualization
Examples of Paravirtualization
o Xen’s paravirtualization mode requires modified guest OSes (e.g., Linux, BSD) to
use hypercalls for operations like CPU scheduling or memory management.
Advantages of paravirtualization
• It eliminates the additional overhead of binary translation and hence improves the
overall system efficiency and performance.
• It is easier to implement than full virtualization as there is no need for special
hardware
Disadvantages of paravirtualization
Hardware-Assisted Virtualization
This term refers to a scenario in which the hardware provides architectural support for building
a virtual machine manager able to run a guest operating system in complete isolation.
figure. Unlike the other virtualization approaches, the guest OS and the user applications are
having the same privilege level (nonroot privilege level). As discussed earlier, the hardware-
assisted virtualization technique removes binary translation and paravirtualization. Here, the OS
requests directly trap the hypervisor without any translation. As in other virtualization
approaches, the user requests are directly executed without any translation.
• Hardware Support: CPU vendors like Intel and AMD provide extensions (e.g., Intel VT-x,
AMD-V) to facilitate virtualization directly in hardware.
• Isolation: Guests are fully isolated from the host and each other, leveraging hardware-
enforced privilege levels.
o Leverages Intel VT-x or AMD-V to run unmodified Windows and Linux VMs with
near-native performance, used in enterprise data centers.
o Uses VT-x or AMD-V to provide full virtualization for unmodified guests in Azure
or on-premises servers.
o Integrates with Linux and uses VT-x/AMD-V to run unmodified OSes, popular in
open-source cloud environments.
Partial virtualization
Partial virtualization provides a partial emulation of the underlying hard ware, thus not allowing
the complete execution of the guest operating system in complete isolation. Partial virtualization
allows many applications to run transparently, but not all the features of the operating system
can be supported, as happens with full virtualization. An example of partial virtualization is
address space virtualization used in time-sharing systems; this allows multiple applications and
users to run concurrently in a separate memory space, but they still share the same hardware
resources (disk, processor, and network). Historically, partial virtualization has been an important
milestone for achieving full virtualization, and it was implemented on the experimental IBM
M44/44X. Address space virtualization is a common feature of contemporary operating systems.
• Modern OSes like Linux and Windows use address space virtualization to isolate
processes. Each process operates in its own virtual memory space, mapped to physical
memory by the OS’s memory management unit (MMU).
• Example: A Python script and a database server run on the same Linux machine, each in
its own virtual address space, sharing the CPU and disk but isolated in memory.
• Example: A Windows game runs on Ubuntu via Wine, using virtualized memory and API
calls but relying on the Linux kernel for hardware access.
• Partial Emulation: Only specific hardware components (e.g., memory, CPU) are
virtualized, not the entire system (e.g., I/O devices, interrupts).
• Limited Isolation: Guests share some hardware resources, reducing the level of isolation
compared to full virtualization.
• Transparency for Applications: Many applications can run without modification, but not
all OS features (e.g., kernel-level operations) are supported.
• Resource Sharing: Guests typically share resources like disk, processor, and network,
managed by the host OS or virtualization layer.
• Lightweight: Requires less overhead than full virtualization, as it leverages the host OS or
minimal virtualization layers.
• Resource Efficiency: Shares hardware resources, reducing the need for dedicated
systems.
• Limited OS Support: Not all guest OS features (e.g., kernel-level drivers, direct hardware
access) are supported due to partial hardware emulation.
• Dependency on Host OS: Relies on the host OS for resource management, which may
introduce compatibility or performance issues.
Introduction to Hypervisors
A hypervisor is a software that enables multiple virtual machines (VMs)—each with its own
operating system (OS)—to run on one physical server. The hypervisor pools and allocates
physical computing resources as needed by the VM, enabling efficiency, flexibility and scalability.
A hypervisor is a software that you can use to run multiple virtual machines on a single physical
machine. Every virtual machine has its own operating system and applications. The hypervisor
allocates the underlying physical computing resources such as CPU and memory to individual
virtual machines as required. Thus, it supports the optimal use of physical IT infrastructure.
The virtual environment can be created with the help of a software tool called hypervisors.
Hypervisors are the software tool that sits in between VMs and physical infrastructure and
provides the required virtual infrastructure for VMs.
Sometimes called a virtual machine monitor (VMM), the hypervisor manages VMs as they run
alongside each other. It separates VMs from each other logically, assigning each its own slice of
the underlying computing power, memory and storage. This prevents the VMs from interfering
with each other. For example, if one OS suffers a crash or a security compromise, the others
survive.
Hypervisors provide the foundation for modern virtualization practices and are crucial to
modern data center, cloud computing and desktop environments. Today, virtualization is
standard practice in enterprise IT infrastructure and is the technology that drives cloud
computing economics. Virtualization software, including hypervisors, allows cloud providers to
serve users with their existing physical computer hardware. Cloud users can purchase only the
computing resources they need—when needed—and scale those resources cost-effectively as
their workloads grow. All major cloud service providers—Amazon Web Services (AWS), Google
Cloud, IBM Cloud, Microsoft Azure—rely on virtualization technology to deliver cloud-based
services like infrastructure as a service (IaaS), software as a service (SaaS) and platform as a
service (PaaS).
The hypervisor can be defined by six logical components, each responsible for specific aspects of
virtualization. Below is a detailed explanation of each component.
1. Hypercalls Interface
• The hypercalls interface is the entry point for partitions (guest OSes or drivers) to
execute sensitive instructions by directly communicating with the hypervisor. It is a
hallmark of paravirtualization, where the guest OS is modified to use hypercalls
instead of standard hardware instructions.
• Functions:
o The parent partition (a privileged VM that manages other VMs) uses this
interface to create child partitions (regular VMs).
• Key Features:
• Example:
o The parent partition in Hyper-V uses hypercalls to create a new child partition
running Windows Server.
• MSRs are a set of functionalities that manage memory allocation and access for
partitions, leveraging hardware-assisted virtualization features like the Input/Output
Memory Management Unit (IOMMU).
• Functions:
• Key Features:
o Leverages hardware extensions (e.g., Intel VT-d, AMD-Vi) for efficient memory
management, as discussed in hardware-assisted virtualization.
• Example:
o In VMware ESXi, the hypervisor uses Intel VT-d to map a VM’s virtual memory
to a physical GPU, allowing direct access while maintaining isolation.
• The APIC component manages hardware interrupts (e.g., timer expirations, I/O
completions, exceptions) and dispatches them to virtual processors in partitions.
• Function:
o The hypervisor intercepts physical interrupts from hardware and routes them
to the appropriate SynIC in a VM, ensuring proper event handling.
• Key Features:
• Example:
o In Hyper-V, a Windows VM’s virtual processor receives a timer interrupt via its
SynIC, triggered by the hypervisor when a physical timer expires.
o Xen uses SynIC to route a network I/O interrupt to a paravirtualized Linux VM,
ensuring timely packet processing.
4. Scheduler
• Function:
• Key Features:
o Critical for performance tuning, enabling Quality of Service (QoS) and Service-
Level Agreements (SLAs).
• Example:
o In KVM, the scheduler prioritizes a database VM’s vCPUs during peak query
loads, allocating more CPU time than a low-priority monitoring VM.
5. Address Manager
• The address manager handles the allocation and management of virtual network
addresses for guest OSes, ensuring proper network communication in virtualized
environments.
• Functions:
o Manages network traffic routing between VMs, the host, and external
networks, often integrating with virtual switches or software-defined
networking (SDN).
• Key Features:
• Example:
o VMware NSX, integrated with ESXi, uses the address manager to create
isolated virtual networks for different customer VMs in a data center.
6. Partition Manager
• Function:
o Provides services through the hypercalls interface API, allowing the parent
partition to create or manage child partitions.
• Key Features:
• Example:
o In Hyper-V, the parent partition uses the partition manager to create a new
child partition running Ubuntu, configuring it with 4 vCPUs and 8GB RAM.
➢ Hypercalls interface. This is the entry point for all the partitions for the execution of
sensitive instructions. This is an implementation of the paravirtualization approach.
This interface is used by drivers in the partitioned operating system to contact the
hypervisor using the standard Windows calling convention. The parent partition also
uses this interface to create child partitions.
➢ Memory service routines (MSRs). These are the set of functionalities that control the
memory and its access from partitions. By leveraging hardware-assisted virtualization,
the hypervisor uses the Input/Output Memory Management Unit (I/O MMU or
IOMMU) to fast-track access to devices from partitions by translating virtual memory
addresses.
➢ Advanced programmable interrupt controller (APIC). This component represents the
interrupt controller, which manages the signals coming from the underlying hardware
when some event occurs (timer expired, I/O ready, exceptions and traps). Each virtual
processor is equipped with a synthetic interrupt controller (SynIC), which constitutes
an extension of the local APIC. The hypervisor is responsible of dispatching, when
appropriate, the physical interrupts to the synthetic interrupt controllers.
➢ Scheduler. This component schedules the virtual processors to run on available
physical processors. The scheduling is controlled by policies that are set by the parent
partition.
➢ Address manager. This component is used to manage the virtual network addresses
that are allocated to each guest operating system.
➢ Partition manager. This component is in charge of performing partition creation,
finalization, destruction, enumeration, and configurations. Its services are available
through the hypercalls interface API.
Benefits of Hypervisors
The following are some of the core benefits that a hypervisor can provide:
• Scalability: Hypervisors can create, deploy and decommission VMs almost instantly. This
capability allows organizations to quickly respond to changing workloads and meet
business demands.
• Cost savings: Hypervisors allow multiple VMs to run on one physical machine. This
consolidation saves costs by reducing hardware expenses. It also reduces the amount of
power consumed, which cuts energy costs and helps reduce the overall carbon footprint
associated with data centers.
• Enhanced security: Hypervisors isolate VMs from each other and from the host
machine, thus reducing the attack surface. Hypervisors can also take snapshots of a VM's
state, which allows users to restore the VM, create a backup or move it to a different
host.
Challenges of Hypervisors
Types of Hypervisors
Before hypervisors are introduced, there was a one-to-one relationship between hardware and
OSs. This type of computing results in underutilized resources. After the hypervisors are
introduced, it became a one-to-many relationship. With the help of hypervisors, many OSs can
run and share a single hardware.
As explained, hypervisors provide a layer between a VM and the underlying physical hardware,
helping ensure that each has access to the physical resources it needs to execute. The process
starts with the host machine executing a hypervisor and installing it as an application on the
machine, where it interacts with the host machine's operating system. The hypervisor then loads
the client operating systems of the virtual machines, creating isolated virtual environments on
the host machines. The hypervisor acts as the intermediary between the VMs and the physical
hardware, allocating resources such as memory, bandwidth and storage for each VM. The physical
hardware still handles the execution of resources. For example, the central processing unit
(CPU) is still executing CPU instructions as requested by the VMs while the hypervisor manages
the schedule. Both physical machines and VMs typically communicate with the hypervisor
through application programming interface (API) calls, protocols that enable software
applications to communicate with each other to exchange data.
The major difference between these two types of hypervisors is that type 1 runs directly on the
hardware and type 2 on host OS.
Type 1 Hypervisors
Type 1 hypervisor is also known as bare metal or native hypervisor. It can run and access physical
resources directly without the help of any host OS. Here, the additional overhead of
communicating with the host OS is reduced and offers better efficiency when compared to type
2 hypervisors. This type of hypervisors is used for servers that handle heavy load and require
more security.
A type 1 hypervisor runs right on the underlying computer's physical hardware, interacting
directly with its central processing unit (CPU), memory and physical storage. For this reason,
people also refer to type 1 hypervisors as bare-metal hypervisors or native hypervisors. A type 1
hypervisor takes the place of the host operating system.
Type 1 hypervisors are highly efficient because they directly access physical hardware. This
capability also increases their security because there is nothing in between them and the CPU
that an attacker might compromise. However, a type 1 hypervisor often requires a separate
management machine to administer different VMs and control the host hardware.
Some examples of type 1 hypervisors include Microsoft Hyper-V, Citrix XenServer, VMWare ESXi,
and Oracle VM Server for SPARC.
• Direct Hardware Access: Communicates directly with the hardware (e.g., CPU,
memory, storage), eliminating the overhead of a host OS.
• High Efficiency: Minimal latency and resource overhead, as there’s no intermediate
OS layer.
• Strong Isolation and Security: Direct control over hardware enhances VM isolation,
reducing the risk of host-related vulnerabilities.
• Scalability: Supports high-density VM environments, ideal for handling heavy
workloads.
• Scalability: Handles large numbers of VMs, ideal for cloud and enterprise environments.
• Complexity: Requires dedicated setup and management expertise (e.g., configuring ESXi
via vCenter).
• Cost: Often involves licensing fees (e.g., VMware ESXi) or specialized hardware (e.g.,
Oracle SPARC).
Type 2 Hypervisors
Type 2 hypervisors are also known as embedded or hosted hypervisors. This type of hypervisors
requires the host OS and does not have direct access to the physical hardware. These types of
hypervisors are installed on the host OS as a software program. The host OS is also known as
physical host, which has the direct access to the underlying hardware. The major disadvantage of
this approach is if the host OS fails or crashes, it also results in crashing of VMs. So, it is
recommended to use type 2 hypervisors only on client systems where efficiency is less critical.
Type 2 hypervisors often feature additional toolkits for users to install into the guest OS. These
tools provide enhanced connections between the guest and the host OS, usually enabling the
user to cut and paste between the two or access host OS files and folders from within the guest
VM.
A type 2 hypervisor enables quick and easy access to an alternative guest OS alongside the
primary one running on the host system—this capability supports end-user productivity. A
consumer might use it to access their favorite Linux-based development tools while using a
speech dictation system only found in Windows, for example.
However, because a type 2 hypervisor must access computing, memory and network resources
via the host OS, it introduces latency issues that can affect performance. It also introduces
potential security risks if an attacker compromises the host OS because they could manipulate
any guest OS running in the type 2 hypervisor.
• Host OS Dependency: Relies on the host OS for hardware access, adding an extra layer
between the hypervisor and hardware.
• Higher Overhead: The host OS introduces latency and resource usage, reducing
efficiency compared to Type 1.
• Ease of Use: Installs like any software, leveraging the host OS’s drivers and interfaces,
making it user-friendly.
• Client-Oriented: Best suited for environments where efficiency is less critical than
simplicity (e.g., development, testing, personal use).
• Ease of Setup: Installs like a regular application, leveraging the host OS’s interface and
drivers.
• Performance Overhead: The host OS adds latency, reducing efficiency for heavy
workloads.
• Stability Risks: A host OS crash affects all VMs, as noted in the text (e.g., if Windows
crashes, VMware Workstation VMs fail).
• Weaker Isolation: Security depends on the host OS, increasing vulnerability compared to
Type 1.
➢ Type 1 hypervisors are typically used in data centers, enterprise computing workload
situations, web servers, and other primarily fixed-use applications. Cloud computing
environments run bare metal hypervisors to offer the most performant virtual machines
(VMs) for the underlying physical hardware. Cloud providers also abstract away type 1
hypervisor management and offer VMs as cloud instances you can access through APIs.
➢ Type 2 hypervisors are most often used in desktop and development environments,
where workloads are not as resource-intensive or critical to operations. They’re also
preferred in cases where users want to simultaneously use two or more operating
systems but only have access to one machine.
Type 1 runs directly on hardware, while Type 2 runs on a host OS. Below is a detailed
comparison:
Use Case Cloud, data centers, enterprise servers Development, testing, personal
use
➢ A container is a software package that stores all the necessary files and configurations to
run an application on any operating system. Developers use containers to reduce software
development complexities and improve efficiency when deploying the applications. A
containerized application can run on a public, hybrid, or on-premises cloud with consistent
performance because it is independent of the underlying operating system.
➢ Both hypervisors and containers provide virtualization but at a different software layer. A
hypervisor abstracts the hardware from the software environment. In contrast, a
container runs in an environment where a container engine abstracts the operating
system.
➢ A machine image is a portable, self-contained file or set of files that encapsulates a virtual
machine’s configuration, operating system (OS), applications, and data. It serves as a
template or snapshot of a virtualized environment, which can be used to instantiate a
virtual machine on a compatible hypervisor.
➢ Machine Image is a critical component in virtualization technology, allowing users to
create consistent and portable computing environments. VMIs enable rapid deployment,
scaling, and migration of virtual machines across various infrastructures, from local data
centers to cloud environments. By encapsulating the entire state of a virtual machine,
VMIs simplify the process of backup, recovery, and distribution of virtualized system.
• Components: Includes the guest OS, installed software, configuration settings, and
sometimes data, enabling consistent deployment across environments.
• Use in Virtualization: Machine images are created, stored, and deployed by hypervisors
to launch VMs, supporting full virtualization, paravirtualization, or hardware-assisted
virtualization depending on the image’s configuration.
• Immutability: Often treated as a read-only template, with instances (VMs) created from
it, though some images can be modified.
Examples:
• Amazon Machine Image (AMI): Used in AWS EC2 to launch VMs with preconfigured
OSes (e.g., Ubuntu, Windows) and applications.
• VMware VMDK Image: A disk image file for a VMware VM, containing a Linux OS and a
web server, portable to VMware ESXi or Workstation.
• Hyper-V VHDX: A virtual hard disk image for a Windows Server VM, used by Microsoft
Hyper-V.
Virtual Machine
• Isolation: VMs are fully isolated from each other and the host, as discussed in the
isolation characteristic, ensuring security and independence.
• Hardware Abstraction: The hypervisor provides virtual hardware (e.g., vCPU, vRAM,
virtual disk, vNIC), enabling the guest OS to run as if on physical hardware.
• Virtualization Techniques:
o Full Virtualization: VMs run unmodified OSes with complete hardware emulation
(e.g., Windows on VMware ESXi).
o Paravirtualization: VMs run modified OSes using hypercalls (e.g., Linux on Xen).
Examples:
• A Hyper-V VM running Ubuntu with paravirtualized drivers for a web server in Azure.
Generally speaking, there are two types of virtual machines: process VMs and system VMs.
• Process VM: A process VM, also called an application virtual machine or managed
runtime environment (MRE), creates a virtual environment of an OS while an app or
single process is running and destroys it as soon as you exit. Process VMs enable creating
a platform-independent environment that lets an app or process run the same way on
any platform. Process virtual machines run an application inside an OS and support a
single process. Java virtual machines (JVMs), which run programs compiled in Java, are
examples of process VMs
More recently, you may have also heard people discussing virtual machines in the cloud or
a cloud VM. Cloud virtual machines are simply virtual machines that run on virtual servers in
the cloud. Many cloud service providers let you create and run cloud virtual machines on their
infrastructure, allowing you to use their powerful servers as host machines and leverage other
software-defined services such as memory and network storage.
VMs offer numerous advantages over traditional physical hardware, including the following:
▪ Resource usage and improved ROI: Because multiple VMs run on a single physical
computer, customers don’t have to buy a new server whenever they want to run
another OS. Therefore, they can get more return from each piece of hardware they
already own, significantly reducing IT costs related to capital and operating expenses.
▪ Agility and speed: Because VMs are software-based, it’s easy to spin up new ones.
This feature makes it faster to scale up to meet new workload demands and reduce
downtime compared to provisioning new hardware-based environments. Load
balancing helps ensure that workloads are distributed evenly across VMs, optimizing
performance and responsiveness during scaling without overloading any single VM.
▪ Portability: Businesses can relocate VMs as needed among the physical computer
systems in a network. This capability makes it possible to allocate workloads to servers
with spare computing power. VMs can even move between on-premises and cloud
environments, making them useful for hybrid cloud scenarios where you share
computing resources between your data center and a cloud service provider.
▪ Flexibility: Creating a VM is faster and easier than installing an OS on a physical server
because you can clone a VM with the OS already installed. Developers and software
testers can create new environments on demand to handle new tasks as they arise.
▪ Security: VMs improve security in several ways compared to operating systems, which
run directly on hardware. You can scan a VM file for malicious software by using an
external program. You can create a snapshot of the VM at any point and restore it to
that state if it becomes infected with malware, effectively taking the VM back in time.
The fast, easy creation of VMs makes it possible to quickly delete and re-create a
compromised VM, hastening recovery from malware infections.
▪ Sustainability: With fewer physical servers to run workloads and applications, you can
dramatically reduce energy consumption to improve your environmental impact.
While VMs have many benefits, they do have a few disadvantages to consider:
▪ Performance issues: VMs depend on the hardware resources made available to them
on the physical host computer. Limited resources can lead to reduced performance
and inefficiencies.
▪ Increased complexity: Virtual machines can be complex to configure and manage,
requiring teams with technical knowledge and expertise to set up and maintain them.
▪ Single point of failure (SPOF): VMs pose the risk of a single point of failure by relying
on one physical computer.
Virtual machines (VMs) serve a wide range of purposes for both enterprise IT administrators
and other users, including the following:
• Enable cloud-based computing: VMs are the fundamental unit of cloud computing
in hyperscale environments run by cloud service providers (e.g., Amazon Web Services
(AWS), IBM Cloud®, Microsoft Azure, Google Cloud), enabling dozens of applications
and workloads to run and scale successfully.
• Accelerate hybrid cloud journeys: VMs provide the infrastructure for creating hybrid
cloud environments that blend on-premises, private cloud and public
cloud environments into a single, flexible IT infrastructure.
• Support DevOps: VMs are a great way to support DevOps teams and other enterprise
developers, allowing them to configure VM templates with the settings for
their software development and testing processes. They can create VMs for tasks such
as static software tests, including these steps in an automated development workflow.
These functions help streamline the DevOps toolchain.
• Test a new operating system: A VM lets you test-drive a new system on your desktop
without affecting your primary OS.
• Investigate malware: VMs are helpful for malware researchers who frequently need
fresh machines to test malicious programs.
• Run incompatible software: Some users need to use one OS while still needing a
program only available in another.
• Browse securely: Using a virtual machine for browsing enables you to visit sites
without worrying about infection. You can take a snapshot of your machine and then
roll back to it after each browsing session. Users can set up this browsing scenario by
using a type 2 desktop hypervisor. Alternatively, an admin can provide a temporary
virtual desktop on the server.
• Support disaster recovery (DR): With a virtualized environment, it’s easy to provision
and deploy resources, allowing you to replicate or clone the virtual machine when
needed. This process happens in minutes, unlike the many hours it takes to provision
and set up a new physical server. This capability is crucial for disaster recovery (DR),
which helps ensure business continuity and reduces downtime.
• Build and use cyber ranges: Cyber ranges are simulated environments for training,
testing and evaluating cybersecurity skills and tactics. VMs are crucial in these
environments, offering the flexibility, scalability and isolation needed.
VMware is a leading company in virtualization and cloud computing, providing a suite of products
and services that enable the creation, management, and execution of virtual machines (VMs) and
virtualized environments. It provides hypervisors and management tools that create and manage
virtual machines (VMs) and machine images, enabling multiple OSes to share a single physical
host’s resources (e.g., CPU, memory, storage, network). VMware’s flagship products include
VMware ESXi (a Type 1 hypervisor), VMware Workstation and VMware Fusion (Type 2
hypervisors), and cloud solutions like VMware Cloud on AWS.
VMware offers a range of hypervisors and tools tailored to different use cases, each playing a
distinct role in virtualization. VMware is a pioneer in virtualization technology and offers a
collection of virtualization solutions covering the entire range of the market, from desktop
computing to enterprise computing and infra structure virtualization. Some of them are listed
below:
1. VMware ESXi:
o Description: Runs directly on physical hardware without a host OS, offering high
performance, scalability, and security for enterprise and cloud environments.
o Use Cases: Data centers, private clouds, hybrid clouds (e.g., VMware Cloud on
AWS), server consolidation.
o Example: A data center uses ESXi to host 100 VMs running Windows and Linux for
corporate applications.
2. VMware Workstation:
3. VMware Fusion:
o NSX: A network virtualization platform for creating virtual networks, aligning with
the address manager component.
VMware supports virtualization of operating system environments and single applications on end
user computers. The first option is the most popular and allows installing a different operating
systems and applications in a completely isolated environment from the hosting operating
system. Specific VMware software—VMware Workstation, for Windows operating systems, and
VMware Fusion, for Mac OS X environments—is installed in the host operating system to create
virtual machines and manage their execution. Besides the creation of an isolated computing
environment, the two products allow a guest operating system to leverage the resources of the
host machine (USB devices, folder sharing, and integration with the graphical user interface (GUI)
of the host operating system). Following figure provides an overview of the architecture of these
systems.
Using this architecture—also called Hosted Virtual Machine Architecture—it is possible to both
isolate virtual machine instances within the memory space of a single application and provide
reasonable performance, since the intervention of the VMware application is required only for
instructions, such as device I/O, that require binary translation. Instructions that can be directly
executed are managed by the virtual machine manager, which takes control of the CPU and the
MMU and alternates its activity with the host OS. Virtual machine images are saved in a collection
of files on the host file system, and both VMware Workstation and VMware Fusion allow creation
of new images, pause their execution, create snapshots, and undo operations by rolling back to a
previous state of the virtual machine.
Over time, VMware evolved its server virtualization solutions, starting with VMware GSX Server
and progressing to the more advanced VMware ESX Server and VMware ESXi Server. Initially,
VMware GSX Server provided server virtualization by extending the approach used for end-user
computers. Its architecture, primarily designed for virtualizing Web servers, included a daemon
process called serverd that managed VMware application processes. These applications
connected to virtual machine instances via a VMware driver installed on the host operating
system. User requests for virtual machine management and provisioning were routed from the
Web server through the VMM by means of serverd.
VMware ESX Server and its enhanced version, VMware ESXi Server, represent a shift to a
hypervisor-based approach. Both can be installed directly on bare-metal servers and offer
services for virtual machine management. While they provide the same services, their internal
architectures differ, specifically in the organization of the hypervisor kernel:
• VMware ESX Server embedded a modified version of the Linux operating system,
providing access to the hypervisor through a service console.
• VMware ESXi Server implements a much thinner OS layer. It replaces the service console
with remote management interfaces and services, significantly reducing the hypervisor's
code size and memory footprint.
VMware offers a comprehensive suite of cloud computing solutions, spanning from infrastructure
management to Software-as-a-Service (SaaS). Following figure gives an overview of the different
solutions offered and how they relate to each other.
The core of VMware's virtual infrastructure management solution is built upon ESX and ESXi.
These form the building blocks for creating a pool of virtualized servers that are then centrally
managed by VMware vSphere. Beyond basic virtual compute services, vSphere provides essential
infrastructure services such as:
It also offers crucial application services including virtual machine migration, storage migration,
data recovery, and security zones. The overall management of this infrastructure is handled by
VMware vCenter, which provides centralized administration for vSphere installations within a
data center environment.
For application development in the cloud, VMware provides VMware vFabric. This is a set of
components designed to facilitate the development of scalable web applications on top of a
virtualized infrastructure. vFabric includes tools for:
• Application monitoring
At the pinnacle of its cloud computing stack, VMware offers Zimbra. This is a fully hosted SaaS
solution for office automation, messaging, and collaboration. Accessible from anywhere, Zimbra
integrates various features into a single software platform, providing comprehensive email and
collaboration management.
Microsoft Hyper-V
Hyper-V is an infrastructure virtualization solution developed by Microsoft for server
virtualization. As the name recalls, it uses a hypervisor-based approach to hardware virtualization,
which leverages several techniques to support a variety of guest operating systems. Hyper-V is
integrated as a server role in Windows Server, allowing the installation of its hypervisor
Hyper-V facilitates the concurrent execution of multiple guest operating systems by utilizing
partitions. Each partition is a completely isolated environment where an operating system is
installed and runs. Following figure describes the architecture of Hyper-V.
Despite being installed as a component of the host operating system, Hyper-V takes direct control
of the hardware. This means the original host operating system transforms into a specially
privileged virtual machine instance known as the parent partition (or root partition).
The parent partition is unique because it's the only one with direct access to the hardware. It's
responsible for running the virtualization stack and hosts all the necessary drivers to configure
guest operating systems. Crucially, the parent partition works with the hypervisor to create child
partitions.
Child partitions are where the guest operating systems reside. Unlike the parent, they do not
have direct access to the underlying hardware. Instead, their interactions with the hardware are
managed and controlled by either the parent partition or the hypervisor itself.
Hyper-V’s key features make it a robust virtualization platform, suitable for a wide range of use
cases:
• Virtual Machine Creation and Management: Hyper-V allows users to create, configure,
and manage VMs, each running its own operating system (e.g., Windows, Linux) and
applications. Each VM acts like a complete computer, isolated from others and the host.
• Live Migration: Hyper-V supports live migration, allowing VMs to be moved between
physical hosts with minimal downtime, a feature crucial for data centers and cloud
environments. This supports the portability characteristic, enabling VM movement
without reconfiguration.
• Networking and Storage: Offers virtual networking capabilities, including virtual switches,
and storage options like virtual hard disks (VHD/VHDX), which are machine images
enabling portability across Hyper-V environments. The address manager component, as
discussed previously, manages virtual network addresses for VMs.
• Integration with Microsoft Ecosystem: Hyper-V is deeply integrated with Windows Server,
Azure, and other Microsoft tools, making it ideal for organizations using Microsoft
products. For instance, it powers Azure’s virtualization infrastructure, enhancing cloud
capabilities.
• Security Features: Includes advanced security options like shielded VMs and Guarded
Fabric, protecting VMs in enterprise settings. This aligns with the increased security
characteristic, ensuring isolation and protection from unauthorized access.
Types of Hyper-V
Hyper-V is available in two primary forms, reflecting its flexibility across server and desktop
environments:
• On Windows Server: Installed as a server role in all editions of Windows Server (e.g., 2025,
2022, 2019, 2016), using Server Manager or PowerShell. It is a full-fledged Type 1
hypervisor, running directly on the hardware without a host OS layer, offering high
performance and scalability for enterprise environments.
NOTE: Microsoft also offers Hyper-V Server, a standalone, free product that delivers
enterprise-class virtualization for datacenters and hybrid clouds, containing only the Windows
hypervisor, a Windows Server driver model, and virtualization components . It is similar to the
Hyper-V role on Windows Server but without additional server roles, focusing on
virtualization.
Type 2 hypervisors possess security vulnerabilities largely due to their dependency on the host operating system for hardware access, which introduces an additional layer of potential failure or compromise. If the host OS is attacked or crashes, it can directly impact the running virtual machines, weakening their isolation and security . Conversely, Type 1 hypervisors, operating directly on the bare-metal hardware, avoid these vulnerabilities by eliminating reliance on a potentially less secure intermediate OS. This direct hardware interface enhances VM isolation and reduces attack surface .
A developer might opt for a Type 2 hypervisor for application testing and development due to its simplicity in setup and flexibility in running on commodity hardware like personal laptops without requiring dedicated infrastructure . Type 2 hypervisors, being hosted on a regular operating system, allow for quick access to various operating systems on a single machine, which is convenient for testing purposes . Furthermore, they are cost-effective and user-friendly, catering to individual users who do not need the scalability or performance enhancements that a Type 1 hypervisor would offer .
Type 1 hypervisors, also known as bare metal hypervisors, have a complex setup as they require direct installation on physical hardware and often involve the use of a separate management machine . However, they provide high performance and system stability because there is no intermediary operating system potentially affecting performance . Type 2 hypervisors are easier to set up since they install like regular software applications on a host OS, but this dependency can affect system stability as a crash in the host OS will impact all running virtual machines . Performance is also impacted due to the increased overhead from the host OS .
Type 1 hypervisors, which run directly on physical hardware, are highly scalable and capable of supporting high-density VM environments, ideal for cloud and enterprise data center use . The absence of a host OS allows Type 1 hypervisors to efficiently manage a large number of VMs, making them suitable for handling intensive workloads and providing robust scalability . On the other hand, Type 2 hypervisors, operating at a higher overhead due to their dependency on a host OS, are less scalable and best suited for smaller environments or personal use where immediate scalability isn't critical .
Hyper-V's architecture ensures isolation between the host and guest OSs by utilizing partitions. The parent partition, which hosts the root OS, directly interfaces with the hardware and manages the virtualization stack. This partition creates child partitions where the guest operating systems reside, ensuring that the guests do not interact directly with the physical hardware. Instead, their interactions are mediated by the hypervisor or parent partition, maintaining a clear separation between layers and ensuring robust isolation .
Full virtualization boasts advantages including excellent isolation and security for VMs and the ability to run different operating systems simultaneously without modifications . However, it has disadvantages such as performance overhead due to binary translation and the need for correct hardware and software combinations to function optimally . In contrast, paravirtualization provides better performance and efficiency by enabling direct communication between the guest OS and the hypervisor through hypercalls, but it requires the guest OS to be modified .
Hardware virtualization extensions, such as Intel VT-x and AMD-V, are critical for Hyper-V's performance as they reduce the overhead associated with software-based virtualization by allowing the hypervisor to directly manage processor instructions and features at a hardware level . This hardware-based assistance enhances the efficiency of virtual machine execution, minimizing latency and improving overall VM performance due to more direct hardware utilization .
Full virtualization is beneficial in scenarios demanding strong isolation because it allows unmodified guest operating systems to run as if on actual hardware, which fully decouples them from the physical infrastructure. This feature ensures complete isolation of the guest OS from the host, effectively enhancing security and maintaining operational independence . Additionally, since full virtualization does not require the guest OS to be modified, it is easier to implement and migrate across different hardware environments, offering significant flexibility and compatibility .
Hyper-V's use of virtual networks enhances manageability and flexibility by providing features like virtual switches and address management, which facilitate the efficient configuration of network attributes for virtual machines . These capabilities allow administrators to create segmented networks, manage traffic, and ensure the secure communication of VMs without needing physical hardware modifications, thus offering scalable and adaptable network setups within a virtualized environment .
Process virtual machines (VMs), or application VMs, create a virtual environment for a single application or process, offering a platform-independent environment that terminates upon completion of the application . An example includes Java Virtual Machines (JVMs) which enable Java applications to run on any platform . In contrast, system VMs simulate a complete operating system environment, supporting multiple OS instances and allowing them to run concurrently on the same physical machine. System VMs benefit from resource sharing and are often what people refer to as VMs in cloud or enterprise environments .