Classroom
This course teaches the full stack from firmware to apps: how UEFI hands the machine to the kernel, how the kernel manages memory and processes, how drivers attach, and how user programs reach real devices through syscalls. Not slogans alone — hands on readable, changeable source.
Five main tracks (hours compressible by term):
- Application development (8–12 h) — SDK,
exec, small GUI/network apps - Kernel implementation (48–64 h) — memory, scheduling, processes, dual-track syscalls
- Drivers and swappable modules (32–48 h) — TOY_DRIVER, OPS swaps, real/virt devices
- Real hardware and board bring-up (32–48 h) — USB/NUC, BootInfo, board differences
- Toolchain and ecosystem (32–48 h) — build, images, store/packaging, debug notes
By the end students should deliver: one app, one swappable module (or driver), one real-HW/QEMU write-up, and a clear account of the ABI boundary they used. Full Linux userspace compatibility is not required; one path that runs and can be explained beats a pile of half-features.