DRV-110 · Device Drivers · Practitioner
The Unified Device Model — full syllabus
Buses, devices, drivers and classes — the abstraction that makes probe and bind work across every subsystem.
Who this course is for
Driver engineers who can write a char device but treat probe as magic — and need to understand the bus/device/driver machinery every real subsystem sits on.
Prerequisites
- DRV-101 or an equivalent working character driver
- C and comfort reading kernel source
- Basic familiarity with /sys layout
Course outline
Day 1 — The objects and their graph
- struct device, device_driver, bus_type and class and how they relate
- kobject and kset underneath: what the model is built from
- How /sys/bus and /sys/devices mirror the in-kernel graph
- Registering a minimal bus type
- Attribute plumbing: bus/device/driver attributes
Day 2 — Match, probe and bind
- Match functions and ID tables: how a driver claims a device
- Probe ordering, initcalls and deferred probe (-EPROBE_DEFER)
- driver_override and manual bind/unbind through sysfs
- remove and shutdown: what each must guarantee
- probe_type and synchronous vs asynchronous probing
Day 3 — Lifetime, resources and power
- Reference counting with get_device/put_device and the release callback
- Use-after-free patterns the model prevents and the ones it does not
- Device-managed resources (devm_*) and why they delete error paths
- Runtime power management: pm_runtime_get/put and autosuspend
- System suspend/resume callbacks and ordering constraints
Hands-on labs
- Lab: Trace a real bind from modalias to probe with ftrace events and /sys; draw the live object graph
- Lab: Register your own bus type with match and probe; bind a device and driver on it end to end
- Lab: Force a deferred probe with a missing dependency and explain the retry order from the boot log
- Lab: Convert a driver's manual resource cleanup to devm_* and count the error paths you deleted
- Lab: Exercise runtime PM: suspend and resume a device with pm_runtime and verify callback order with tracing
Capstone project
Refactor a provided legacy-style driver into a proper model citizen: ID-table matching, probe/remove, devm_* resources and runtime PM hooks — then prove lifetime correctness with a bind/unbind stress run, a kmemleak-clean rmmod and an object-lifetime diagram of the resulting /sys graph.
What you leave with
- A precise model of what probe, remove and deferred probe actually do
- Reference-counting habits that survive review
- Working fluency with devm_* resource management
- Runtime PM hooks implemented and traced, not just named
- The ability to read any subsystem's bus glue without fear
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 25 Oct – 27 Oct 20263 full days | RiyadhIn person · KAFD Conference Centre | 6 of 14 | — | SAR 7,880 | |
| 1 Nov – 3 Nov 20263 full days | Kuwait CityIn person · Al Hamra Tower | 11 of 14 | — | KWD 650 | |
| 8 Nov – 10 Nov 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 6 of 14 | OMR 730until 9 Oct | ||
| 8 Nov – 15 Nov 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 14 of 20 | US$1,350until 9 Oct | ||
| 9 Nov – 11 Nov 20263 full days | OttawaIn person · Kanata North Tech Park | 11 of 14 | CAD 2,570until 10 Oct | ||
| 16 Nov – 18 Nov 20263 full days | TorontoIn person · MaRS Discovery District | 6 of 14 | CAD 2,570until 17 Oct | ||
| 16 Nov – 23 Nov 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 3 of 20 | US$1,350until 17 Oct | ||
| 16 Nov – 23 Nov 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 8 of 20 | US$1,350until 17 Oct | ||
| 23 Nov – 25 Nov 20263 full days | LondonIn person · Shoreditch Works | 11 of 14 | GBP 1,480until 24 Oct | ||
| 23 Nov – 25 Nov 20263 full days | BerlinIn person · Factory Görlitzer Park | 6 of 14 | EUR 1,740until 24 Oct |
Book a seat, or bring this course to your team
Seats can be reserved online; private delivery runs on-site or live online, adapted to your stack.
Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.