0% found this document useful (0 votes)
35 views

Operating Systems Basics

This document provides an overview of virtualization including hardware virtualization, snapshots, migration, failover, nested virtualization, and desktop virtualization. Virtualization allows the creation of virtual versions of computer hardware platforms, storage, and network resources which provides benefits like improved efficiency and flexibility.

Uploaded by

Dennis Dube
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Operating Systems Basics

This document provides an overview of virtualization including hardware virtualization, snapshots, migration, failover, nested virtualization, and desktop virtualization. Virtualization allows the creation of virtual versions of computer hardware platforms, storage, and network resources which provides benefits like improved efficiency and flexibility.

Uploaded by

Dennis Dube
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Virtualization

From Wikipedia, the free encyclopedia

Jump to navigationJump to search

In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act


of creating a virtual (rather than actual) version of something, including virtual computer hardware
platforms, storage devices, and computer network resources.

Virtualization began in the 1960s, as a method of logically dividing the system resources provided by
mainframe computers between different applications. Since then, the meaning of the term has
broadened.[1]

Hardware virtualization

Main article: Hardware virtualization

See also: Mobile virtualization

Hardware virtualization or platform virtualization refers to the creation of a virtual machine that acts
like a real computer with an operating system. Software executed on these virtual machines is
separated from the underlying hardware resources. For example, a computer that is running
Microsoft Windows may host a virtual machine that looks like a computer with the Ubuntu Linux
operating system; Ubuntu-based software can be run on the virtual machine.[2][3]

In hardware virtualization, the host machine is the machine that is used by the virtualization and the
guest machine is the virtual machine. The words host and guest are used to distinguish the software
that runs on the physical machine from the software that runs on the virtual machine. The software
or firmware that creates a virtual machine on the host hardware is called a hypervisor or virtual
machine monitor.

Different types of hardware virtualization include:

Full virtualization – almost complete simulation of the actual hardware to allow software
environments, including a guest operating system and its apps, to run unmodified.

Paravirtualization – the guest apps are executed in their own isolated domains, as if they are running
on a separate system, but a hardware environment is not simulated. Guest programs need to be
specifically modified to run in this environment.

Hardware-assisted virtualization is a way of improving overall efficiency of virtualization. It involves


CPUs that provide support for virtualization in hardware, and other hardware components that help
improve the performance of a guest environment.
Hardware virtualization can be viewed as part of an overall trend in enterprise IT that includes
autonomic computing, a scenario in which the IT environment will be able to manage itself based on
perceived activity, and utility computing, in which computer processing power is seen as a utility
that clients can pay for only as needed. The usual goal of virtualization is to centralize administrative
tasks while improving scalability and overall hardware-resource utilization. With virtualization,
several operating systems can be run in parallel on a single central processing unit (CPU). This
parallelism tends to reduce overhead costs and differs from multitasking, which involves running
several programs on the same OS. Using virtualization, an enterprise can better manage updates and
rapid changes to the operating system and applications without disrupting the user. "Ultimately,
virtualization dramatically improves the efficiency and availability of resources and applications in an
organization. Instead of relying on the old model of “one server, one application” that leads to
underutilized resources, virtual resources are dynamically applied to meet business needs without
any excess fat" (ConsonusTech).

Hardware virtualization is not the same as hardware emulation. In hardware emulation, a piece of
hardware imitates another, while in hardware virtualization, a hypervisor (a piece of software)
imitates a particular piece of computer hardware or the entire computer. Furthermore, a hypervisor
is not the same as an emulator; both are computer programs that imitate hardware, but their
domain of use in language differs.

Also, Various simulation tools have been developed to support further research and development to
the virtualization technology. Cloudsim is one of the state of the art tool developed by Dr. Raj Kumar
Buyya. Cloudsim integrated the support for simulation of virtualization techniques based on cloud
computing use case.

Snapshots

Main article: Snapshot (computer storage)

A snapshot is a state of a virtual machine, and generally its storage devices, at an exact point in time.
A snapshot enables the virtual machine's state at the time of the snapshot to be restored later,
effectively undoing any changes that occurred afterwards. This capability is useful as a backup
technique, for example, prior to performing a risky operation.

