The Linux Kernel

Blueprints for World Domination

this site is hosted by .. The SourceForge

intro -- status -- table of contents -- resources -- contributing -- official kernel docs
Under new management!


Yes, the Kernelbook project lives. After a long hiatus of nearly three years, we are pleased to announce the appointment of a new project manager and a new mandate to organize a collaborative authoring environment to create engineering maps of the Linux kernel. True, there are already several excellent commercial books, and the kernel sources also now include many detailed documents, but the hope here is to document the threads that bind all of these together and to help bootstrap engineers who are new to Linux kernel programming.

With this new change in direction, the ownership of the Kernelbook will also be changing. In May, 2001, MCP declined participation in the Kernelbook project and the copyright for the work reverted to Gary Murphy (garym) --- the old licensing under the OPL will likely be changed to some more modern license such as the GNU ODL. Because of the copyright changes, the list of contributing authors was removed from this page; the CVS documents will remain as is, but still need to be adjusted for the new rules; where there is conflict between copyright and licensing stated in the files and those stated here, this page shall take precidence.

I hope you will all welcome and support the new project team and help fullfill the goal of the kernelbook as the standard open reference document for Linux kernel architecture.

The Linux Kernel - About The Book

What is this? Another book on the Linux Kernel? Yes, I'm afraid so but we hope this will not be just another book.

A note from the founding editor

This is not 'my' book. My vision for this book was as an evolving community thing, a co-ordinated effort of many rather than the disjoint work of a few; very much like Linux itself. Throughout the project, the manuscript would sit out in public and invite public review.

Contributing authors should be 'maintainers' and editors, and any 'principle author' role should only be as 'project lead'; the lead job is to co-ordinate the process and to ensure a cohesive work (in addition to writing), the maintainers ensure technical completeness, but it is you, the Linux kernel community, who must do the work; our public is invited to be as much an 'author' as they might with any open source project.

The long range goal is to produce a manuscript suitable for printing, but the project will not stop there. The book is written in DocBook, licensed under the OPL (no options, and this may change --- comments?). XML source for the book is hosted in the CVS here at SourceForge: The methodology is designed to allow incremental updates; the book will start with the 2.4 kernel, but should evolve to follow 2.5 and beyond.

We call this work the "architecture of the Linux kernel" and target commercial developers and potential participants in Linux development. We don't want another API book or one that reads you the source code; Documentation/DocBook already provide the low-level API guides someday, and Alessandro and others are already working on updates to their prior books.

Anyone brave enough to open a book called "The Linux Kernel" is brave enough to read source code; what they need is a conceptual framework to help make sense of source details within big-picture view and philosophy of the O/S. They need maps of inter-relations between components they plan to change and the rest of the kernel and a guide to bootstrap their understanding, having arrived 'late in the game'.

The Kernelbook aims to be the guide to how the kernel fits together, the subsystems and algorithms, maps of interconnections and trouble spots. Not how we think it is, but, where possible, the concrete architecture of what it really is. We need to present Linux design requirements as if we were about to build it. As the subtitle suggests, the book specs out a blueprint of how to implement Linux, abstract (or informed and forward-thinking) enough that it won't go out of date with 2.8.

Anyway, that's the whole grand, evil, megalomaniacal plan ;) and we will depend on your participation, guidance, advice, sketches, snippets, hearsay, questions, comments, encouragement and sympathy to make this happen.

In this page, you will find links to our project page, our mailing lists and a call for participation --- this thing is only going to work if we work together to make it happen.

Gary Lawrence Murphy <>
Sauble Beach, March 22, 2005

The Story So Far ...

We have a tentative Table of Contents, and we have this site, the corresponding SourceForge Project Page, and an associated doc archive. Having begun in 2001, the Kernelbook is the first ever online collaborative authoring environment for a technical trade publication using the SourceForge and the DocBook/XML DTD, and it is a learning experience for everyone.

This website includes our present Table of Contents but does not yet include HTML editions of the chapters from the book; these will be added as they are released for review.

