Boot Process
The chain of handoffs from power button to login screen, firmware to bootloader to kernel to init, and where each link can break or be verified.
The boot process is the sequence of handoffs that takes a computer from power-on to a running operating system. Each stage is small enough to fit where the previous one can find it, and its only job is to load and start something larger. The word comes from "pulling yourself up by your bootstraps", since a computer must load the very software that knows how to load software.
On a modern PC the chain runs roughly like this:
- Firmware. Power-on starts code stored on a chip on the motherboard. It runs a power-on self-test, initializes memory and devices, and loads any CPU Microcode update. The original IBM PC used BIOS from 1981; nearly all machines now use UEFI, standardized in 2005, which understands partitions and filesystems and can run programs from an EFI System Partition.
- Bootloader. Firmware launches a bootloader such as GRUB, systemd-boot, or Limine. It offers a menu of kernels or operating systems, passes command-line options, and loads the chosen Kernel into memory. Some bootloaders also list Filesystem Snapshot entries, so a broken upgrade can be undone by booting an earlier snapshot.
- initramfs. Alongside the kernel comes a small compressed filesystem loaded into memory. It contains just enough tools and drivers to find the real root filesystem, which might be encrypted, on RAID, or on a device needing a module the kernel does not have built in. Once the real root is mounted, the system switches to it.
- Init. The kernel starts the first user-space process, PID 1, which on most Linux systems is Systemd. The Init System starts services in dependency order, mounting filesystems, bringing up the network, and finally launching a login prompt or display manager.
Every stage is a place to break. A corrupt bootloader configuration stops the machine before the kernel loads. A kernel upgrade without a matching initramfs, or a missing driver inside it, leaves the system unable to find its root disk and dropping into an emergency shell. A service that fails or hangs can stall boot entirely.
Secure Boot, part of UEFI, verifies each stage before running it. Firmware checks the bootloader's signature against trusted keys, the bootloader checks the kernel, and the kernel can require signed modules. It defends against bootkits that hide below the operating system, using the same Public-Key Cryptography as Code Signing. Linux distributions boot through a small Microsoft-signed shim, since most PCs ship trusting only Microsoft's keys. Out-of-tree drivers must then be signed with a key the user enrolls.
systemd-analyze blame lists how long each unit took, and the critical-chain view shows which waits actually delayed reaching the desktop. Once started, a machine can be guarded by a Watchdog Timer that reboots it if the system hangs.
See also3
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
Firmware
The software built into hardware itself, running every keyboard, drive, and charger below the operating system, hard to inspect, risky to update, and a favorite hiding place for persistent malware.
Systems & Tooling14 connections
Serial Port
The old, simple connection that sends data one bit at a time, inherited from teleprinters and modems, gone from consumer computers but still the last-resort console for servers, network gear, and embedded boards.
Systems & Tooling10 connections
Linked from11
- 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.
- Filesystem SnapshotSystems & Tooling
A point-in-time, near-free copy of a filesystem's state, made possible by sharing unchanged blocks with the live data.
- FirmwareSystems & Tooling
The software built into hardware itself, running every keyboard, drive, and charger below the operating system, hard to inspect, risky to update, and a favorite hiding place for persistent malware.
- Init SystemSystems & Tooling
The first userspace process a kernel starts, and the ancestor of every other process on the machine.
- 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.
- Kernel PanicSystems & Tooling
The operating system kernel deliberately halting when it detects an error it can't safely recover from, the Unix version of the Blue Screen of Death, and how crash dumps and watchdogs turn it into a fast reboot.
- 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.
- Serial PortSystems & Tooling
The old, simple connection that sends data one bit at a time, inherited from teleprinters and modems, gone from consumer computers but still the last-resort console for servers, network gear, and embedded boards.
- Suspend and HibernationSystems & Tooling
The power states that let a computer pause instead of shutting down, keeping memory powered for a fast resume or saving it to disk for a resume with no power at all, and a recurring source of laptop bugs.
- SystemdSystems & Tooling
The dominant Linux init system, replacing sequential startup scripts with declarative, parallel, dependency-aware units.