The term virtual machine( VM) has two definitions: The most common use is in the context of server virtualization, where it refers to the virtualized system (often referred to as a guest - as opposed to a host) running in a compartmentalized virtual environment.
Virtual machines are a complete operating system that behaves exactly as if it were installed directly on the hardware - as originally intended. The virtual machine runs under the control of the virtual machine monitor( VMM) or hypervisor, with the virtual machine having direct, partial or no access to the hardware, depending on the system architecture. In the latter case of full virtualization, the virtual machine operates entirely on virtualized or emulated hardware.
In addition, virtual runtime environments for programs written specifically for these runtime environments are also referred to as virtual machines. The best-known example is the Java Virtual Machine( JVM), which provides an identical program execution environment for all common hardware platforms and operating systems, so that the program code running on it only has to be written once.