OS Booting

System Firmware Standards

BIOS

  • Basic Input/Output System
  • Legacy firmware standard
  • Lacks native support for modern hardware stacks (NVMe drives, USB 3+, or complex mouse/graphics interfaces)
  • Performs Power-On Self-Test (POST) to verify basic hardware (CPU, RAM, CMOS)
  • Automatically reads the first sector (LBA 0) of the designated boot drive into RAM address 0x7C00
  • Jump execution to the MBR code

UEFI

  • Unified Extensible Firmware Interface
  • Initially created by Intel as EFI but now under UEFI Forum
  • Defines
    • GPT scheme
    • Secure Boot
    • CSM Boot
    • EFI System Partition
    • Boot Loaders
    • UEFI Shell
    • NVRAM Variables
    • GUI and native mouse navigation support
    • Better POST support
    • support extensible drivers like PXE (Network Boot) or storage controllers (NVMe/RAID/AHCI)
  • Uses Secure Boot by default and only loads signed boot loaders
  • UEFI Firmware has Built in UEFI Shell
    • Also available in ESP at \shellx64.efi
  • Stores boot priorities and state telemetry in non-volatile hardware storage (NVRAM)
    • accessible via /sys/firmware/efi/efivars on Linux
  • NVRAM Boot Variables
    • BootOrder
      • A hexadecimal boot order sequence
    • BootXXXX
      • Human-readable device tag
      • Direct hardcoded structural entry path to the boot file on the ESP
      • Example: Boot0001, Boot0002

POST

  • Power-On Self Test
  • Confirms presence of essential hardware components
    • Central Processing Unit (CPU)
    • System Memory (RAM)
    • Graphics Card/Video Module
  • Execute Diagnostic System Integrity Checks
  • Prevent Cascade Hardware Damage
  • Initialize Motherboard Chipsets