What is a Virtual Machine (VM)?
A virtual machine (VM) is a programme that simulates a computer system. They are virtual computers that can run the same applications as a “normal” computer. They can be used
- to run several operating systems or applications simultaneously on the same hardware.
- to create isolated environments for development and testing purposes.
How does it work?
To use a VM, the software must be installed. This requires a hypervisor that allows access to the physical resources of the computer. The hypervisor is the intermediary between the hardware and the virtual machine. It allocates processor power, main memory and the like. Metaphorically speaking, a hypervisor is like a house that contains several flats. Each flat is a virtual machine and has its own resources such as electricity, water and heating. However, the flats share resources. The hypervisor ensures that each flat can use the resources that have been allocated to it.
Types of hypervisors
IBM describes two types of hypervisors:
- Type-1 hypervisors
A type-1 hypervisor runs directly on the physical hardware of the underlying computer and interacts directly with its CPU, memory and physical storage. For this reason, Type 1 hypervisors are also referred to as bare-metal hypervisors. A type-1 hypervisor takes the place of the host operating system.
- Type-2 hypervisors
A type-2 hypervisor does not run directly on the underlying hardware. Instead, it runs as an application in an operating system. Type-2 hypervisors are rarely used in server-based environments. Instead, they are suitable for individual PC users who need to run multiple operating systems. Examples include engineers, security professionals who analyse malware, and business users who need access to applications that are only available on other software platforms.
Advantages of Virtual Machines
Advantages of VMs:
- Multiple operating systems can be run on a single piece of hardware. The resources of the computer are shared.
- VMs can be used to run older software. Migration to a new system can then be omitted (even if this is not best practice).
- In a VM, it can be tested whether a developed software works for the respective operating system and the allocated resources.
- Security: If malicious code is smuggled into the VM, the computer behind it is usually not affected.
- On our own behalf: We use VMs for our Remote Development Environmets product. Read more about RDEs: What are Remote Development Environments?
Disadvantages of virtual machines
The disadvantages are:
- Performance degradation: Performance can suffer. VMs always have to fall back on hardware resources. If, for example, not enough RAM is available, this can lead to problems. If several VMs are operated, performance losses of individual VMs are also possible.
- If the computer fails, the VMs running on it will also no longer function.
Providers of VMs
- Oracle VM VirtualBox (free virtual machine)
- VMware Fusion Pro
- Parallels Desktop for Mac
- Microsoft Hyper-V Manager
- VMware Workstation Pro
Subscribe to the Cloudomation newsletter now
Become a Cloudomation Insider. Always receive new news on “Remote Development Environments” and “DevOps” at the end of the month.