A virtual machine (VM) is a software simulation of an entire computer. Virtual machines can run the same operating systems and software as physical computers, but they operate wholly inside an application called a virtualisation host, or hypervisor.
Typically, the host uses a data file to simulate a hard disk for the virtual machine, and an optional simulated network interface to enable the virtual machine to communicate with the outside world.
which companies offer hypervisors?
There are several virtualisation hosts that can be used to create and configure virtual machines.
Microsoft’s Hyper-V is built into Professional, Enterprise and Server editions of Windows, and allows for the direct management of virtual systems via the Windows Admin Centre console. VMware offers commercial hypervisor software for Windows, Linux and macOS, managed via the company’s vCenter platform.
Why are virtual machines used?
Virtual machines have several advantages over physical hardware:
- Virtual machines cannot access software or data on the host computer, providing protection against malware and bugs.
- Virtual machines allow a single computer to host multiple applications within their own tailored environments – even if they use different operating systems.
- The amount of memory, storage and CPU power available to a VM can be adjusted as needed with a few clicks in the virtualisation host.
Because a VM’s storage is entirely contained in a single file, it’s also very easy to back up a virtual machine, or migrate it to a new host – either on local hardware, or in a remote data centre.
Similarly, it’s possible to capture a snapshot of a running VM by simply duplicating its storage file. This can be instantly restored at any later point, making virtual machines very convenient for development and testing.
What are the drawbacks of using virtual machines?
Virtualisation consumes a lot of computing resources, as the host needs to be powerful enough to run one or more entire virtual systems concurrently on top of its own operating system.
Even given sufficient resources, virtual systems may run more slowly than physical ones, owing to the overhead of hardware emulation. However, modern CPUs feature extensions that allow virtualised processes to execute directly on the hardware, providing near-native performance.
What’s the alternative to virtualisation?
A more resource-efficient alternative to virtualisation is containerisation, as popularly implemented by the Docker framework. Rather than emulating an entire computer, Docker collects together only the resources and components required by a specific application package, and runs them in a self-contained environment.
Like virtualisation, containerisation allows multiple applications to operate in their own separate spaces, with no access to external resources except as permitted by the containerisation host. Snapshots and backups are easily captured too.
However, containerised applications are ultimately executed by the host operating system, rather than having an entire virtual machine to themselves. This means there’s a greater risk of compatibility or configuration issues, and even of possible exploits.
- A virtual machine is a complete simulation of a computer, capable of running applications and services just like a physical system.
- Virtual machines allow multiple services and operating systems to be hosted on a single computer.
- Virtual machines offer easy backup, snapshot and migration capabilities.
- Virtualisation can be resource-intensive; containerisation is a more lightweight alternative with some of the same benefits.
Was this explainer helpful?
Nathalie Parent, Chief People Officer at Shift Technology: “HR is the conscience of an organisation”
For more than 30 years, Nathalie Parent has led global HR teams, working primarily with software companies. Today she’s Chief People Officer at Shift Technology
Amazon introduces new storage class that makes it cheaper to store rarely used files
Robot carers are real, but caregiving has bigger problems, writes Richard Trenholm in this FlashForward edition