A virtual machine (VM) is an emulation of a computer within a computer. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.
There are different kinds of virtual machines, each with different functions:
- System virtual machines or full virtualization virtual machines provide a substitute for a real computer. They provide the functionality needed to execute entire operating systems. A virtual machine monitor (VMM) uses native execution firmware to share and manage hardware, allowing for multiple environments which are isolated from one another, yet exist on the same physical machine. Examples are Oracle Virtual Box, VM Ware.
- Process virtual machines are designed to execute computer programs in a platform-independent environment. The best example for this is a Java Virtual Machine.