Virtual machines frequently use virtual disks for their storage; in a very simple example, a 10-
gigabyte hard disk drive is simulated with a 10-gigabyte flat file. Any requests by the VM for a
location on its physical disk are transparently translated into an operation on the corresponding file.
Once such a translation layer is present, however, it is possible to intercept the operations and send
them to different files, depending on various criteria. Every time a snapshot is taken, a new file is
created, and used as an overlay for its predecessors. New data is written to the topmost overlay;
reading existing data, however, needs the overlay hierarchy to be scanned, resulting in accessing the
most recent version. Thus, the entire stack of snapshots is virtually a single coherent disk; in that
sense, creating snapshots works similarly to the incremental backup technique.
Other components of a virtual machine can also be included in a snapshot, such as the contents of
its random-access memory (RAM), BIOS settings, or its configuration settings. "Save state" feature in
video game console emulators is an example of such snapshots.

Restoring a snapshot consists of discarding or disregarding all overlay layers that are added after
that snapshot, and directing all new changes to a new overlay.

Migration

Main article: Migration (virtualization)

The snapshots described above can be moved to another host machine with its own hypervisor;
when the VM is temporarily stopped, snapshotted, moved, and then resumed on the new host, this
is known as migration. If the older snapshots are kept in sync regularly, this operation can be quite
fast, and allow the VM to provide uninterrupted service while its prior physical host is, for example,
taken down for physical maintenance.

Failover

Main article: Failover

Similar to the migration mechanism described above, failover allows the VM to continue operations
if the host fails. Generally it occurs if the migration has stopped working. However, in this case, the
VM continues operation from the last-known coherent state, rather than the current state, based on
whatever materials the backup server was last provided with.

Video game console emulation

Main article: Video game console emulator

A video game console emulator is a program that allows a personal computer or video game console
to emulate a different video game console's behavior. Video game console emulators and
hypervisors both perform hardware virtualization; words like "virtualization", "virtual machine",
"host" and "guest" are not used in conjunction with console emulators.

Nested virtualization

Nested virtualization refers to the ability of running a virtual machine within another, having this
general concept extendable to an arbitrary depth. In other words, nested virtualization refers to
running one or more hypervisors inside another hypervisor. Nature of a nested guest virtual machine
does not need not be homogeneous with its host virtual machine; for example, application
virtualization can be deployed within a virtual machine created by using hardware virtualization.[4]
Nested virtualization becomes more necessary as widespread operating systems gain built-in
hypervisor functionality, which in a virtualized environment can be used only if the surrounding
hypervisor supports nested virtualization; for example, Windows 7 is capable of running Windows XP
applications inside a built-in virtual machine. Furthermore, moving already existing virtualized
environments into a cloud, following the Infrastructure as a Service (IaaS) approach, is much more
complicated if the destination IaaS platform does not support nested virtualization.[5][6]

The way nested virtualization can be implemented on a particular computer architecture depends
on supported hardware-assisted virtualization capabilities. If a particular architecture does not
provide hardware support required for nested virtualization, various software techniques are
employed to enable it.[5] Over time, more architectures gain required hardware support; for
example, since the Haswell microarchitecture (announced in 2013), Intel started to include VMCS
shadowing as a technology that accelerates nested virtualization.[7]

Licensing

Virtual machines running proprietary operating systems require licensing, regardless of the host
machine's operating system. For example, installing Microsoft Windows into a VM guest requires its
licensing requirements to be satisfied.[8][9][10]

Desktop virtualization

Main article: Desktop virtualization

Desktop virtualization is the concept of separating the logical desktop from the physical machine.

One form of desktop virtualization, virtual desktop infrastructure (VDI), can be thought of as a more
advanced form of hardware virtualization. Rather than interacting with a host computer directly via
a keyboard, mouse, and monitor, the user interacts with the host computer using another desktop
computer or a mobile device by means of a network connection, such as a LAN, Wireless LAN or
even the Internet. In addition, the host computer in this scenario becomes a server computer
capable of hosting multiple virtual machines at the same time for multiple users.[11]

