Skip to content

25. [NEW] Boot Process — Power-On to Kernel Init

Power On


BIOS / UEFI          → firmware baked into the motherboard; runs POST
   │                    (Power-On Self-Test): checks CPU, RAM, devices

Bootloader            → BIOS reads the Boot Block (first disk sector,
(GRUB / Windows        or the EFI System Partition for UEFI) and hands
Boot Manager)           control to the bootloader


Kernel Load            → bootloader loads the OS kernel image (and an
                          initial RAM disk, initrd/initramfs) into memory


Kernel Init            → kernel initializes memory management, sets up
                          interrupt tables, detects hardware, mounts the
                          real root filesystem


init / systemd (PID 1) → first user-space process; starts services,
                          brings the system to a login prompt / GUI

BIOS vs UEFI: BIOS is older, 16-bit, reads a fixed Master Boot Record (512 bytes); UEFI is modern, supports larger disks (GPT partitioning, no 2TB limit), has its own mini-filesystem-aware environment, and boots faster via native .efi executables instead of raw sector code.

Why the boot block matters: it's the very first block on a bootable disk (block 0) — it contains just enough code to load a real bootloader, because BIOS/UEFI firmware itself doesn't know how to parse a full filesystem.

initramfs: a small, temporary root filesystem loaded into RAM early, containing just enough drivers (e.g., for the disk controller or an encrypted volume) to mount the real root filesystem — solves the chicken-and-egg problem of needing a driver from disk before you can read the disk.

One-liner: firmware (BIOS/UEFI) does hardware self-check → hands off to a bootloader (GRUB) → bootloader loads the kernel → kernel initializes hardware/memory and mounts root → kernel starts init/systemd, which brings up user space.