Linux Kernel Modules (LFWS308)

This one-day course introduces you to building, loading and managing Linux kernel modules safely, so you can work confidently inside the kernel.

Suggested prerequisites: Familiarity with Linux and C programming. Labs can run on cloud virtual machines or standalone machines, and Ubuntu 24.04 is recommended.

Audience: System and software developers who want to move beyond user space

If you want to go beyond user space and work directly with the Linux kernel, this course is for you. It is aimed at system and software developers who build loadable modules for drivers, low-level services and other system-level software, and who care about stable, high-performance systems.

You will learn how kernel modules work and when they are the right solution in production, starting with the difference between kernel and user space and the entry points every module needs. You will look at alternatives to modules, security concerns, module signing and tainted kernels. In the labs you will build, sign, load, debug and interact with your own custom kernel modules, including working with module parameters. You will also explore how modules talk to user space through interfaces such as procfs, sysfs and ioctl.

The course prepares you for advanced Linux system roles where kernel-level work is part of the job, equipping you to support drivers and low-level services in environments where stability and uptime matter. It includes a certificate of completion and a digital badge.

← All Linux Foundation courses