blob: b32a40215858141f6d6a9b30ee3814b3d1cf519d [file] [log] [blame]
Mauro Carvalho Chehabf7c9fe42016-09-19 08:07:36 -03001.. _development_conclusion:
2
3For more information
4====================
Jonathan Corbet75b02142008-09-30 15:15:56 -06005
6There are numerous sources of information on Linux kernel development and
7related topics. First among those will always be the Documentation
Federico Vagaf77af632018-11-21 01:35:19 +01008directory found in the kernel source distribution. The top-level :ref:`process/howto.rst <process_howto>`
9file is an important starting point; :ref:`process/submitting-patches.rst <submittingpatches>`
10and :ref:`process/submitting-drivers.rst <submittingdrivers>`
11are also something which all kernel developers should
Jonathan Corbet75b02142008-09-30 15:15:56 -060012read. Many internal kernel APIs are documented using the kerneldoc
13mechanism; "make htmldocs" or "make pdfdocs" can be used to generate those
14documents in HTML or PDF format (though the version of TeX shipped by some
15distributions runs into internal limits and fails to process the documents
16properly).
17
18Various web sites discuss kernel development at all levels of detail. Your
Alexander A. Klimov93431e02020-05-26 08:05:44 +020019author would like to humbly suggest https://lwn.net/ as a source;
Jonathan Corbet75b02142008-09-30 15:15:56 -060020information on many specific kernel topics can be found via the LWN kernel
21index at:
22
Alexander A. Klimov93431e02020-05-26 08:05:44 +020023 https://lwn.net/Kernel/Index/
Jonathan Corbet75b02142008-09-30 15:15:56 -060024
25Beyond that, a valuable resource for kernel developers is:
26
Alexander A. Klimov93431e02020-05-26 08:05:44 +020027 https://kernelnewbies.org/
Jonathan Corbet75b02142008-09-30 15:15:56 -060028
Alexander A. Klimov93431e02020-05-26 08:05:44 +020029And, of course, one should not forget https://kernel.org/, the definitive
Jonathan Corbet75b02142008-09-30 15:15:56 -060030location for kernel release information.
31
32There are a number of books on kernel development:
33
34 Linux Device Drivers, 3rd Edition (Jonathan Corbet, Alessandro
35 Rubini, and Greg Kroah-Hartman). Online at
Alexander A. Klimov93431e02020-05-26 08:05:44 +020036 https://lwn.net/Kernel/LDD3/.
Jonathan Corbet75b02142008-09-30 15:15:56 -060037
38 Linux Kernel Development (Robert Love).
39
40 Understanding the Linux Kernel (Daniel Bovet and Marco Cesati).
41
42All of these books suffer from a common fault, though: they tend to be
43somewhat obsolete by the time they hit the shelves, and they have been on
44the shelves for a while now. Still, there is quite a bit of good
45information to be found there.
46
47Documentation for git can be found at:
48
Alexander A. Klimov93431e02020-05-26 08:05:44 +020049 https://www.kernel.org/pub/software/scm/git/docs/
Jonathan Corbet75b02142008-09-30 15:15:56 -060050
Alexander A. Klimov93431e02020-05-26 08:05:44 +020051 https://www.kernel.org/pub/software/scm/git/docs/user-manual.html
Jonathan Corbet75b02142008-09-30 15:15:56 -060052
53
Mauro Carvalho Chehabf7c9fe42016-09-19 08:07:36 -030054Conclusion
55==========
Jonathan Corbet75b02142008-09-30 15:15:56 -060056
57Congratulations to anybody who has made it through this long-winded
58document. Hopefully it has provided a helpful understanding of how the
59Linux kernel is developed and how you can participate in that process.
60
61In the end, it's the participation that matters. Any open source software
62project is no more than the sum of what its contributors put into it. The
63Linux kernel has progressed as quickly and as well as it has because it has
64been helped by an impressively large group of developers, all of whom are
65working to make it better. The kernel is a premier example of what can be
66done when thousands of people work together toward a common goal.
67
68The kernel can always benefit from a larger developer base, though. There
69is always more work to do. But, just as importantly, most other
70participants in the Linux ecosystem can benefit through contributing to the
71kernel. Getting code into the mainline is the key to higher code quality,
72lower maintenance and distribution costs, a higher level of influence over
73the direction of kernel development, and more. It is a situation where
74everybody involved wins. Fire up your editor and come join us; you will be
75more than welcome.