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.
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.
Understanding Memory through Pong (C + SDL2)
→Building a Ping Pong game in C using SDL2 to understand how real-time systems behave at the memory level.
How a Simple Ray Tracer in C Works: From Math to Shadows
→At the heart of ray tracing lies a deceptively simple idea: light travels in straight lines until something blocks it.

