R0KernelPath
roadmap/track 08
08

Device Drivers

Where the kernel meets real hardware.

0
t8-01

The Linux Driver Model

The Linux Driver Model is the elegant object-oriented spine that lets thousands of drivers speak a single language to buses, devices, and the kernel itself.

11 concepts~18h
t8-02

Character Device Drivers

Build a real character device driver from scratch — mastering the major/minor system, the file_operations vtable, and the kernel/userspace memory boundary that makes Linux drivers both powerful and safe.

10 concepts~12h
t8-03

Block Device Drivers

Build a working /dev/ block device from scratch by mastering gendisk, blk-mq tag sets, and the complete I/O path from write() to your driver's queue_rq callback.

11 concepts~18h
t8-04

Platform Devices & the Device Tree

Master the Device Tree and platform driver — the machinery that lets a single Linux kernel binary boot on thousands of different ARM boards without knowing their hardware at compile time.

12 concepts~18h
t8-05

Interrupt Handling in Drivers

Master the complete lifecycle of a hardware interrupt inside a Linux driver — from the electrical signal to request_irq(), the top/bottom-half split, threaded handlers, and the strict rules of atomic context.

11 concepts~14h
t8-06

Concurrency & Locking in Drivers

Master the rules that separate correct concurrent driver code from the kind that silently corrupts data, hangs machines, and makes it into CVE advisories.

12 concepts~18h
t8-07

Accessing Hardware: MMIO & ioremap

Master the kernel's precise contracts for reaching hardware registers and making devices read and write RAM safely — the foundation every real device driver is built on.

11 concepts~18h
t8-08

Writing Your First Real Driver

Build a complete Linux character driver from zero — probe, sysfs, read/write, ioctl, and testing — and understand exactly why every line exists.

11 concepts~18h