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