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