Linux Kernel Resources

This page has references to various kernel resources (web sites and mailing lists) for developers. Most of this information was gathered over a year ago, and may not be accurate.

/\ Note: You should always look at the kernel MAINTAINERS file for up-to-date information

main (x86) kernel
- web site = http://www.kernel.org/ - Linus' Git Repository - kernel cross-reference online: http://glide.stanford.edu/lxr/source/ (only some version available)

News
- Linux Weekly News, Kernel page - http://lwn.net/Kernel/

Changelog

 * Comprehensible changelog of the linux kernel
 * http://wiki.kernelnewbies.org/LinuxChanges


 * Announcemnts from linus
 * 2.6.3   http://lwn.net/Articles/71670/
 * 2.6.10   http://lwn.net/Articles/117188/
 * 2.6.12   http://lwn.net/Articles/140441/
 * 2.6.13   http://lwn.net/Articles/149480/
 * 2.6.14   http://lwn.net/Articles/157474/
 * 2.6.15   http://lwn.net/Articles/166131/


 * LWN atricles for spcific releases
 * 2.6.3   http://lwn.net/Articles/71669/
 * 2.6.10   http://lwn.net/Articles/117187/
 * 2.6.12   http://lwn.net/Articles/140165/
 * 2.6.15   http://lwn.net/Articles/166130/


 * LWN aricles on 2.6 API changes
 * 2.6 API changes   http://lwn.net/Articles/2.6-kernel-api/
 * 2.6.12 API changes   http://lwn.net/Articles/140164/

MIPS
- web site = http://www.linux-mips.org/wiki/Main_Page - mailing list = http://www.linux-mips.org/wiki/Net_Resources#Mailing_lists - Maintainer = Ralph Baechle

- there's an alternate site on Source Forge - the site is: http://sourceforge.net/projects/linux-mips - Note that this is used for experimental stuff that hasn't been merged into the official mips tree by Ralph Baechle

ARM
- web site = http://www.arm.linux.org.uk/ - cvs access = http://cvs.arm.linux.org.uk/ - mailing list = http://www.arm.linux.org.uk/armlinux/mailinglists.php - wiki = http://www.linux-arm.org/ - Maintainer = Russell King

PowerPC
- web site = http://penguinppc.org/ - mailing lists = http://penguinppc.org/about/community.php#lists - Git repository = kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc.git - Maintainer = Paul Mackerras - Power Macintosh Maintainer = Benjamin Herrenschmidt

- cross-compiler mini-howto: http://penguinppc.org/embedded/cross-compiling/

See the following for information on different linuxppc source trees available: http://www.penguinppc.org/dev/kernel.shtml

SuperH (SH)
- web site = http://www.linux-sh.org/ - Git repository = kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.git - mailing list address = linux-sh@vger.kernel.org - mailing list page = http://vger.kernel.org/vger-lists.html#linux-sh - mailing list archives = http://news.gmane.org/gmane.linux.ports.sh.devel - wiki = http://linux-sh.org/shwiki/FrontPage - Maintainer = Paul Mundt

Online
- Rusty Russell's "Unreliable Guide to Locking" - http://kernelbook.sourceforge.net/kernel-locking.html - Embedded Linux kernel and driver development - http://free-electrons.com/training/drivers - Linux USB drivers - http://free-electrons.com/articles/linux-usb

Books

 * Linux Kernel Development by Robert Love
 * Good introduction to Linux kernel development
 * Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
 * Great book for getting started with Linux device drivers
 * Free online edition: http://lwn.net/images/pdf/LDD3/
 * Essential Linux Device Drivers by Sreekrishnan Venkateswaran
 * Introduction to driver development for major subsystems
 * Professional Linux Kernel Architecture by Wolfgang Mauerer
 * Introduction to the architecture, concepts and algorithms of the Linux kernel
 * Understanding the Linux Kernel by Daniel Bovet and Marco Cesati
 * Guided tour of the code that forms the core of all Linux operating systems
 * Linux Kernel in a Nutshell by Greg Kroah-Hartman
 * Overview of kernel configuration and building
 * Free online edition: http://www.kroah.com/lkn/

Cross-reference / code online

 * http://www.makelinux.net/kernel_map
 * http://www.linux-m32r.org/lxr/http/source/
 * http://lxr.free-electrons.com/
 * http://sosdg.org/~coywolf/lxr/source/
 * http://lxr.linux.no/source/