Dive into the core of Linux. Learn to write Loadable Kernel Modules (LKMs), device drivers, and debug kernel space code.
The Linux Kernel is the most complex open source project in history. This course teaches you to modify and extend it. You will learn the difference between User Space and Kernel Space. Write your first Loadable Kernel Module (LKM) and Character Device Driver. We explore kernel synchronization (Spinlocks, Semaphores), memory allocation (kmalloc/vmalloc), and interrupt handling. You will also learn to compile custom kernels and debug crashes using QEMU and GDB.
Estimated completion time: 21 lessons • Self-paced learning • Lifetime access
Yes, a bug here crashes the whole machine.
We use QEMU VMs to prevent crashing your PC.
Yes, Linux is C (with some Assembly/Rust).
Teaches skills needed to contribute upstream.
Go from your first step to master level. Three simple steps, all about Linux Kernel Development.
Every expert started at zero. This is the easy way to begin Linux Kernel Development.
Know the basics? Good. Now learn the parts of Linux Kernel Development most people never reach.
This is the shortcut: Sourcegraph Cody helps you search and understand massive codebases — and master Linux Kernel Development faster.