The kernel does two things: A) keeps track of stuff. B) responds to requests from programs and hardware. Boot, enumerate/initialize hardware: RAM, MMU (page tables) Processors, Timers I/O devices: Console, Root "Early printk", /dev/console for diagnostic boot messages Legacy root= vs initramfs. /init (filesystem, executable format) ELF spec, muppet labs! (man 5 elf) Dynamic linker actually getting loaded rather than the executable. binfmt misc, the old a.out. Modules. The root filesystem. mmap, page cache, faulting executables, linker (normal, PIC, flat).