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 the documents you think should be present here. == Local Pages By Subject == * ["KernelPodcast"] * ["Module"] == Collection of online docs == * [http://jungla.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html] . Index of Documentation for People Interested in Writing and/or Understanding the Linux Kernel. * ["/Kernel-Docbooks"] The Docbooks of the Linux-Kernel as PDF == Articles == * WritingPortableDrivers by Greg KH. . How to write portable device drivers. * ["/SchedulingInUNIXAndLinux"] Scheduling in UNIX and Linux . A short and incomplete introduction to how tasks interact with the kernel. * /CopyUser Copy from/to user-space implementation. . A description of the x86 copy_from/to_user() core code. * /DebugWithoutPrintk Printing debug info without printk by Keith Owens. . Directly renders to screen bypassing limitations of printk (such as early in the boot sequence) * /InitcallMechanism Understanding The Linux Kernel Initcall Mechanism by Trevor Woerner. . How module_init() and friends work. * /SeqFileHowTo seq_file HOWTO by Randy Dunlap . Describes the seq_file API, used for outputting information via /proc. * UpstreamMerge by RikvanRiel. . The why and how of merging code into the upstream kernel. * WhyReiser4IsNotIn by Diego Calleja. . Why Reiser4 is not in the Linux Kernel. * KernelMemoryAllocation by Arnout Vandecappelle. . A brief overview of the different memory management mechanisms used in the kernel. * ["ABI"] explanation of ELF format * ["Debugging"] some debugging tips * 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 == Presentations == * ["/LinuxIPNetworking"] Linux IP Networking by Glenn Herrin . A description of Linux 2.2's IP stack, with diagrams. * /HighAvailability High Availability talk by Marcelo Tosatti . IRC talk on high availability issues * /MemoryManagement Memory Management talk by Rik van Riel . IRC talk on memory management * ["/Netfilter"] Netfilter talk by Harald Welte . IRC talk on netfilter * [http://www.nuvolinux.org/EN www.nuvolinux.org/EN] A documentation project about the Linux kernel. (English version) * [http://www.nuvolinux.org/IT 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. = Up-to-date books = * '''Essential Linux Device Drivers''' by Sreekrishnan Venkateswaran see [http://www.pearson.ch/Informatik/PrenticeHall/1471/9780132396554/Essential-Linux-Device-Drivers.aspx] * '''Linux Kernel in a Nutshell''' by Greg Kroah-Hartman, http://www.kroah.com/lkn/, online: [http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ html] * about configuring, building, installing, upgrading the kernel * '''Linux Device Drivers''' 3rd Edition, 2005, by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, [http://www.oreilly.com/catalog/linuxdrive3/ O'Reilly Reference], online: [http://lwn.net/Kernel/LDD3/ pdf] ,[http://www.makelinux.net/ldd3/ html] * 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 [http://www.novell.com/training/books/book.html?book=bookDev&val=5 Novell Press Reference] * This book is more general than ''Linux Device Drivers'', and covers more parts of the kernel: scheduling, virtual memory management, etc. * '''Understanding The Linux Kernel''' 3rd Edition (O'Reilly and associates. ISBN: 0-596-00565-2) * This book is more general than ''Linux Device Drivers'', and covers more parts of the kernel: scheduling, virtual memory management, etc. * '''Understanding The Linux Virtual Memory Manager''', by Mel Gorman (Prentice Hall, ISBN 0131453483) * available online, see [http://www.phptr.com/content/images/0131453483/downloads/gorman_book.pdf 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. * '''Porting device drivers to 2.6''', by Jonathan Corbet * available online, see [http://lwn.net/Articles/driver-porting/ Driver Porting, on LWN] * Not really a book, but it is so complete and interesting that it can be considered as such. * [:KernelBooks/ULNI:Understanding Linux Network Internals] 1st Edition, 2005 (O'Reilly, ISBN 0-596-00255-6) * covers linux kernel 2.6 * see [http://lwn.net/Articles/168894/ LWN.net review] and [http://www.amazon.com/gp/product/0596002556 Amazon.com reviews] * '''The Linux Kernel Primer: A Top-Down Approach for x86 and PowerPC Architectures''', by Claudia Salzberg Rodriguez, Gordon Fischer, Steven Smolski (Prentice Hall PTR, 2005/7/19) * Covers 2.6 with a focus on i386 and PPC architectures * Code walkthrough * [http://www.makelinux.net/kernel_map_poster Linux kernel poster] = Older books = * LinuxDeviceDrivers 2nd Edition (O\'Reilly and associates. ISBN: 0-596-00008-1) * covers linux kernel 2.4 * also available in electronic form, see [http://www.xml.com/ldd/chapter/book/index.html Linux Device Drivers 2 online ] * UnderstandingTheLinuxKernel 2nd Edition (O\'Reilly and associates. ISBN: 0-596-00213-0) see [:UnderstandingTheLinuxKernel:O\'Reilly Reference] * covers linux kernel 2.4 == External links == * [http://en.wikipedia.org/wiki/Linux_kernel Wikipedia article about the Linux kernel] - some history and background * [http://www.ibm.com/developerworks/linux/library/l-linux-kernel/ Anatomy of the Linux kernel] - short and valuable introduction to internals of the kernel * [http://www.makelinux.net/kernel_map Interactive Linux Kernel Map] and [http://www.makelinux.net/kernel_map_poster poster] - Have a look at Linux kernel source from a bird's eye view. * [http://tldp.org/HOWTO/KernelAnalysis-HOWTO.html KernelAnalysis-HOWTO] * [http://lxr.linux.no/linux Linux Cross Reference] - browse the source online * [http://www.lingrok.org/source/ LinGrok] - another cross reference of development git trees * explore more documentation at [http://www.makelinux.net/reference Linux Technology Reference] * [http://tldp.org/HOWTO/Kernel-HOWTO/ Compiling the Linux kernel] or [http://www.osnews.com/story.php?news_id=443 OS News Article][[BR]] * http://lkml.org/ - the linux-kernel mailing list archives * From basic to advanced Linux Kernel articles (outdated) http://whatisthekernel.blogspot.com/ ---- . CategoryDocs