xref: /OK3568_Linux_fs/kernel/Documentation/process/8.Conclusion.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. _development_conclusion:
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunFor more information
4*4882a593Smuzhiyun====================
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunThere are numerous sources of information on Linux kernel development and
7*4882a593Smuzhiyunrelated topics.  First among those will always be the Documentation
8*4882a593Smuzhiyundirectory found in the kernel source distribution.  The top-level :ref:`process/howto.rst <process_howto>`
9*4882a593Smuzhiyunfile is an important starting point; :ref:`process/submitting-patches.rst <submittingpatches>`
10*4882a593Smuzhiyunand :ref:`process/submitting-drivers.rst  <submittingdrivers>`
11*4882a593Smuzhiyunare also something which all kernel developers should
12*4882a593Smuzhiyunread.  Many internal kernel APIs are documented using the kerneldoc
13*4882a593Smuzhiyunmechanism; "make htmldocs" or "make pdfdocs" can be used to generate those
14*4882a593Smuzhiyundocuments in HTML or PDF format (though the version of TeX shipped by some
15*4882a593Smuzhiyundistributions runs into internal limits and fails to process the documents
16*4882a593Smuzhiyunproperly).
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunVarious web sites discuss kernel development at all levels of detail.  Your
19*4882a593Smuzhiyunauthor would like to humbly suggest https://lwn.net/ as a source;
20*4882a593Smuzhiyuninformation on many specific kernel topics can be found via the LWN kernel
21*4882a593Smuzhiyunindex at:
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	https://lwn.net/Kernel/Index/
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunBeyond that, a valuable resource for kernel developers is:
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	https://kernelnewbies.org/
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunAnd, of course, one should not forget https://kernel.org/, the definitive
30*4882a593Smuzhiyunlocation for kernel release information.
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunThere are a number of books on kernel development:
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	Linux Device Drivers, 3rd Edition (Jonathan Corbet, Alessandro
35*4882a593Smuzhiyun	Rubini, and Greg Kroah-Hartman).  Online at
36*4882a593Smuzhiyun	https://lwn.net/Kernel/LDD3/.
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun	Linux Kernel Development (Robert Love).
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	Understanding the Linux Kernel (Daniel Bovet and Marco Cesati).
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunAll of these books suffer from a common fault, though: they tend to be
43*4882a593Smuzhiyunsomewhat obsolete by the time they hit the shelves, and they have been on
44*4882a593Smuzhiyunthe shelves for a while now.  Still, there is quite a bit of good
45*4882a593Smuzhiyuninformation to be found there.
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunDocumentation for git can be found at:
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	https://www.kernel.org/pub/software/scm/git/docs/
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	https://www.kernel.org/pub/software/scm/git/docs/user-manual.html
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunConclusion
55*4882a593Smuzhiyun==========
56*4882a593Smuzhiyun
57*4882a593SmuzhiyunCongratulations to anybody who has made it through this long-winded
58*4882a593Smuzhiyundocument.  Hopefully it has provided a helpful understanding of how the
59*4882a593SmuzhiyunLinux kernel is developed and how you can participate in that process.
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunIn the end, it's the participation that matters.  Any open source software
62*4882a593Smuzhiyunproject is no more than the sum of what its contributors put into it.  The
63*4882a593SmuzhiyunLinux kernel has progressed as quickly and as well as it has because it has
64*4882a593Smuzhiyunbeen helped by an impressively large group of developers, all of whom are
65*4882a593Smuzhiyunworking to make it better.  The kernel is a premier example of what can be
66*4882a593Smuzhiyundone when thousands of people work together toward a common goal.
67*4882a593Smuzhiyun
68*4882a593SmuzhiyunThe kernel can always benefit from a larger developer base, though.  There
69*4882a593Smuzhiyunis always more work to do.  But, just as importantly, most other
70*4882a593Smuzhiyunparticipants in the Linux ecosystem can benefit through contributing to the
71*4882a593Smuzhiyunkernel.  Getting code into the mainline is the key to higher code quality,
72*4882a593Smuzhiyunlower maintenance and distribution costs, a higher level of influence over
73*4882a593Smuzhiyunthe direction of kernel development, and more.  It is a situation where
74*4882a593Smuzhiyuneverybody involved wins.  Fire up your editor and come join us; you will be
75*4882a593Smuzhiyunmore than welcome.
76