A Virtual Machine (VM) is the virtualization/emulation of a computer system. Virtual machines are based on computer architectures and provide marginal functionality of a physical computer. Virtual Machines also be considered a Guest Device, which is a virtual computer with their own CPU, Memory, Network Interface, and Storage all located on a Physical Machine known as a Host Device with the two being separated by a software called a Hypervisor. In some cases, the use of Virtual Machines may require the use of specialized hardware, software, or a combination of the two.
- VMs are used in various organizations and can be used for various reasons
- resource testing
- running outdated operating systems that are required for running legally systems
- software design and testing
- consolidating servers within a business
Virtual Machines will often vary depending on their particular functions. Because of this VMs are organized into two categories, System Virtual (Full Virtualization) and Process Virtual.
System Virtual Machines
System Virtual Machines, or Full Virtualization Machines, are isolated duplicates of real computers, or guest operating systems, being emulated through a real-world host machine. A host machine can emulate several guest machines running different operating systems.
Process Virtual Machines
Process Virtual Machines, not to be confused with application virtualization, runs a normal application through a host OS, and support a single application process. 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.
In most cases, Process Virtual Machines is used in Java Program Development as an abstraction layer for other computer languages. In other instances, Process Virtual Machines are used in computer clusters for their abstraction over communication mechanisms.