From a purely academic standpoint, virtualization is little more than a layer of abstraction between two other layers.
What do we mean by “layer of abstraction?” Here, we’re talking about modifying the way we think about an item or refer to it by not referring to it directly. In the “real world,” we always deal with layers of abstraction. We do this to hide the physical characteristics of complicated items or concepts.
Virtualization is mainly used to emulate execution environments, storage, and networks. Among these categories, execution virtualization constitutes the oldest, most popular, and most developed area.
In particular, we can divide these execution virtualization techniques into two major categories by considering the type of host they require. Process-level techniques are implemented on top of an existing operating system, which has full control of the hardware. System-level techniques are implemented directly on hardware and do not require—or require a minimum of support from—an existing operating system.
Within these two categories, we can list various techniques that offer the guest a different type of virtual computation environment: bare hardware, operating system resources, low-level programming language, and application libraries.
Execution virtualization
Execution virtualization includes all techniques that aim to emulate an execution environment that is separate from the one hosting the virtualization layer. All these techniques concentrate their interest on providing support for the execution of programs, whether these are the operating system, a binary specification of a program compiled against an abstract machine model, or an application.
Categories of Virtualization
In this section, we’ll talk about four of the current categories of virtualization. Each of these
categories is designed to add that layer of abstraction on top of one where complexity exists.
Hardware Virtualization
Hardware Virtualization involves incorporating virtualization at a layer below even the OS. With Hardware Virtualization, this virtualization layer—often called a hypervisor—acts as a sort of proxy between individual virtual systems that sit above it and the physical resources that sit below it.
Examples of Hardware Virtualization architecture: Microsoft Virtual Server, VMware Server, VMware ESX, etc.
OS Virtualization
If we move the layer of abstraction atop the host’s OS, we alter dramatically how virtualization
within the system works. With OS Virtualization, our virtualization layer gains some dramatic
improvements in terms of performance but loses the ability to be agnostic regarding its hosted
virtual machines.
As with Hardware Virtualization, OS Virtualization includes a host OS and
residing virtual machines are completely and wholly segregated from each other. What’s
different is that host’s OS becomes the base OS from which all its hosted virtual machines start
their existence. Each hosted virtual machine is almost like a virtual “snapshot” of the software
that makes up the host. Like snapshotting technology incorporated into high-end storage systems,
each hosted virtual machine’s snapshot can then be modified to personalize its configuration.
Automation components within the OS Virtualization layer can be incorporated to rapidly deploy
additional servers or applications within each virtual machine.
Example: Parallels Virtuozzo Containers
Paravirtualization
Paravirtualization is an oft-misunderstood branch of virtualization software. Paravirtualization
works similarly to Virtual Machines in that it enables the hosting of numerous machines on top
of an existing host.
Paravirtualization differs because it does not simulate hardware resources but offers a special Application Programming Interface (API) to hosted virtual
machines. In order to use that API, the OS must be specifically coded to support it.
Paravirtualization benefits from significant performance improvements over other virtualization solutions, but the special coding requirement limits its usefulness in the marketplace when OS vendors choose not to provide the necessary modifications. As an example, Xen is one market solution that incorporates a paravirtualization architecture.
For example, Xen is a paravirtualization architecture.
Application Virtualization
Moving away from the concept of entire-system virtualization is the idea of Application
Virtualization. Like the title suggests, Application Virtualization encapsulates the files, registry
keys, and other configurations of an individual application into a construct - often a single file - that can be easily installed on computers, removed from computers, and updated as necessary.
Application Virtualization solutions are typically coupled with tools that enable the “streaming”
of the application down to the client. This streaming process copies the necessary components of
the bubble to the client system in a just-in-time manner as the operator needs those components.
Examples: Microsoft SoftGrid, Citrix Streaming Server, Thinstall Virtualization Suite, etc.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.