LFD440 Linux Kernel Debugging and Security

Linux Kernel Internals and Debugging provides experienced programmers with a solid understanding of the Linux kernel. Upon mastering this material, you will have a basic understanding of the Linux architecture, kernel algorithms, scheduling, hardware and memory management, modularization techniques and debugging, as well as how the kernel developer community operates and how to efficiently work with it. This five day course includes extensive hands-on exercises and demonstrations designed to give you the necessary tools to develop and debug Linux kernel code.

The course is based on both the most upstream recent Linux kernel version, and maintains compatibility with the kernel versions used by at least the last two releases of the major Linux distributions.


This course is for those interested in learning how to write and/or debug Linux kernel code.

Knowledge of basic kernel interfaces and methods such as how to write, compile, load and unload modules, use synchronization primitives, and the basics of memory allocation and management, such as is provided by LFD420. Pre-class preparation material will be provided before class.


  1. Kernel Architecture I
  2. Kernel Programming Preview
  3. Modules
  4. Kernel Architecture II
  5. Kernel Configuration and Compilation
  6. Kernel Style and General Considerations
  7. Race Conditions and Synchronization Methods
  8. Memory Addressing
  9. Memory Allocation