What is a Virtual Machine – Types and Advantages

The concept of a virtual machine was introduced around 1960. It is the evolution of the time-sharing technique. In the time-sharing method, each program has full access to all the computer resources but at a time, only one program will be executed. The system switch between programs in time slices while saving and restoring program states each time. With the use of the time-sharing method, multiple users can use the computer system concurrently. IBM research centers evolved the time-sharing method as Virtual Machines. CP-67 was the first available virtual machine architecture. Systems with multiple Virtual Machines on a single host and single virtual machine on multiple hosts were developed.


Before launching any new hardware technology, it is first tested on the emulator to detect, recreate and repair the flaws in the design & tack necessary steps. Similarly, before introducing any new software, it is simulated to check for any errors and debug them. To do this task, a system that can act as a substitute for the main environment to build new technology. This is where Virtual Machines come into the picture. It acts as the emulation of the computer system providing the full functionality of the physical system.

What is a Virtual Machine?

With the introduction of new technologies and newer research models, a lot number of hardware and software products are being launched. Many of the software are platform-dependent hence it is sometimes difficult to debug or check them because of the limited hardware resources.

A VM (virtual machine) is an emulation of a computer system, where these machines use computer architectures to provide the functionality of a physical computer.  The physical device on which virtual machines work is known as Host, whereas the virtual machines are known as Guest. A single host can have multiple numbers of guests.

Types of Virtual Machine

The virtual machine works like a computer, and it is sandboxed from the rest of the host system. The software within the guest cannot make changes to the software of the host system. Thus, the virus files can be tested using a virtual machine without affecting the main computer system. The computer software that creates and runs the virtual machine is known as Hypervisor. Based on their functions there are two different types of virtual machines – System virtual machines and process virtual machines.

 1). System Virtual Machines

These types of VMs provide full virtualization. Acting as the substitute for the real machine, these will provide functionalities to execute an entire operating system. Hardware resources are shared and managed, forming multiple environments on the host system. These environments are isolated from each other but exist on the same physical host. Thus, these provide time-sharing among several single-tasking operating systems.

"<yoastmark

To allow memory sharing between different virtual machines on one computer operating system, memory overcommitment systems can be applied. Memory pages having identical content can be shared among multiple virtual machines present on the same physical host. This is highly useful for read-only pages.

 2). Process Virtual Machines(VM)

These VMs are also known as Application virtual machines, Managed runtime environments. This type of VM runs as a normal application inside the host’s operating system, supporting a single process. It is created with the starting of the process and is destroyed when the process ends. It is used to provide a platform-independent programming environment to the process, allowing it to execute in the same manner on any of the other platforms.

Process-Virtual-Machine
Process-Virtual-Machine

These are implemented using interpreters and provides high-level abstractions. These are popularly used for Java programming which uses Java virtual machine for execution of programs. There is a special case of a process VM that abstracts over the communication mechanism of a computer cluster. These contain one process per physical machine in the cluster. These help the programmer to focus on the algorithm instead of the communication process provided by the interconnect and virtual machine in OS. The application running on these VM has access to all the operating system services. Parallel virtual machine, Message passing interface are examples of these virtual machines(VM).

Architecture

Runtime software is the virtualization software that implements the Process VM. It is implemented at the API level of the computer architecture above the combined layer of OS and Hardware. This emulates the user-level instructions as well as OS or library calls. For the system virtual machine, the virtualization software is called Virtual Machine Monitor(VMM). This software is present between the host hardware machine and the guest software. VMM emulates the hardware ISA allowing the guest software to execute a different ISA.

Advantages

Some of the advantages of the virtual machines are as follows-

  • Virtual machines provide software compatibility to the software running on it. Thus all the software written for the virtualized host will also run on the virtual machine.
  • It provides isolation between different types of operating systems and processes. Thus the processor operating system running on one virtual machine cannot modify the processes of the other virtual machines and Host system.
  • These provide encapsulation and software present on a virtual machine can be modified and controlled.
  • For the multi-operating system host, these provide various features like no dual booting, transfer of files between virtual machines, error in one OS doesn’t affect the other OS present on the host, freash OS can be added easily.
  • These provide good software management like these can run a complete software stack of the host machine, run legacy OS, etc..
  • Here it is possible to share Hardware resources with independent software stacks and to balance the load, the Virtual machines can be transferred to the different computers.

Thus, modern computing systems are becoming more complex which contains various closely interacting software and hardware components. Here, virtualization acts as an interconnection technology. Virtual machines make incompatible subsystems to work together. It also provides more flexible and effective use of hardware resources among multiple operating systems. These provide interoperability between hardware, system software, and applications. What are the differences between the Process Virtual Machine and system Virtual Machine?