Portfolio Header
Priyanshu Samal
Profile Picture
Back
13,344

How a computer actually starts (power button to OS)

The entire boot process is a strict chain of trust: firmware in ROM → bootloader → kernel → userspace. No magic, just carefully placed code.

2026-01-08·4 min read
How a computer actually starts (power button to OS)

When you press the power button, the computer starts from a dead state: no OS, no running code, RAM empty. Power reaches the CPU, which immediately resets its internal state (registers cleared, caches invalid).

The CPU does not search for software; it jumps to a fixed address called the reset vector, which points to firmware stored in non-volatile memory (ROM/flash) on the motherboard.

1. The Firmware (POST)

This firmware (legacy BIOS or modern UEFI) is the first code that runs. Its first job is POST (Power-On Self Test): initializing RAM, checking CPU and essential hardware. Until RAM is initialized, nothing else can execute reliably. If POST fails, the system halts here.

2. The Bootstrap

After POST, firmware runs its bootstrap logic. It reads the boot configuration, selects a boot device, and loads the first piece of disk code into RAM.

* Legacy BIOS: Loads the Master Boot Record (MBR), a tiny 512-byte program whose only role is to locate and load the next boot stage.

* Modern UEFI: Directly loads a .efi bootloader executable from the EFI System Partition, bypassing MBR chaining.

3. The Bootloader

The full bootloader (GRUB, Windows Boot Manager, systemd-boot) then takes control. It switches the CPU into the correct execution mode, sets up memory structures, locates the OS kernel, loads the kernel and initramfs into RAM, and finally transfers execution to the kernel.

4. The Kernel Takes Over

The kernel now initializes memory management, hardware drivers, and process scheduling, and starts the first userspace process (init / systemd).

Only at this point does the operating system truly exist.

The entire boot process is a strict chain of trust: firmware in ROM → bootloader → kernel → userspace. No magic, no intelligence—just carefully placed code handing control forward.

TechSystemsOSBoot Process
      |\__/,|   (`\
    _.|o o  |_   ) )
-(((---(((--------
~ git commit -m "bye"_