Virtual Machines: Introduction
The virtual machine is a classic concept in hardware virtualization, and its primary use is to provide virtual environments for software testing. Many software solutions allow multiple guest systems to operate on a shared host system. But how do virtual machines work, and what are the advantages and disadvantages of this concept of virtualization? We introduce you to the basics of hypervisor-based hardware virtualization and show you how to deploy virtual environments for Windows or Linux.
What Is A Virtual Machine?
A virtual machine has an operating system that uses the hardware resources of an underlying host system. This type of guest system behaves towards the user like an independent PC with RAM, hard disk memory, and file system.
Each virtual machine is based on hypervisor software (or VMM for Virtual Machine Monitor ). The hypervisor runs as an application on the host operating system ( hosted hypervisor ) or directly on the physical machine’s hardware ( bare metal hypervisor ) and manages the hardware resources provided by the host system. Hypervisor software creates a layer of abstraction between the physical hardware and the virtual machine. Each virtual machine operates in isolation from the host and other guest systems in its virtual environment. In this context, we talk about encapsulation.
Many hypervisors combine hardware virtualization technologies with emulation features. These virtualization products don’t just build an abstract layer between the physical hardware they are deployed on and the virtual layer they use. This allows users to emulate runtime environments for other operating systems on a single host. Users can, therefore, also operate guest systems in virtual machines whose system architecture does not match the host system’s.
The following screenshot shows Windows 7 and Ubuntu 17.10 operating systems as virtualized guest systems on the same host system. Each virtual machine runs in its window. Oracle VM VirtualBox is used as virtualization software.
Virtual Machines In Practice
In hardware virtualization, the resources of a physical system can be distributed among multiple virtual systems. Each guest system, including all programs running on it, is separate from the underlying hardware.
Unlike other virtualization concepts, virtual machines offer strong encapsulation and serve as a basis for hosting products that run multiple client servers on a common hardware platform. The provision of virtual machines is the basis of shared hosting, and VPS ( Virtual Private Server ) offers. Because each guest system operates in an isolated execution environment, processes encapsulated in a virtual machine do not affect the host or other guest systems on the same physical device.
In a business context, virtual machines reduce IT infrastructures’ operating and maintenance costs. Companies sometimes have an extensive IT infrastructure that remains idle most of the time. With virtual machines, downtime of this type can be significantly reduced. Instead of providing a separate physical device for each application area of enterprise computing, more and more companies are turning to mail, database, file, or application servers in isolated virtual environments on the same powerful hardware platform. This concept will be implemented as part of server consolidation. Maintaining a large computing platform for different virtual systems is often less expensive than operating several small computers.
Transformers, in particular, are still expensive to purchase. Unused CPU time is an unnecessary cost factor that can be avoided by moving to virtual systems.
Software development is another area of application of virtual environments. Programmers who develop applications for different system architectures often use virtual machines to test software. Many hypervisor products allow parallel operation of other operating systems or system versions. Virtual machines can be created, cloned, and deleted from the physical hard drive with a single click without leaving any data residue. Additionally, due to encapsulation, faulty processes in a virtual machine do not affect the underlying system.
Private users often use hypervisors with emulation functions to run applications originally written for a different system architecture. However, it should be noted that hardware virtualization and emulation are always associated with performance losses. For example, suppose a user wants to run a Linux program in a virtual machine on their Windows computer. In that case, additional resources must be devoted to the hypervisor and the guest system. A Linux application encapsulated in this way no longer has all the power of the underlying hardware. In this context, we talk about overhead costs.