Boot Process
The boot process, or booting, is the sequence of steps by which a computer goes from powered off, with nothing in working memory, to a running operating system ready to accept a user. The name is shortened from bootstrapping, from the old phrase about pulling oneself up by one's own bootstraps, because the machine must start itself with only a tiny amount of built-in code, which loads something larger, which in turn loads something larger still. Every computing device boots, whether it is a laptop, a phone, a router or a virtual machine in a cloud data center, though the details vary.
The core problem of booting is that RAM is empty at power-on and the operating system lives on slow storage, so each stage must be small enough to start and smart enough to load the next. When power becomes stable, the processor is reset and begins executing at a fixed address; on x86 processors this reset vector sits at 0xFFFFFFF0, just under 4 gigabytes, where the motherboard maps its firmware chip. That firmware, a legacy BIOS or UEFI, initializes memory and devices, runs a power-on self-test and decides which device to boot from according to its saved boot order. It does not load the whole operating system, only a boot loader, a small program such as GRUB or the Windows Boot Manager, whose job is to locate and load the kernel into memory. The chain is deliberate: each link is limited by what the previous one could do.
Once the kernel is running, the later boot stages shift from hardware to software setup. The kernel, which has its own entry in this glossary, initializes its memory management and scheduler, detects hardware and loads drivers, often from a temporary root file system loaded into memory (the initramfs on Linux) so it can reach the real disk. It then mounts the real root file system and starts the first user-space process, which on most Linux systems is systemd. That process launches services in dependency order: networking, logging, a display manager, a database or a web server. Windows follows a similar path with its session manager and service control manager. When the login screen or desktop appears, the system is said to be booted, though background services may still be starting.
Different kinds of startup exist, and the terminology is often confused. A cold boot starts from complete power-off and runs every stage; a warm boot or restart resets the machine without removing power, although modern hardware often performs much the same sequence. Sleep keeps memory powered so resume is nearly instant, and hibernation writes memory to disk and powers off. Windows Fast Startup, introduced in Windows 8, is a hybrid: shutdown saves the kernel's state to disk, so the next start restores it, and this is why a shutdown may not clear a driver problem and a true restart does. Alternative boot sources include a USB installer, a network boot using PXE, and a dual-boot setup in which the boot loader offers a choice of several operating systems. Virtual machines boot virtual firmware, whereas containers share the host's kernel and have no boot process of their own, which is part of why they start in a fraction of a second.
Boot is also where a great deal of trust and troubleshooting meets. Secure Boot and measured boot, in which each stage's hash is recorded in a TPM, let a machine verify that what started is what was intended. Failures are usually traceable to a stage: no display and beeps point to firmware and hardware; a message that no boot device was found points to the boot order, disk or boot loader; a kernel panic or stuck splash points to the kernel or its drivers. For engineers, cloud providers and machine-learning clusters, boot time, reproducible images and remote boot from a network are operational concerns, and embedded devices add bootloaders such as U-Boot.
Read the boot process as a relay in which each small, trusted program loads a larger one, from the firmware's reset vector through the boot loader and kernel to the first user process, so that a machine can lift itself from an empty memory to a full operating system, and a failure can be diagnosed by finding the last stage that ran.