Virtualisation

Technology — James William Steven Parker

Virtualisation is the technique of presenting logical computing resources or environments that are implemented using underlying physical resources, allowing multiple isolated or independently managed computing environments to share hardware. In its most familiar server form, a hypervisor provides virtual machines that behave sufficiently like physical computers for operating systems and applications to run inside them. The hypervisor mediates access to processors, memory, storage and devices, creating an abstraction between guest operating systems and the physical host.

Virtualisation can also refer more broadly to virtual memory, virtual networks, virtual storage and other abstractions, but machine virtualisation specifically concerns executing a guest operating system within a virtual hardware environment. Its central benefits include isolation, resource consolidation, portability, testing flexibility and more efficient utilisation of physical infrastructure, although it introduces performance overheads, management complexity and additional security considerations.

A virtual machine normally consists of virtualised processor resources, memory, storage devices, network interfaces and firmware-like components presented to a guest operating system. The guest believes it is operating on a computer with these resources, while the hypervisor maps requests to the underlying physical system. Type 1 hypervisors run directly on hardware and are commonly associated with server and enterprise environments.

Type 2 hypervisors run as applications or software layers on top of a host operating system and are commonly used for desktop development, testing and personal virtual machines. The distinction is architectural rather than a guarantee of performance or security. Modern virtualisation technologies can reduce the cost of emulating privileged operations by allowing suitable guest operations to execute efficiently on the processor while the hypervisor retains control over sensitive resources.

Processor virtualisation requires the system to allow guest operating systems to execute while preventing them from controlling the physical machine outside their allocation. Hardware extensions provided by modern processors assist hypervisors with privilege transitions and guest execution. Memory virtualisation adds another translation layer because a guest's virtual address must ultimately correspond to physical memory on the host. Hardware translation mechanisms and translation caches can reduce the overhead of these mappings.

Input/output virtualisation similarly determines how a guest interacts with storage and network devices. Some devices can be emulated entirely in software, while paravirtualised or hardware-assisted interfaces can reduce overhead by giving the guest a more efficient communication path. Virtualisation performance therefore depends heavily on the processor, memory subsystem, device model, workload and hypervisor architecture.

Virtualisation provides isolation between guest environments, but isolation is not equivalent to absolute independence. Multiple virtual machines share physical hardware and therefore compete for processor time, memory bandwidth, storage throughput and network capacity. A host can overcommit resources by assigning more virtual resources than are simultaneously available physically, relying on workload behaviour and scheduling to make this practical.

Memory techniques such as ballooning or deduplication can help manage pressure in some environments, while storage and network systems can use shared infrastructure with quotas and quality-of-service mechanisms. Resource contention can produce performance variability, especially when several guests generate intensive workloads simultaneously. Capacity planning is consequently important: virtualisation can increase utilisation, but it cannot remove the physical limits of the underlying infrastructure.

Virtual machines differ from processes and containers in important ways. A process normally shares the host operating system kernel with other processes, while a virtual machine runs a separate guest operating-system kernel inside a virtual hardware abstraction. Containerisation generally isolates application environments while using the host kernel, whereas a virtual machine provides stronger architectural separation between guest and host operating-system environments at the cost of a larger software stack.

Virtual machines are therefore useful when different operating systems or kernel versions must coexist on the same physical host, while containers are often more lightweight for applications designed around a shared kernel. These are not mutually exclusive technologies: containers can run inside virtual machines, and virtual machines can be managed as components of larger container or orchestration infrastructures.

Virtualisation has become important in server consolidation, cloud computing, software testing, development, disaster recovery and desktop environments. A physical server can host multiple virtual machines, each running different applications or operating systems, reducing the need for one physical machine per workload. Snapshots and image-based deployment can make it easier to reproduce environments, although snapshots are not substitutes for properly designed backups.

Virtual machine migration can allow workloads to move between compatible physical hosts with limited interruption, supporting maintenance and workload balancing. Cloud providers build extensively on virtualisation or related isolation mechanisms to provide customers with apparently independent computing instances. The abstraction allows customers to provision computing resources without directly managing the physical servers on which their workloads execute.

Security in virtualisation involves the hypervisor, guest operating systems, management interfaces, virtual devices and shared physical resources. A vulnerability in the hypervisor or a virtual-device implementation can potentially affect isolation between guests, making the hypervisor a security-critical component. Management interfaces require strong authentication and access controls because administrative compromise can expose many guest environments simultaneously. Virtual machines can also be affected by side channels arising from shared hardware resources, although the severity depends on workload, processor architecture and threat model. Guest security remains necessary: placing an unpatched operating system inside a virtual machine does not automatically make it secure. Virtualisation therefore changes the security boundary rather than eliminating security responsibilities.

Virtualisation has evolved from hardware partitioning and mainframe techniques into a broadly used computing abstraction. Modern systems combine processor assistance, sophisticated memory management, virtual networking, software-defined storage and automated management. The technology supports reproducible development environments, infrastructure automation and elastic allocation of computing resources, but it can also produce management sprawl when organisations create more virtual machines than they can maintain effectively.

Licensing, backup, monitoring, capacity planning and lifecycle management remain important because virtual machines still contain operating systems, applications and data that require administration. Virtualisation should therefore be understood as an abstraction and resource-sharing technology rather than simply as a way of running another operating system: its value comes from separating logical environments from physical infrastructure while retaining sufficient performance, isolation and manageability for the intended workload.