13-09-2013, 02:28 PM
VIRTUALIZATION
VIRTUALIZATION.docx (Size: 342.17 KB / Downloads: 20)
As it is our first encounter with virtualization as a concept and in particular virtual machines, we faced difficulty to accept this terminology intuitively, which in turn led us to search for it in the web throughout its immense resources.
In consequence of this search, we concluded with this important information about history, objectives and purposes, and types of virtualization software.
Concept Definition:
Virtual machine is a software implementation of a machine (i.e. a computer) that executes programs like a real machine. In other words, it emulates a hardware system.
Generally, a virtual machine in computer science is software that creates an environment between the computer platform and the end user in which the end user can operate software.
Common, meaning of virtual machine is a piece of computer software that isolates the application being used by the user from the computer. Because versions of the virtual machine are written for various computer platforms, any application written for the virtual machine can be operated on any of the platforms, instead of having to produce separate versions of the application for each computer and operating system. The application is run on the computer using an interpreter or Just In Time compilation. The Term Virtual Machine coined most commonly in Java programming language.
System virtual machines
System virtual machines provide a complete system environment in which many processes, possibly belonging to multiple users, can coexist. These VMs were first developed during the 1960s and early 1970s, and they were the origin of the term virtual machine.
By using system VMs, a single host hardware platform can support multiple guest OS environments simultaneously.
Primary objective:
At the time they were first developed, mainframe computer systems were very large and expensive, and computers were almost always shared among a large number of users. Different groups of users sometimes wanted different operating systems to be run on the shared hardware, and VMs allowed them to do so.
System virtual machines (sometimes called hardware virtual machines) allow the sharing of the underlying physical machine resources between different virtual machines, each running its own operating system. The software layer providing the virtualization is called a virtual machine monitor or hypervisor.
Process virtual machine
A process VM, sometimes called an application virtual machine, runs as a normal application inside an OS and supports a single process. It is created when that process is started and destroyed when it exits. Its purpose is to provide a platform-independent programming environment that abstracts away details of the underlying hardware or operating system, and allows a program to execute in the same way on any platform.
A process VM provides a high-level abstraction — that of a high-level programming language (compared to the low-level ISA abstraction of the system VM). Process VMs are implemented using an interpreter; performance comparable to compiled programming languages is achieved by the use of just-in-time compilation.
This type of VM has become popular with the Java programming language, which is implemented using the Java virtual machine. Another example is the .NET Framework, which runs on a VM called the Common Language Runtime.
VM installation
After learning the background history of the virtual machines, comprehending the main purposes behind their discovery and usage and examining several of its types. We decided to download virtualization software and install it on the computer, then download an operating system that differs from the host and install it on the virtual machine to test its functionality for ourselves.
We picked two hypervisors to test them on the host machine; the first one was parallels workstation, and the second one was Virtual box, whereas, Ubuntu was our choice as the guest operating system.
X Window System
The X Window System (commonly referred to as X or X11) is a network-transparent graphical windowing system based on a client/server model. Primarily used on Unix and Unix-like systems such as Linux, versions of X are also available for many other operating systems. Although it was developed in 1984, X is not only still viable but also is in fact the standard environment for Unix windowing systems.