How Linux is developed: patches, mailing lists and maintainers
In short: The Linux kernel arises in an open process with thousands of participants from companies and volunteers. All changes run as patches over mailing lists and maintainers; in the end Linus Torvalds decides on inclusion in the main version.
The path of a change
- Someone writes a patch (a small, well-justified change) and checks it against the current code.
- They send it by email to the responsible mailing list and the area’s maintainer (the file
MAINTAINERSnames them). A script (get_maintainer.pl) helps. - Others read along and answer with criticism. The patch is revised until it is fine. Confirmations appear as
Reviewed-by:orTested-by:in the text. - The maintainer takes it into their branch and passes collected changes to the next level.
- In a merge window of two weeks Linus takes the branches into the main version. Then come pre-releases (
rc1torc7orrc8) with fixes only and then the release, see Kernel versions and release cycle.
Rules and culture
- Do not break existing programs (“don’t break userspace”).
- A patch must do one thing, described cleanly, with
Signed-off-by:(confirms that you have the rights; the Developer Certificate of Origin). - The tone has become friendlier in recent years; criticism of the code, not the person.
Taking part
Beginners start with spelling in documentation, small clean-up patches or testing release candidates. The Kernel Newbies project helps. For the Rust part see Rust and eBPF in the Linux kernel.
See also: Open-source licences: GPL, MIT and Apache, History of Linux and GNU