Virtual Machine Software Virtual machine (VM) is an imitation of a computer system which is based on computer architectures and behave like a separate computer systems, complete with virtual hardware devices. It provide same functionality as a physical computer. Virtual machines software include virtual desktop infrastructure, application runtime, and backup software systems. Virtual machines are computer files that run on a physical computer. A virtual machine is known as a guest, created within a computing environment, called a host. Multiple virtual machines can exist in one host at one time. Virtualized servers, applications, and other machines are leveraged by users for scalable and versatile functionality. The computer software that creates and runs the virtual machine is known as Hypervisor. Some VMs are designed to compete different architectures and allow execution of software applications and OS written for another CPU or architecture. A virtual machine is an efficient, isolated duplicate of a real computer machine. It has no direct correspondence to any real hardware. Virtual machines provides many advantages for operating system development and include improved debugging access and faster reboots. Virtual machine is created to perform specific tasks that are risky to perform in a host environment, such as accessing virus-infected data and testing operating systems. It can also be used for other purposes such as server virtualization. IT personnel use virtual machines to try out new programs or operating systems, create virtual disk images, and create database servers in the cloud. A number of free or open-source virtualization technologies are available today, enabling companies to save money. Cloud-Based virtual machines run on a computer that is accessed from the Internet. The virtual machine is controlled through a web browser or a remote access utility. Cloud-based VMs can test software deployments and they even can test on dozens of machines without hosting the VMs locally. Types of Virtual machine Virtual machines come in two forms: process virtual machines and system virtual machines, each with different functions. Process virtual machines – Process virtual machine are also called as an application virtual machine (AVR) or Managed Runtime Environment (MRE) that runs as a normal application inside a host OS and supports a single process. Process VMs can execute computer programs in a platform-independent programming environment. This covers the information of the underlying hardware or operating system and allows the program to be executed in the same fashion on any platform. It provides a high-level abstraction such as high-level programming language. Process VMs are implemented using an interpreter and performance comparable to compiled programming languages can be achieved by the use of just-in-time compilation. Process VMs became popular with the Java programming language and it can be implemented using the Java virtual machine System virtual machines – System virtual machines are also called as full virtualization virtual machines. System VMs can support the sharing of a host computer’s physical