Hypervisor
The layer that lets multiple guest operating systems share one machine's hardware, each believing it owns the machine.
A hypervisor is the software layer that runs one or more guest operating systems on shared physical hardware, giving each guest the illusion that it has the whole machine to itself. It's the technology virtual machines are built on, and it operates one level below where containers do: a container shares its host's kernel and is isolated by namespaces and cgroups, while a virtual machine gets its own complete kernel, isolated by the hypervisor emulating or mediating access to the hardware itself.
Hypervisors split into two types. A type 1 (bare-metal) hypervisor — Xen, VMware ESXi, or KVM, which turns the Linux kernel itself into the hypervisor — runs at the hardware's own privilege level rather than as an application, which is the design nearly every cloud provider uses for the VMs they sell, since it minimizes the overhead between guest and hardware. A type 2 (hosted) hypervisor — VirtualBox, the consumer edition of VMware — runs as an application on top of an ordinary host OS, trading some performance for the convenience of installing it like any other program on a laptop.
The isolation a hypervisor provides is stronger than a container's, because each guest has its own kernel — a kernel bug that would let one container escape to see another container's processes has a much narrower equivalent for VMs — escape requires a bug in the hypervisor or its device emulation (they exist: VENOM, various Xen advisories), a far smaller attack surface than a whole kernel's syscall interface. That stronger isolation costs more: a VM boots its own kernel and duplicates memory a container would have shared with the host, which is why a single physical machine typically runs far more containers than VMs at the same resource budget.
See also6
Control Groups
The Linux kernel feature that caps and accounts for a process group's CPU, memory, and I/O — the resource-limiting half of a container.
Systems & Tooling16 connections
Chroot
Rebasing a process's idea of the filesystem root, the oldest and shallowest form of Unix process isolation.
Systems & Tooling8 connections
Linux Namespaces
The kernel feature that gives a process its own private view of a global resource — the foundation containers are built from.
Systems & Tooling13 connections
Disk Image
A single file holding the complete contents and structure of a disk, used to install operating systems, run virtual machines, preserve old media, and copy drives exactly for forensic investigation.
Systems & Tooling10 connections
Dual Boot
Installing two or more operating systems on one computer and choosing between them at startup, a common way to keep Windows for some tasks and Linux for others, with recurring friction over bootloaders, clocks and shared disks.
Systems & Tooling9 connections
Web Hosting
Renting space on someone else's servers to put a website online, a business that moved from free personal pages and crowded shared machines to virtual servers, rented cloud infrastructure and services that host static files at the edge of the network.
Web Platform9 connections
Linked from8
- ContainerizationSystems & Tooling
Packaging an application with its dependencies into an isolated, reproducible runtime unit.
- CPU AffinitySystems & Tooling
Restricting which cores a thread may run on, which matters most on processors whose cores are not all alike.
- Disk ImageSystems & Tooling
A single file holding the complete contents and structure of a disk, used to install operating systems, run virtual machines, preserve old media, and copy drives exactly for forensic investigation.
- Dual BootSystems & Tooling
Installing two or more operating systems on one computer and choosing between them at startup, a common way to keep Windows for some tasks and Linux for others, with recurring friction over bootloaders, clocks and shared disks.
- KernelSystems & Tooling
The core of an operating system that runs with full hardware privileges, managing processes, memory, devices, and files on behalf of every other program.
- MicrocodeSystems & Tooling
The updatable firmware inside a processor that controls how it executes instructions, how operating systems load patches into it at every boot, and the hardware bugs it has been used to fix.
- System CallSystems & Tooling
The doorway through which a program asks the operating system kernel to do anything privileged, from reading a file to starting a process.
- Web HostingWeb Platform
Renting space on someone else's servers to put a website online, a business that moved from free personal pages and crowded shared machines to virtual servers, rented cloud infrastructure and services that host static files at the edge of the network.