Kernel virtualization is any one of a number of methods in which an operating system (OS) kernel is adapted to support different users running applications simultaneously on a single machine. The kernel is the essential core of an operating system that provides basic services for all other parts of the OS.
Virtualization is a way of creating multiple virtual systems that share physical compute resources, such as processor cycles, memory space, network bandwidth and so on. In the conventional virtualization model, a hypervisor isolates operating systems and applications from the underlying computer hardware, allowing the host machine to operate multiple, independent virtual machines (VMs) as guests, which share the host resources. Kernel virtualization may be based on either hypervisors or containers.
Examples of kernel virtualization include:
KVM (kernel-based virtual machine) is a modified QEMU (quick emulator) that uses virtualization processor extensions (Intel-VT and AMD-V) to connect to VMs. KVM uses the Linux kernel as a hypervisor. The software is bundled with the Linux OS and can be installed along with the Linux kernel.
OS virtualization is a container-based kernel virtualization method in which an operating system is adapted so it functions as multiple, discrete systems to support different users running applications simultaneously on a single machine. OS virtualization makes it possible to deploy and run distributed applications without launching an entire VM for each application. Instead, multiple isolated systems, called containers, are run on a single control host and access a single kernel.
Linux Containers projects, such as LXD, LXC and LXCFS, involve self-contained images, complete with their own execution environments, running at an operating system level rather than as a full VM. With customizable and dedicated CPU, memory, storage and network resources, containers allow isolated Linux environments to run in a trimmed-down OS-level VM and make it possible to limit programs that might otherwise consume all available resources.