As organizations continue to virtualize and converge their data center environment, client
architectures also continue to evolve in order to take advantage of the predictability, continuity, and
quality of service delivered by their converged infrastructure. For example, companies like HP and
IBM provide a hybrid VDI model with a range of virtualization software and delivery models to
improve upon the limitations of distributed client computing.[12] Selected client environments
move workloads from PCs and other devices to data center servers, creating well-managed virtual
clients, with applications and client operating environments hosted on servers and storage in the
data center. For users, this means they can access their desktop from any location, without being
tied to a single client device. Since the resources are centralized, users moving between work
locations can still access the same client environment with their applications and data.[12] For IT
administrators, this means a more centralized, efficient client environment that is easier to maintain
and able to more quickly respond to the changing needs of the user and business.[13] Another form,
session virtualization, allows multiple users to connect and log into a shared but powerful computer
over the network and use it simultaneously. Each is given a desktop and a personal folder in which
they store their files.[11] With multiseat configuration, session virtualization can be accomplished
using a single PC with multiple monitors, keyboards, and mice connected.

Thin clients, which are seen in desktop virtualization, are simple and/or cheap computers that are
primarily designed to connect to the network. They may lack significant hard disk storage space,
RAM or even processing power, but many organizations are beginning to look at the cost benefits of
eliminating “thick client” desktops that are packed with software (and require software licensing
fees) and making more strategic investments.[14] Desktop virtualization simplifies software
versioning and patch management, where the new image is simply updated on the server, and the
desktop gets the updated version when it reboots. It also enables centralized control over what
applications the user is allowed to have access to on the workstation.

Moving virtualized desktops into the cloud creates hosted virtual desktops (HVDs), in which the
desktop images are centrally managed and maintained by a specialist hosting firm. Benefits include
scalability and the reduction of capital expenditure, which is replaced by a monthly operational
cost.[15]

Containerization

Main article: Operating-system-level virtualization

Operating-system-level virtualization, also known as containerization, refers to an operating system


feature in which the kernel allows the existence of multiple isolated user-space instances. Such
instances, called containers,[16] partitions, virtual environments (VEs) or jails (FreeBSD jail or chroot
jail), may look like real computers from the point of view of programs running in them. A computer
program running on an ordinary operating system can see all resources (connected devices, files and
folders, network shares, CPU power, quantifiable hardware capabilities) of that computer. However,
programs running inside a container can only see the container's contents and devices assigned to
the container.

Containerization started gaining prominence in 2014, with the introduction of Docker.[17][18]

Other types

Software

Application virtualization and workspace virtualization: isolating individual apps from the underlying
OS and other apps; closely associated with the concept of portable applications
Service virtualization: emulating the behavior of specific components in heterogeneous component-
based applications such as API-driven applications, cloud-based applications and service-oriented
architectures

Memory

Memory virtualization: aggregating random-access memory (RAM) resources from networked


systems into a single memory pool

Virtual memory: giving an app the impression that it has contiguous working memory, isolating it
from the underlying physical memory implementation

Storage

Storage virtualization: the process of completely abstracting logical storage from physical storage

Distributed file system: any file system that allows access to files from multiple hosts sharing via a
computer network

Virtual file system: an abstraction layer on top of a more concrete file system, allowing client
applications to access different types of concrete file systems in a uniform way

Storage hypervisor: the software that manages storage virtualization and combines physical storage
resources into one or more flexible pools of logical storage[19]

Virtual disk: a computer program that emulates a disk drive such as a hard disk drive or optical disk
drive (see comparison of disc image software)

Data

Data virtualization: the presentation of data as an abstract layer, independent of underlying


database systems, structures and storage

Database virtualization: the decoupling of the database layer, which lies between the storage and
application layers within the application stack over all

Network

Network virtualization: creation of a virtualized network addressing space within or across network
subnets

Virtual private network (VPN): a network protocol that replaces the actual wire or other physical
media in a network with an abstract layer, allowing a network to be created over the Internet

You might also like