Skip to content

Learning Roadmap

This roadmap reorganizes the original Day-based learning sequence into a concept-oriented handbook path. The original daily logs are still preserved under Daily Logs, but this page is intended for review and long-term navigation.

Stage 1 - Linux Foundations

Goal: understand how Linux exposes hardware and kernel services to userspace.

Topic Related Labs / Logs
Linux architecture and boot flow Day 01, Day 02, Day 03
Device files and /dev interface Day 06
Linux device model Day 08
Device Tree basics Day 04

Stage 2 - Build and Deployment Workflow

Goal: build, deploy, and debug kernel modules reliably across Raspberry Pi and WSL environments.

Topic Related Pages
Cross compilation Cross Compilation, Day 07
Kernel module build workflow Kernel Module Build Workflow, Day 05
Device Tree overlay build workflow Device Tree Overlay Build Workflow, Day 04
Kernel version and vermagic Kernel Version and vermagic

Stage 3 - Kernel Driver Fundamentals

Goal: implement basic Linux kernel drivers and expose controlled interfaces to userspace.

Topic Related Pages
Character device basics Character Device Basics, Day 06
Platform driver and Device Tree binding Platform Driver and Device Tree Binding, Day 09, Day 10
GPIO and IRQ driver GPIO and IRQ Driver, Day 11
Control plane design Driver Control Plane, Day 16, Day 17

Stage 4 - Event-Driven Driver Design

Goal: connect kernel events to userspace event loops.

Topic Related Pages
Blocking and non-blocking I/O Blocking and Non-blocking I/O, Day 18
Wait queue and poll support Wait Queue and poll Support, Day 12, Day 50
timerfd / signalfd / eventfd integration Event Loop, Day 48, Day 49, Day 51
fasync / SIGIO fasync and SIGIO, Day 52

Stage 5 - Sensor Drivers and Linux Subsystems

Goal: move from basic drivers to subsystem-oriented Linux driver design.

Topic Related Pages
I2C / SPI sensor drivers Sensor Driver, Day 19 - Day 28
hwmon hwmon, Day 20
IIO IIO, Day 33 - Day 42
Input subsystem Input, Day 43, Day 44
TTY / UART TTY and UART, Day 29, Day 31

Stage 6 - Userspace Event Loop, Network, and IPC

Goal: build robust event-driven userspace applications that interact with files, sockets, signals, timers, and shared resources.

Topic Related Pages
Network socket programming Network, Day 45, Day 47
Event loop APIs Event Loop, API Reference - Event Loop
IPC architecture IPC, Day 53 - Day 58
POSIX I/O and signals POSIX I/O API Reference, Process and Signal API Reference

Stage 7 - Maintenance and Troubleshooting

Goal: keep the handbook usable as the repo grows.

Topic Related Pages
Project maintenance Project Maintenance Guide
Cloudflare Pages deployment Cloudflare Pages Deployment
Troubleshooting Troubleshooting Index
Refactor history Refactor History