A virtual machine (VM) is where a software program behaves like an actual "machine". Instead of connecting extra hardware to a computer or server, virtual hardware runs on the host machine simulating a computer-controlled system.
What are the applications of Virtual Machines?
One use is when a virtual machine emulates a different operating system to the one running on the computer. This allows you to run, for example, Windows software on a Linux operating system. Another example is a people counting algorithm running as a virtual machine and processing a video stream, which negates the need for counting hardware.
Why use a Virtual Machine?
Virtual machines have many benefits. They can be deployed almost anywhere, regardless of the operating system or configuration of the host. They cut down the need for physical hardware and make systems independent, improving security and reliability. VMs are isolated from each other and their hosts and system resources are divided between the virtual machines. You can migrate any virtual machine to any physical server.
Hypervisors - the running environment for Virtual Machines
Virtual machines run under a hypervisor. There are two types of hypervisor. One runs on the underlying operating system. This is called a type 2 hypervisor and is useful for running on personal computers. Examples include Oracle's Virtual Box and VMware Workstation Player. A type 1 hypervisor runs on the "bare metal" and accesses the hardware directly: it is the operating system. Examples of these are VMWare vSphere and Microsoft's Hyper-V.
More on our Virtual Machines.