LXC (abbreviation for Linux Containers) allows several independent Linux systems to operate on a single host. In doing so, LXC does not create any virtual machines, rather it uses environments that have their own processes but share the use of the host’s kernel.
The VirtualBox virtualization software was developed by InnoTek, which was taken over by Sun Microsystems in 2008.
It is used to virtualize various operating systems.
The software enables the operation of untailored guest systems and makes computer hardware (hard drives, graphics, sound, network cards, etc.) available to these systems in an emulated form. The processor and RAM are not emulated. Part of the RAM is permanently assigned to the guest system and an attempt is made to execute all the commands of the guest operating system directly on the host’s processor. Privileged processor commands are transferred to the host processor for execution after they are intercepted by the Code Scan and Analysis Manager (CSAM) and the patch manager (PATM). If necessary, VirtualBox can also use the hardware virtualization technologies provided by modern processors.
VirtualBox is compatible with Linux, Windows, macOS, as well as Solaris and OpenSolaris, and 32-bit as well as 64-bit x86 systems are supported as guest systems.
The VirtualBox is available in a closed source variant and as an Open Source edition (OSE). The source text for the Open Source edition can be downloaded from the project page .
Xen is virtualization software that enables the parallel operation of multiple virtual machines on a physical computer. The software originates from a research project conducted at the University of Cambridge.
Xen can be used for paravirtualization as well as in the area of true virtualization.
Modification of the guest systems is necessary on systems that do not offer hardware-based virtualization to allow them to run under Xen. These modifications enable the guest operating systems to cooperate with Xen, in which case paravirtualized systems operate with virtually no loss of speed. The relevant patches are available for a range of popular operating systems, such as Linux, OpenSolaris, and the BSD derivatives.
Xen also enables true virtualization with the presence of hardware-based virtualization functions, as can be found in modern processors. This has the benefit that the guest systems do not need to be modified.
Xen Hypervisor operates at the lowest level. It divides the virtual machines, which are referred to as domains. It is also responsible for managing processes, resources, and interrupts. The host system, Domain-0, is responsible for managing the guest systems as well as the use of the hardware. The outstanding hardware support of the Linux kernel, which is compatible with Domain-0, therefore also benefits all guest systems. The guest operating systems run exclusively as user domains (DomUs).
Alternatively, there is also the option of operating NetBSD or OpenSolaris in Domain-0.
Xen is free software; the source code is freely available on the project page .
oVirt is a complete Open Source virtualization management platform. oVirt is based on the kernel-based Linux Hypervisor KVM and the RHEV-M Management server, which was released to the Open Source community by Red Hat.
This includes comprehensive, web-based user interfaces for administrators and users. oVirt supports the live migration of virtual machines and hard drives between hosts and storage systems. Hosts, storage, and network configurations can be managed and maintained via the user interface.
ProxmoxVE, or Proxmox Virtual Environment, is an Open Source virtualization environment developed by Proxmox Server Solutions.
The environment is based on Debian with a modified Ubuntu kernel and enables the straightforward, efficient deployment of virtual machines and containers. Administration and configuration takes place via a user-friendly web interface.
The virtualization environment was officially released on 04/15/2008 in response to the lack of a backup function in OpenVZ. A web GUI was also added, which makes the project one of the few that could be compared with commercial products that support container and full virtualization. Proxmox now no longer supports OpenVZ and uses LXC instead.
ProxmoxVE can be used as a cluster, i.e. it supports the use of several individual machines. Two types of virtualization are supported: Container-based with LXC and full virtualization with KVM.
Vagrant is a tool for managing virtualized development environments.
Virtual machines with all the components necessary for development can be created in just a few short steps.
This allows all developers in a team to work in a uniform environment.
Vagrant makes use of existing virtualization software, such as VirtualBox.
Various tools, such as Puppet and Ansible can be used to provision the virtual machines.
The Kernel-based Virtual Machine is the Linux kernel’s virtualization solution developed by Qumranet.
It is based on hardware virtualization technologies of Intel (VT) or AMD (AMD-V) processors, which results in a significant performance improvement compared to paravirtualization.
No tailoring by the guest systems is required.
KVM has been a fixed part of the Linux kernel since version 2.6.20 and is also responsible for overall control and management, as well as for resource management. This means that the project directly benefits from further developments of the Linux kernel.
Besides the functions relating to processor access, KVM uses a modified version of Qemu, which emulates the other hardware, such as BIOS, hard drives, or graphics cards.
KVM is distinguished by its simple installation and administration. Even system migrations during live operation are possible with KVM.
KVM is free software, and the source code is available from Qumranet .
Openshift is an Open Source cloud platform for automated, easily scalable applications. Containers are used to quickly and securely virtualize even complex applications with various requirements.
OpenStack is a Linux-based cloud operating system that manages large pools of computer, storage, and network resources in a host cluster or data center, which are all managed via a shared dashboard. This gives the administrators complete control of this cloud.
Users also have the option of creating and maintaining resources, such as virtual machines, etc. OpenStack serves the compute, storage and networking segments.
Docker is Open Source virtualization software. The main feature of this software is that the virtualization does not occur via a virtual machine, which is usually the case, but via containers. Docker was released as Open Source software in March 2013 after it was developed as an internal project under dotCloud, a “platform-as-a-service” provider.
Integration is an important point for Docker, which is the reason that it can be easily integrated into a wide range of infrastructure tools. AWS, Ansible, CFEngine, Chef, and Google Cloud Platform are just a few examples. By far Docker’s most important component is the use of containers. Instead of using applications on a fully established, independent virtual machine (as is the case in traditional virtualization software), Docker packages the application together with all relevant system-related data of the relevant operating system in a container. This enables the application to access all the necessary system, configuration, and other files without having to communicate with a separate, active virtual machine. Besides a significant improvement in availability, this process supports the host system directly, as it uses a minimum amount of resources compared to conventional virtualization.
Similar to Vagrant, Docker supports automated virtualization, Ansible, Puppet, etc.
Ganeti is a virtualization management solution that was developed by Google and is available under the BSD2 license.
Kubernetes is an Open Source system originally developed by Google in order to provide, manage, and scale container applications in a cluster. Together with Docker swarm mode, for example, this now effectively represents the standard for distributed container applications and is also supported by major cloud providers, such as Azure, Google, and AWS. It supports a range of container tools, incl. Docker as probably the most well-known representative, but also other types of containers, such as Rocket.
Various extended systems, such as Red Hat’s Openshift, which extend Kubernetes with additional functions, are also available.
Google has since transferred Kubernetes to the Cloud Native Computing Foundation (CNCF), which promotes the development of various container technologies and now also offers a Kubernetes certified administrator. It offers the following functions, among others:
- Automatic distribution of containers to the provided cluster nodes
- Configuration of the network within the cluster with automatic load balancing
- Resource configuration for individual containers (incl. CPU, RAM, HDD)
- Scaling of the container services via the deployment of multiple instances
Kubernetes makes it possible to operate and extend its container applications on virtualized as well as dedicated hardware with virtually any scaling. The master-slave architecture allows every system on which Docker or the Kubernetes client (Kubelets) is activated and available to be added to as well as removed from the cluster.