Authoring Team Resources

  • KernelBook Project Page
  • Authors and Contributors Mailing list
  • Document Archive with PDF versions of some chapters.
  • Why the OPL?

    Our project came under a lot of criticism for our choice of the Open Publishing License, and a frequent question is "Why?". I've come to question that choice myself. Now that the kernelbook is no longer under contract to Macmillan, the copyright reverts to Gary Murphy and that means all bets are off, we are free to adjust the license as we see fit, and my first change is to drop all 'options' clauses from the OPL with a forward view to shift the whole work over to a GNU General Document License.

    Other Public Resources

  • Kernel Summit Audio contains the full sessions from the 2002 Kernel Summit presentations
  • Free downloadable and HTML GFDL Linux 2.3 kernel-docs
  • KernelAnalysis HOWTO by Roberto Arcomano. This document tries to explain some things about the Linux Kernel, such as the most important components, how they work, and so on. This HOWTO should help prevent the reader from needing to browse all the kernel source files searching for the"right function," declaration, and definition, and then linking each to the other.
  • Jon Corbet Interview by Stephen Figgins. Jonathan Corbet is the co-author of O'Reilly and Associates' upcoming 2nd Edition of Linux Device Drivers. He is also the CTO of Eklektix, Inc., and the executive editor of the online magazine Linux Weekly News. This interview speaks about the new kernel and how to write drivers for it.
  • Joe Pranevich's Wonderful World of Linux 2.4
  • From the IBM Developerworks, TW Burger writes a two part overview of new features, the development process and other policy changes in Meet the 2.4 Kernel
  • Linux Device Drivers is the new book by Alessandro Rubini and Jonathan Corbet, not only the best reference on writing drivers for the 2.4 kernel, it is the only reference.
  • Preview release:

    An early (obsolete) preview release is available for download through the KernelBook Downloads page. The preview is only available in RTF format --- which means "no diagrams". Much prettier Adobe Acrobat editions of the following chapters are available from our FTP site:

  • Linux is not Unix
  • Installing and Configuring Kernel Sources
  • Tools for Kernel Programming
  • Contributing to Linux
  • Plug'n'Play Subsystem
  • Official Linux Kernel-Docs

    Documents updated: Sun Jun 25 17:01:40 2000

    Thanks to the heroic efforts of Tim Waugh and Alan Cox, the 2.4 kernel sources now include a kernel-doc script for generating manpage-like 'reference pages' from the GNOME-like comments in the source code files. While not every developer has adopted the GNOME comment block convention, everyone reading this page has become completely convinced that it is in everyone's best interest to get into it (how's that for subliminal suggestion?)

    As a public service, and to give you some value add until there is enough of the kernel book online to make it worth your while to read it, we're pleased to offer the kernel-doc collection pre-generated through OpenJade as downloadable PDF and gzipped Postscript, and with (limited) HTML versions online:

    The Parallel Port Subsystem
    by Tim Waugh
  • Online HTML
  • PDF Document (66k)
  • Compressed Postscript
  • The Z8530 Programming Guide
    by Alan Cox
  • Online HTML
  • PDF Document (62k)
  • Compressed Postscript
  • Synchronous PPP and Cisco HDLC Programming Guide
    by Alan Cox
  • Online HTML
  • PDF Document (15k)
  • Compressed Postscript
  • The Video4Linux Book
    by Alan Cox
  • Online HTML
  • PDF Document (76k)
  • Compressed Postscript
  • The MCA Driver Programming Interface
    by Alan Cox
  • Online HTML
  • PDF Document (27k)
  • Compressed Postscript
  • CML2: Kernel Configuration Menu Language
    by Eric S. Raymond
  • Online HTML
  • PDF Document (56k)
  • Compressed Postscript
  • The Linux Kernel API
  • Online HTML
  • PDF Document (230k)
  • Compressed Postscript
  • Unreliable Guide to Kernel Hacking
    by Paul 'Rusty' Russel
  • Online HTML
  • PDF Document (50k)
  • Compressed Postscript
  • Unrealiable Guide to Locking
    by Paul 'Rusty' Russel
  • Online HTML
  • PDF Document (50k)
  • Compressed Postscript
  • More documents will be added as they become available.

    Gary Lawrence Murphy
    Mon Dec 29 22:09:15 2003