Documente Academic
Documente Profesional
Documente Cultură
BY
NAME
(COM/HND/16/17/00000)
MAY, 2018
1
Abstract
In this seminar paper, we explore the relevance of virtual machines. Virtual Machine is a
completely separate individual operating system installation on your usual operating system.
It is implemented by software emulation and hardware virtualization. Virtual machine is a
software implementation of a physical machine - computer - that works and executes
analogically to it. Virtual machines are divided in two categories based on their use and
correspondence to real machine: system virtual machines and process virtual machines. First
category provides a complete system platform that executes complete operating system,
second one will run a single program. Frequently multiple virtual machines with their own
OS's are used in server consolidation, where different services are run in separate virtual
environments, but on the same physical machine.
2
Table of Contents
Title Page ......................................................................................................................................... 1
Abstract ............................................................................................................................................ 2
3.0 Conclusion................................................................................................................................ 14
References ...................................................................................................................................... 15
3
1.0 Introduction
are based on computer architectures and provide functionality of a physical computer. Their
There are different kinds of virtual machines, each with different functions:
1. System virtual machines (also termed full virtualization VMs) provide a substitute for
a real machine. They provide functionality needed to execute entire operating systems.
A hypervisor uses native execution to share and manage hardware, allowing for
multiple environments which are isolated from one another, yet exist on the same
independent environment.
Some virtual machines, such as QEMU, are designed to also emulate different architectures
and allow execution of software applications and operating systems written for another CPU
be partitioned via the kernel's support for multiple isolated user space instances, which are
usually called containers and may look and feel like real machines to the end users. Both
system virtual machines and process virtual machines date to the 1960s, and continue to be
System virtual machines grew out of time-sharing, as notably implemented in the Compatible
concurrently: each program appeared to have full access to the machine, but only one program
4
was executed at the time, with the system switching between programs in time slices, saving
and restoring state each time. This evolved into virtual machines, notably via IBM's research
systems: the M44/44X, which used partial virtualization, and the CP-40 and SIMMON, which
used full virtualization and were early examples of hypervisors. The first widely available
virtual machine architecture was the CP-67/CMS; see History of CP/CMS for details. An
important distinction was between using multiple virtual machines on one host system for
time-sharing, as in M44/44X and CP-40, and using one virtual machine on a host system for
compatibility, date back to the IBM 360 in 1963, while the software emulation (then-called
Process virtual machines arose originally as abstract platforms for an intermediate language
around 1966. An early 1966 example was the O-code machine, a virtual machine which
executes O-code (object code) emitted by the front end of the BCPL compiler. This
new back end that took the existing O-code and compiled it to machine code for the underlying
physical machine. The Euler language used a similar design, with the intermediate language
named P (Lisker, 2007). This was popularized around 1970 by Pascal, notably in the Pascal-
P system (1973) and Pascal-S compiler (1975), in which it was termed p-code and the
resulting machine as a p-code machine. This has been influential, and virtual machines in this
sense have been often generally called p-code machines. In addition to being an intermediate
language, Pascal p-code was also executed directly by an interpreter implementing the virtual
machine, notably in UCSD Pascal (1978); this influenced later interpreters, notably the Java
5
virtual machine (JVM). Another early example was SNOBOL4 (1967), which was written in
the SNOBOL Implementation Language (SIL), an assembly language for a virtual machine,
which was then targeted to physical machines by transpiling to their native assembler via a
macro assembler (Lisker, 2007). Macros have since fallen out of favor, however, so this
approach has been less influential. Process virtual machines were a popular approach to
implementing early microcomputer software, including Tiny BASIC and adventure games,
Infocom's z-machine, which Graham Nelson argues is "possibly the most portable virtual
time (JIT) compilation forward as an implementation approach that uses process virtual
machine (Lonabocker, 2003). Later notable Smalltalk VMs were VisualWorks, the Squeak
Virtual Machine (Lisker, 2007) and Strongtalk (Lonabocker, 2003). A related language that
produced a lot of virtual machine innovation was the Self programming language (Thomas,
2008), which pioneered adaptive optimization (Shulman, 2002) and generational garbage
collection. These techniques proved commercially successful in 1999 in the HotSpot Java
virtual machine. (Thomas, 2008) Other innovations include having a register-based virtual
machine, to better match the underlying hardware, rather than a stack-based virtual machine,
which is a closer match for the programming language; in 1995, this was pioneered by the Dis
6
2.0 Definition of a Virtual Machine
A "virtual machine" was originally defined by Shulman (2002) as: "an efficient, isolated
duplicate of a real computer machine." Current use includes virtual machines which have no
The desire to run multiple operating systems was the initial motive for virtual machines, so as
system virtual machine can be considered a generalization of the concept of virtual memory
that historically preceded it. IBM's CP/CMS, the first systems to allow full virtualization,
implemented time sharing by providing each user with a single-user operating system, the
Conversational Monitor System (CMS). Unlike virtual memory, a system virtual machine
entitled the user to write privileged instructions in their code. This approach had certain
advantages, such as adding input/output devices not allowed by the standard system. (Thomas,
2008)
As technology evolves virtual memory for purposes of virtualization, new systems of memory
over commitment may be applied to manage memory sharing among multiple virtual
machines on one computer operating system. It may be possible to share memory pages that
have identical contents among multiple virtual machines that run on the same physical
machine, what may result in mapping them to the same physical page by a technique termed
Kernel SamePage Merging. This is especially useful for read-only pages, such as those
holding code segments, which is the case for multiple virtual machines running the same or
similar software, software libraries, web servers, middleware components, etc. The guest
7
operating systems do not need to be compliant with the host hardware, thus making it possible
to run different operating systems on the same computer (e.g., Windows, Linux, or prior
The use of virtual machines to support separate guest operating systems is popular in regard
Another use would be for novel and unproven software still in the developmental stage, so it
runs inside a sandbox. Virtual machines have other advantages for operating system
development, and may include improved debugging access and faster reboots. (Lisker, 2007)
Multiple VMs running their own guest operating system are frequently engaged for server
Environment (MRE), runs as a normal application inside a host OS and supports a single
process. It is created when that process is started and destroyed when it exits. Its purpose is to
underlying hardware or operating system, and allows a program to execute in the same way
on any platform.
(compared to the low-level ISA abstraction of the system VM). Process VMs are implemented
8
This type of VM has become popular with the Java programming language, which is
implemented using the Java virtual machine. Other examples include the Parrot virtual
machine, and the .NET Framework, which runs on a VM called the Common Language
Runtime. All of them can serve as an abstraction layer for any computer language.
A special case of process VMs are systems that abstract over the communication mechanisms
process, but one process per physical machine in the cluster. They are designed to ease the
rather than the communication mechanisms provided by the interconnect and the OS. They
do not hide the fact that communication takes place, and as such do not attempt to present the
Unlike other process VMs, these systems do not provide a specific programming language,
but are embedded in an existing language; typically such a system provides bindings for
several languages (e.g., C and Fortran).[citation needed] Examples are Parallel Virtual
Machine (PVM) and Message Passing Interface (MPI). They are not strictly virtual machines,
as the applications running on top still have access to all OS services, and are therefore not
9
1) Take a spin on newer versions of operating systems:
With Virtual Machines, you can adopt a safe method in running the development version of
Windows 10 on your Windows 8 computer. This method allows you to run a trial with
There is an emerging trend among the IT community where users store their desktop's
applications and operating systems in a separate virtual machine in the server and use their
PC as a "thin client" to the server. Each user is isolated from all other users with the help of
virtual machine technology, and the maintenance of the applications is shifted from each user's
You can also install different distributions of Linux or other lesser known operating systems
in a virtual machine to experiment with them and to understand how they work. Multiple
operating systems can run in the same server, eliminating the need to dedicate a single
machine to one application. In fact, if you have a sudden fascination or inclination in Ubuntu,
you can install it in a virtual machine and dabble with it in a window on your normal desktop.
In a situation where you have an important application that only runs on Windows XP, you
can install XP in a virtual machine and run that rather prehistoric application in the virtual
machine where compatibility isn't an issue. The best part is that virtual machines allow you
to use an application that only works with Windows XP without actually installing Windows
XP on your computer which is definitely handy since not many hardware fully support
Windows XP.
10
5) Run software formatted for other operating systems:
Mac and Linux users can also run Windows in a virtual machine to run Windows software on
Virtual machines are like transferrable self-contained packages. It is relatively easy to move
a Virtual Machine from one server to another to balance the workload, to migrate to faster
hardware, as well as to recover from hardware failure. Furthermore, Virtual Machines can be
In an event where you need to test whether an application works on multiple operating systems
' or just for the many different versions of Windows ' you can install each in a virtual machine
8) Consolidation:
With virtual machines, it eliminates the need to dedicate a single machine to one application.
Old and new applications can run simultaneously with their respective operating systems in
multicore servers with many threads of execution, saving space and power consumption in
the datacenter. Latest Operating system versions and new applications can be deployed
For businesses running multiple servers, your existing servers can be inserted into virtual
machines and run on a single PC. Each virtual machine is isolated, so this doesn't cause
security issues involved with running different servers on the same operating system. The
As mentioned earlier, due to the isolation of virtual machines, an attack or a hack breach in
one does not affect the others. The fault tolerance and security brought about by the isolation
of each virtual machine is a major benefit of virtualization. This means, virtual machines can
save you time and effort in troubleshooting and fixing. The blog would have given you a basic
idea on how Virtual Machines work and its popular uses. To add additional uses to the list,
please share your comments below. The concept of virtual machines and virtualization have
evolved over the period with concentrated efforts from organizations like VMware, Citrix,
Windows etc. to optimize infrastructure challenges faced by the industry. IT Professionals can
look forward to a career in Virtualization itself with great opportunities available across the
world. The demand for professionals with virtualization skills have been constantly on the
rise. To see who's actively hiring and what virtualization technologies are they hiring for, you
may click here. At the same time, there are some good Online IT Courses on Virtualization,
include:
2. Virtual machine can offer an instruction set architecture that differs from real
computer's;
12
2.3.2 Disadvantages of Virtual Machines
1. When multiple virtual machines are simultaneously running on a host computer, each
2. Virtual machine is not that efficient as a real one when accessing the hardware.
CPU, memory, hard drive, network interface, and other devices. The virtual hardware devices
provided by the virtual machine are pasted to real functioning hardware on your physical
machine. For instance, a virtual computer's virtual hard disk is stored in a file that is found on
Moreover, you can have a few virtual machines installed on your system where you're only
constrained by the amount of storage you have available. After installing operating systems
into your virtual machines, you can open your virtual computer program and choose which
virtual machine you want to boot only when the guest operating system is activated and runs
13
3.0 Conclusion
computer system. Virtual PC machines runs on computer architecture and makes use of
functions from real or hypothetical computer where their executions may involve specialized
that acts as a virtual computer whereby it runs on your current operating system ' the host
operating system ' and provides virtual hardware to guest operating systems. The guest
operating system would then be running, as if it were running on a real physical computer,
and from the guest operating system perspective, the virtual machine appears to be a real,
physical computer. The guest operating systems that run in windows can be termed as
Microsoft Virtual Machines, on your host operating system, just like any other program on
your computer and there are other types of virtual machines you may know of such as Linux
Virtual Machine, Java Virtual Machine and vmware Virtual Machine. Virtualization brings
additional hardware and software, etc. But as it is always the case, it has certain shortcomings
too.
14
References
ARNETT, K. et al. (2006), A strategy for the successful implementation of online
Chicago.
PC Week, USA.
15