The introduction of Software containers is widely regarded as a revolution in server administration. The idea of isolating applications in virtual runtime environments is nothing new, but with platforms like Docker, users can enjoy extensive functionality, which facilitates working with server containers. So, what exactly can application containers do?
Virtualization creates opportunities in technology that are quite new. Instead of a constructing a complete system (including hardware and the operating system structured around it), one simply creates a virtual version of it – in a way, it’s the illusion of a PC environment. This technology is utilized in software development, for example, in order to create a safer testing environment. So that this can function, however, a virtual machine has to be migrated onto a physical system. Between these two levels there must be an authority that produces a connection without being too heavily influenced by the physical or virtual levels. Therefore, an abstract layer serves as an intermediary: the so-called hypervisor.
What is a hypervisor?
When a virtual machine (VM) is created, it runs based on a non-virtual, actual machine – on a PC, for example. The VM is thus reliant on the physical hardware. For this reason, there is a layer between both levels which is responsible for its management: the hypervisor. The hypervisor is a software which assumes the management of the necessary resources. The program, otherwise known as the virtual machine monitor (VMM), assigns the main storage, fixed-disk storage, network components, and processor performance within the system. In this way, several and different virtual machines can run on a host system, while the hypervisor ensures that these don’t impede one another and that all of them have the necessary capacity.
Essentially, the guest system (therefore, the virtualization) does not notice any of the VMM’s organizational steps. The hypervisor abstracts the hardware in such a way that the VM originates from an established hardware environment. Because the requirements that depend on the running programs always change with virtual machines, the fact that the hypervisor can provide resources as needed is one of its essential benefits. The guest system doesn’t notice this either: The virtual machine is unable to recognize the existence of other machines that run on the same physical hardware.
The strict separation between the different virtual machines ensures not only a good distribution of resources – it also increases security. Via the hypervisor, one can ensure that a guest system cannot access the data of the other guest system. This is especially important for testing purposes, so that a faulty program is not also able to damage other testing environments.
Because the hypervisor only forms an abstract layer and simulates a hardware environment for the virtual machine, this guest system is not bound to a specific hypervisor – and just as little to a specific host system. For this reason, virtualization via hypervisor is very interesting for cloud services: Service providers can simply move the virtualized testing environment onto another physical machine without the programs that run in the VM having problems as a result.
The virtual machine monitor also provides the user with management options. In this way, the separate guest systems can be organized and set up. Mostly, one can use a graphical user interface to create, configure, and run VMs, and then delete them.
Different types of virtual machine monitors
There are two different types of virtual machine monitors that distinguish themselves through their own very unique benefits. The version we mention first is also the older of the two. As early as the 1960s, virtualization tests have been attempted with this technology.
Type 1 hypervisor
The first type of hypervisor is as a bare metal hypervisor or native hypervisor. This form of VMM is imposed directly onto the physical hardware and is not connected with the host’s operating system. For this reason, this type of hypervisor must itself also contain some device drivers. Resource consumption with the Type 1 hypervisor is relatively small, as the computer power does not only run on the host’s operating system. This form of hypervisor is primarily geared toward users who want to use it to create a server for virtualization. For smaller projects in the home user category, a Type 1 hypervisor is too complex.
Type 2 hypervisor
The second version (also known as the hosted hypervisor) requires an existing operating system that in turn is set up over the physical hardware. A Type 2 hypervisor is thus also installed like every other program. The VMM then manages the virtualization. The device driver must not be installed in the hypervisor, as the actual operating system can easily transfer this to the software. This convenience comes at the cost of performance. A significant portion of resources are already lost to the host’s operating system. Through simple installation and configuration, however, Type 2 hypervisors are perfectly suitable for smaller projects.