Some existing links with information about different documents describing Linux Kernel. Information here is not guaranteed to be correct or up to date. Please add any documents you find useful. If the document is about a particular subsystem (e.g. memory, scheduler, etc), please add it to the subsystems page instead.
Local Pages By Subject
Collection of online docs
WritingPortableDrivers by Greg KH.
/DebugWithoutPrintk Printing debug info without printk by Keith Owens.
ABI explanation of ELF format
DocumentationRepository links to some documentation
EmbeddedKernel how to set up an embedded kernel
WorkstationKernel how to set up a workstation kernel
Emulators links to emulators that are useful for kernel development
KernelExtensions about kernel extensions
KernelHacking-HOWTO/Introduction site about kernel hacking
/HighAvailability High Availability talk by Marcelo Tosatti
www.nuvolinux.org/EN A documentation project about the Linux kernel. (English version)
www.nuvolinux.org/IT Progetto di documentazione sul kernel Linux. (Italian version)
A number of good dead tree books are available, covering Linux 2.4 and Linux 2.6, as well as particular kernel subsystems. There also exist a number of generic programming references which are particularly useful from a kernel programming viewpoint. This page contains references to these and other texts along with their corresponding ISBN and publisher details. Click on a book for reader feedback and reviews.
Essential Linux Device Drivers by Sreekrishnan Venkateswaran see http://www.pearson.ch/Informatik/PrenticeHall/1471/9780132396554/Essential-Linux-Device-Drivers.aspx
This book is a must read for device driver writing, and more generally, a good understanding of the Linux kernel subsystems involved with device driver writing. Topics such as building modules, debugging techniques, character device drivers, block device drivers, network device drivers, PCI subsystem, USB subsystem, concurrency and race conditions, time and memory management are covered by this book.
Linux Kernel Development 2nd Edition, by Robert Love (Novell Press, ISBN : 0-672-32720-1) see Novell Press Reference
available online, see Understand The Linux Virtual Memory Manager, online
This book is specifically dedicated to the virtual memory manager of the Linux kernel, and so goes into deep details about the internals of this important but complex subsystem of the kernel. It clearly is a must read for the ones interested in memory management.
available online, see Driver Porting, on LWN
Understanding Linux Network Internals 1st Edition, 2005 (O'Reilly, ISBN 0-596-00255-6)
LinuxDeviceDrivers 2nd Edition (O\'Reilly and associates. ISBN: 0-596-00008-1)
also available in electronic form, see Linux Device Drivers 2 online
Wikipedia article about the Linux kernel - some history and background
Anatomy of the Linux kernel - short and valuable introduction to internals of the kernel
Linux Cross Reference - browse the source online
LinGrok - another cross reference of development git trees
explore more documentation at Linux Technology Reference
http://lkml.org/ - the linux-kernel mailing list archives
From basic to advanced Linux Kernel articles (outdated) http://whatisthekernel.blogspot.com/