Kernel Modules & Driver Development
Start with kernel modules and character devices, then move to memory, timers, device trees, USB and networking.
Intermediate30 lessons
written lessons≈ 15 h
Linux Kernel & Device Drivers · 30 illustrated lessons (text/HTML)
Outcomes
- Write kernel modules with parameters, symbols and licence handling
- Apply kernel memory, timer and DMA APIs correctly
- Make drivers stable: safety checks, debugging and testing
Where we teach this
- KRN-101 · Kernel Architecture, Build & Modules live cohort
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Introduction and environment setup
- 2Kernel module basics
- 3Module parameters, symbol export and licensing
- 4The character-device driver framework (part 1)
- 5The character-device driver framework (part 2)
- 6Linux kernel memory management
- 7Linux kernel synchronisation (part 1)
- 8Linux kernel synchronisation (part 2)
- 9Blocking and non-blocking I/O
- 10Interrupt handling (part 1)
- 11Interrupt handling (part 2)
- 12Kernel timers and delays
- 13The platform device driver model
- 14Device tree basics
- 15Device-tree-based driver development
- 16Linux I/O memory and port access
- 17Kernel debugging techniques (part 1)
- 18Kernel debugging techniques (part 2)
- 19mmap and user-space interaction
- 20DMA and cache coherency
- 21Input subsystem driver
- 22I2C bus driver
- 23SPI bus driver
- 24USB device drivers (part 1)
- 25USB device drivers (part 2)
- 26Network device drivers (part 1)
- 27Network device drivers (part 2): virtual network drivers such as tun/tap
- 28PCI and PCIe drivers
- 29Kernel module security and stability
- 30Capstone and course summary
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.