A Guide To The Linux Kernel Development Process

The purpose of "A guide to the Linux Kernel development process" is to help developers (and their managers) work with the development community with a minimum of frustration. It is an attempt to document how this community works in a way which is accessible to those who are not intimately familiar with Linux kernel development (or, indeed, free software development in general). While there is some technical material here, this is very much a process-oriented discussion which does not require a deep knowledge of kernel programming to understand. Homepage Based on Linux Kernel Commit ID 75b021468368288ac8fec1a86a13f5cf2229139e

Go to the Linux Kernel Source Code

user@workstation:~$ cd linux
user@workstation:~/linux$

Let’s get started

The Linux Foundation (LF) is dedicated to building sustainable ecosystems around open source projects to accelerate technology development and commercial adoption. The largest open source non-profit organization, it works to promote, protect, and advance Linux and collaborative development and support the "greatest shared technology resources in history." Wikipedia

How many files in total?

$ git ls-files | wc -l

How many collaborations in total?

$ git log --pretty=oneline | wc -l

What Linux Kernel development process is about?

$ find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
$ git log --pretty=short | grep Author
$ ls arch
$ ls arch/ | wc -l

$ ls arch/x86
$ ls arch/arm

$ ls arch/x86/configs
$ ls arch/arm/configs

The importance of “getting” code into the mainline

  • Go to mainline, the main repository of the Linux Kernel source code and get used to the interface, find out about the different sections mainline

Extra Reading

Licensing

How the process development works

The big picture

Nobody knows when a kernel will be released, because it's released according to perceived bug status, not according to a preconceived timeline.

4.x Kernel Tree

-Next Kernel Tree

>

The lifecycle of a patch

checkout version 3.5 and generate top patch where version is changed

Mailing lists

How patches get into the kernel

None

Other Trees

None

Next trees

None

Staging trees

None

Tools

None

Getting started with Kernel development

None

Early stage planning

Early Stage Planning

None

Early Discussion

None

Who do you talk to?

$ scripts/get_maintainer.pl -f drivers/input/… $ git log | grep Morton

When to post?

None

Getting official buy-in

None

Getting the code right

Posting patches

Followthrough

None

Advanced Topics

None

Conclusion

Last updated