A virtual machine is a software implementation of a computer architecture in which an entire operating system can be installed.
An virtual machine emulates the physical computer architecture using the computer hardware, such as CPU, RAM, HDD, and other resources. So basically it creates a virtual environment using your actual physical computer resources.
The operating system which is to be installed in the virtual machine is called as a Guest OS. This OS always runs on top of your Host OS, which is basically your main or original operating system, which is using your actual hardware resources and not the virtual ones.
The Guest OS is unaware that it is installed on a virtual machine. It cannot differentiate from a physical hardware and the virtually emulated hardware, created by the virtual machine. This means that all the programs, software, files, execute in the same manner as they would, if they where using the physical server hardware, because the Guest OS comprehends that all the resources available to it, is the actual physical hardware.
There are several advantages of using an virtual machine over directly installing an operating systems and program into your physical hardware.
- The software and services that run in the VM cannot communicate with the Host OS.
- Hardware resources provided to the machine can be optimized on the fly.
- The VMs can be moved, copied withing the host computer to get the best performance out the physical hardware.