OpenWest 2014/Booting Linux

by Mike Lovell

Slides - http://baldr.dev-zero.net
 * http://baldr.dev-zero.net/openwest-2014-booting-a-linux-system.pdf

Boot Process: Platform Init -> Bootloader -> Kernel Init -> Init

Platform Init:
 * Firmware boot
 * BIOS (Award, AMI, Phoenix, Coreboot on Chromebooks)
 * UEFI
 * Low level hardware initialization
 * Pass control from BIOS to bootloader:
 * Find boot loader through MBR or GPT
 * Preboot eXecution Environment (PXE)

Bootloader:
 * Grub, Lilo, Syslinux, uBoot, iPXE
 * Loads and execute kernel

Kernel Init:
 * reinitialize hardware with OS drivers
 * load kernel modules
 * initrd (old) / initramfs (newer)
 * mount root

Init:
 * First process the kernel runs
 * Kernel Process PID 1
 * Responsible for starting all other applications
 * Traditionally been sysvinit, now upstart/systemd/openrc

-

UEFI
 * (Unified) Extensible Firmware Interface
 * Most implementations based on the Open Source reference implementation, Tianocore
 * GPT
 * Supports GPT and larger than 2TB boot drives
 * EFI System Partition Table
 * Default application at EFI\Boot\bootx64.efi
 * Secure Boot
 * Not DRM