Training > Linux Kernel Development > A Beginner’s Guide to Linux Kernel Development (LFD103)
Training Course

A Beginner’s Guide to Linux Kernel Development (LFD103)

Learn how to become a Linux kernel developer and contributor with this free training course.

Who Is It For

This course is intended for developers who need to know about the Linux kernel development process and the explicit and implicit “rules of the road”.
read less read more
What You’ll Learn

Through this course you will learn how to select and configure your development system, about Linux Kernel repositories and releases, Git basics including checking out kernel repositories and working with them, how to build and install a kernel, Linux kernel enforcement standards, how to write kernel patches and test them, how to communicate with the kernel community, how to send patches, how to act on feedback from reviewers and more.
read less read more
What It Prepares You For

This course will prepare you to configure a development system, use git, write kernel patches, test patches, write commit logs, send patches, and work with the Linux kernel community.
read less read more
Course Outline
Chapter 1. Course Introduction
Chapter 2. Linux Kernel Development Process
Chapter 3. Patches
Chapter 4. Working with the Linux Kernel Community
Chapter 5. Configuring Your Development System
Chapter 6. Exploring Linux Kernel Sources
Chapter 7. Building and Installing Your First Kernel
Chapter 8. Writing Your First Kernel Patch
Chapter 9. Getting Your Patch Ready and Sending It
Chapter 10. Kernel and Driver Building, Loading and Dependencies
Chapter 11. All About Testing
Chapter 12. Debugging Basics
Chapter 13. Tips to Continue Your Kernel Journey
Chapter 14. Frequently Asked Questions

To make the most of this course you will need to be:

  • Proficient in C and Shell.
  • Kernel development experience desired (not required)
Jul 2021
Thanks to this course (and Greg's talk "Write and submit your first kernel patch"), I managed to test the 5.12 RC kernel, and submit a patch to fix a NULL pointer error. A *very* humble contribution, but possible thanks to you and the knowledge acquired in this course.
May 2021
I liked the contents of the course as a beginner. The course has touched all the aspects of Kernel Development Process, and made it clear how I can contribute to the process. It also includes various links to useful sites, which are important in order to know the process of development.
May 2021
I liked that it walked us through technical steps, such as compiling and installing the kernel, and creating a patch.
May 2021
The relation to real life problems rather than some jargon was very helpful in the course. The very fact that this course exists, and is offered by LF itself, is something I love about it. I got to learn so much about the insides of the kernel.
Apr 2021
It is very well documented, and practically holds your hand during the set-up process. Thank you, course creators.
Feb 2021
I liked how concise and precise the entire course was. It explained a lot of things whilst not making it overwhelming to newcomers.
Jan 2021
I liked the way it was organized. It's easy to feel lost with the amount of documentation that exists. This course provides a structured path to learn about many aspects of the Linux kernel, and how to become a contributor.
Jan 2021
I found the step-by-step guide for sending patches to be illuminating. Most documentation is somewhat scattered, so to have a clearly written guide that encompasses all parts of patch submission is a valuable resource I will almost certainly reference in the future.
Nov 2020
I appreciated the depth of the non-coding technical pieces, like how to create and verify patches, and how to find out where to send it. I was always clueless before, if I found a bug, or better yet fixed a bug, what do I do? Well, now I know, so thank you.
Aug 2020
Small and detailed enough for new contributors, and does not overwhelm with additional information that can be easily searched online.
Aug 2020
The topics are good, and essential for anyone who would like to start working on the Linux kernel development.
Aug 2020
It understands the beginner, and doesn't dwell into coding or fixing bugs. It takes time to make the student understand the process, and it succeeds in that.
Aug 2020
Excellent in depth course written by someone who actually develops and tests kernel code. I've often wondered how the Kernel community fits together to develop and test new kernel releases, It was all a bit of a mystery and quite daunting, but not any more thanks to this course.
Jul 2020
Very practical advice about getting set up to install and change kernel. I followed it and it worked.
Jul 2020
Logical build up of subjects. Lots of useful information, links, tips and so on. Very handy!
Jul 2020
I appreciate the text based approach rather than video. It allows the user to be more prepared to look at documentation later on. The course was not too big, this made it easier to finish and actually start working. The somewhat hands on approach made it easier to remain interested.
Jul 2020
The course is a fantastic introduction to someone looking for help in developing the Linux Kernel.
Jul 2020
It was very clean and concise. The on-boarding into Linux Kernel development can be a daunting task to newcomers. This course laid out not only a great set of tools and helper scripts, but also how to effectively apply them to be successful.
Jul 2020
The basics are provided, and also If you want to dig more, then links or references are also provided. Important thing about this course is that it is free, so anyone around the world can afford this course only by investing their time, and it is worth it.
Jun 2020
It was guided, but didn't exactly hold your hand. There was an abundance of attached resources for further discovery. I read the entire Git book because it was linked to the course, and I believe I am better for it.
Jun 2020
The step by step instruction on how to do something. For example, nowhere in the Linux documentation could I find how to create and email a patch, but this did.