Advanced OS

Table of Contents

Booting x86_64

When you power on:

  1. CPU executes code from ROM
  2. Loads platform firmware (BIOS, UEFI, Coreboot..)
  3. Initializes memory and other devices
  4. Loads boot code into memory
  5. Executes boot code

Memory layout before boot:

Memory before boot

Two-stage bootloader:

Memory map – not all memory available yet

Loading the kernel

Mapping virtual to physical addresses

OpenLSD initial address space diagram