KRN-110 · Linux Kernel Core · Foundation

Modules & the Kernel Build System — full syllabus

Kbuild, module loading, symbol resolution and the module lifecycle from insmod to rmmod.

Duration3 full days in person · 6 half-days online
Cohortmax 14 in person · 20 online
Pricefrom SAR 6,750 in person · local pricing per city
Delivery35% principles · 20% guided investigation · 45% engineering studio

Who this course is for

Developers writing or maintaining out-of-tree kernel modules — driver and BSP engineers who need Kbuild, symbol resolution and the load/unload lifecycle to be routine rather than mysterious.

Prerequisites

Course outline

Day 1 — Kbuild from the outside

  • Kbuild makefiles: obj-m, obj-y, ccflags-y and per-object flags
  • In-tree vs out-of-tree builds: M=, KDIR and the kernel build directory contract
  • A first module: the boilerplate and what module_init/module_exit expand to
  • Build artifacts explained: .ko, .mod.c, modules.order, Module.symvers

Day 2 — Loading, symbols and the lifecycle

  • insmod, modprobe, rmmod and what each really does
  • Module reference counting and why rmmod fails
  • Symbol resolution: EXPORT_SYMBOL, EXPORT_SYMBOL_GPL and symbol namespaces
  • Module parameters (module_param) with permissions and sysfs exposure
  • Dependencies, depmod and modules.dep

Day 3 — Shipping modules that survive upgrades

  • vermagic and module versioning
  • Module signing and interaction with lockdown mode
  • Tainting: what taints the kernel and how to read /proc/sys/kernel/tainted
  • DKMS and rebuild-on-upgrade strategies
  • The unstable kernel ABI: what breaks on upgrades and how to design for it

Hands-on labs

  1. Lab: build an out-of-tree module against a kernel tree, load it in QEMU and observe init/exit through dmesg
  2. Lab: export a symbol from one module and consume it from another; watch resolution in /proc/kallsyms and Module.symvers
  3. Lab: add module parameters with sysfs exposure and change behaviour at load time and runtime
  4. Lab: provoke a reference-count rmmod failure and diagnose it; then sign a module and load it under signature enforcement

Capstone project

Package a small two-module project the way a vendor would have to ship it: Kbuild files, an exported-symbol contract inside a namespace, documented module parameters exposed through sysfs, signed modules, and a short note on what will break at the next kernel upgrade — load-tested end to end on a freshly booted kernel.

What you leave with

Upcoming dates

DatesWhereSeatsEarly birdRegular
15 Nov – 17 Nov 20263 full days RiyadhIn person · KAFD Conference Centre 3 of 14 SAR 6,080until 16 OctSAR 6,750
22 Nov – 24 Nov 20263 full days Kuwait CityIn person · Al Hamra Tower 8 of 14 KWD 500until 23 OctKWD 560
29 Nov – 1 Dec 20263 full days MuscatIn person · Knowledge Oasis Muscat 3 of 14 OMR 620until 30 OctOMR 690
29 Nov – 6 Dec 20266 half-days Gulf bandLive online · 09:00–13:00 GMT+3 13 of 20 US$1,170until 30 OctUS$1,300
30 Nov – 2 Dec 20263 full days OttawaIn person · Kanata North Tech Park 8 of 14 CAD 2,200until 31 OctCAD 2,450
7 Dec – 9 Dec 20263 full days TorontoIn person · MaRS Discovery District 3 of 14 CAD 2,200until 7 NovCAD 2,450
7 Dec – 14 Dec 20266 half-days Europe bandLive online · 09:00–13:00 CET 18 of 20 US$1,170until 7 NovUS$1,300
7 Dec – 14 Dec 20266 half-days Americas bandLive online · 13:00–17:00 ET 7 of 20 US$1,170until 7 NovUS$1,300
14 Dec – 16 Dec 20263 full days LondonIn person · Shoreditch Works 8 of 14 GBP 1,260until 14 NovGBP 1,400
14 Dec – 16 Dec 20263 full days BerlinIn person · Factory Görlitzer Park 3 of 14 EUR 1,490until 14 NovEUR 1,660

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.

Course page & booking

Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.