The Boot Process

[!NOTE] This module explores the core principles of The Boot Process, deriving solutions from first principles and hardware constraints to build world-class, production-ready expertise.

1. The Chain of Trust

When you press the power button, the CPU is dumb. It has no OS. It needs to be spoon-fed instructions until it is smart enough to load the Kernel.

This process is a relay race called the Boot Chain.

2. Step 1: Firmware (UEFI / BIOS)

The first code to run is burned into the motherboard’s flash memory.

  • POST (Power-On Self-Test): Checks if RAM and GPU exist.
  • Boot Selection: Scans disks (SSD, USB) for a bootloader.

3. Step 2: The Bootloader (GRUB)

The firmware loads the Bootloader (usually GRUB on Linux) from the EFI Partition.

  • Role: Let the user choose an OS (Linux, Windows, Memtest).
  • Action: Loads the Kernel (vmlinuz) and the Initial RAM Disk (initrd) into memory.

4. Step 3: The Kernel (vmlinuz)

The Kernel is compressed. It decompresses itself and takes control of the CPU.

  • Role: Detect hardware, mount the Root Filesystem (/).
  • Problem: To mount the root filesystem (on an LVM or Encrypted Disk), it needs drivers. But the drivers are on the disk it hasn’t mounted yet!
  • Solution: The initrd (Initial RAM Disk). A tiny temporary filesystem loaded into RAM that contains just enough drivers to mount the real disk.

5. Step 4: Init (Systemd)

Once the real Root FS is mounted, the Kernel executes the first process: /sbin/init (PID 1).

  • Role: Start all other services (Network, SSH, GUI).
  • Action: Reads /etc/systemd/system/ and brings up the default.target.

6. Interactive: Boot Sequence

Watch the system come alive. Click “Power On”.

1. Firmware
2. GRUB
3. Kernel
4. Init (PID 1)
(System Halted)

7. Summary

The boot process is a series of handovers, from simple firmware to complex kernel. If any link in this chain breaks (e.g., missing initrd), the system will not start.