Virtual Machines

Introduction
It is important that virtual memory and virtual machines are not confused with each other – they are different concepts.
This section explains what virtual machines are and outlines some of the benefits and limitations.
Suppose you are using a PC running in a Windows 10 environment and you have downloaded some software that will only run on an Apple computer.
It is possible to emulate the running of the Apple software on the Windows PC (hardware) – this is known as a virtual machine.
The emulation will allow the Apple software to use all of the hardware on the host PC.

Effectively, a virtual machine runs the existing OS (called the host operating system) and oversees the virtual hardware using a guest operating system – in our example above, the host OS is Windows 10 and the guest OS is Apple.
The emulation engine is referred to as a hypervisor; this handles the virtual hardware (CPU, memory, HDD and other devices) and maps them to the physical hardware on the host computer.

Features
Guest operating system
This is the OS running in a virtual machine.
It controls the virtual hardware during the emulation.
This OS is being emulated within another OS (the host OS).
The guest OS is running under the control of the host OS software.
Host operating system
This is the OS that is controlling the actual physical hardware.
It is the normal OS for the host/physical computer.
The OS runs/monitors the virtual machine software.

Benefits and limitations of virtual machines
Benefits
The guest OS hosted on a virtual machine can be used without impacting anything outside the virtual machine; any other virtual machines and host computer are protected by the virtual machine software.
It is possible to run apps which are not compatible with the host computer/OS by using a guest OS which is compatible with the app.
Virtual machines are useful if you have old/legacy software which is not compatible with a new computer system/hardware.
Virtual machines are useful for testing a new OS or new app since they will not crash the host computer if something goes wrong
Limitations
You do not get the same performance running as a guest OS as you do when running the original system.
Building an in-house virtual machine can be quite expensive for a large company. They can also be complex to manage and maintain.