There are numerous sources of information on Linux kernel development and related topics. First among those will always be the Documentation directory found in the kernel source distribution. The top-level HOWTO file is an important starting point; SubmittingPatches and SubmittingDrivers are also something which all kernel developers should read. Many internal kernel APIs are documented using the kerneldoc mechanism; „make htmldocs“ or „make pdfdocs“ can be used to generate those documents in HTML or PDF format (though the version of TeX shipped by some distributions runs into internal limits and fails to process the documents properly).
Various web sites discuss kernel development at all levels of detail. Your author would like to humbly suggest http://lwn.net/ as a source; information on many specific kernel topics can be found via the LWN kernel index at:
Beyond that, a valuable resource for kernel developers is:
Information about the linux-next tree gathers at:
The inside of Athena Unix – The Shell, and Shell Programming:
And, of course, one should not forget http://kernel.org/ , the definitive location for kernel release information.
There are a number of books on kernel development:
- Linux Device Drivers, 3rd Edition (Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman). Online at http://lwn.net/Kernel/LDD3/ .
- Linux Kernel Development (Robert Love).
- Understanding the Linux Kernel (Danial Bovet and Marco Cesati).
All of these books suffer from a common fault, though: they tend to be somewhat obsolete by the time they hit the shelves, and they have been on the shelves for a while now. Still, there is quite a bit of good information to be found there.
Documentation for git can be found at: