This is the web site for the book, Linux Kernel in a Nutshell, by Greg Kroah-Hartman, published by O'Reilly.

To quote the "official" O'Reilly site for the book:
Written by a leading developer and maintainer of the Linux kernel, Linux Kernel in a Nutshell is a comprehensive overview of kernel configuration and building, a critical task for Linux users and administrators.

No distribution can provide a Linux kernel that meets all users' needs. Computers big and small have special requirements that require reconfiguring and rebuilding the kernel. Whether you are trying to get sound, wireless support, and power management working on a laptop or incorporating enterprise features such as logical volume management on a large server, you can benefit from the insights in this book.

Linux Kernel in a Nutshell covers the entire range of kernel tasks, starting with downloading the source and making sure that the kernel is in sync with the versions of the tools you need. In addition to configuration and installation steps, the book offers reference material and discussions of related topics such as control of kernel options at runtime.

A key benefit of the book is a chapter on determining exactly what drivers are needed for your hardware. Also included are recipes that list what you need to do to accomplish a wide range of popular tasks.

To quote me, the author of the book:
If you want to know how to build, configure, and install a custom Linux kernel on your machine, buy this book. It is written by someone who spends every day building, configuring, and installing custom kernels as part of the development process of this fun, collaborative project called Linux.

I'm especially proud of the chapter on how to figure out how to configure a custom kernel based on the hardware running on your machine. This is an essential task for anyone wanting to wring out the best possible speed and control of your hardware.
Linux Kernel in a Nutshell cover image

This book is intended to cover everything that is needed to know in order to properly build, customize, and install the Linux kernel. No programming experience is needed to understand and use this book.

Some familiarity with how to use Linux, and some basic command-line usage is expected of the reader.

This book is not intended to go into the programming aspects of the Linux kernel; there are many other good books listed in the Bibliography that already cover this topic.

Secret Goal (i.e. why I wrote this book and am giving it away for free online)
I want this book to help bring more people into the Linux kernel development fold. The act of building a customized kernel for your machine is one of the basic tasks needed to become a Linux kernel developer. The more people that try this out, and realize that there is not any real magic behind the whole Linux kernel process, the more people will be willing to jump in and help out in making the kernel the best that it can be.

This book is available under the terms of the Creative Commons Attribution-ShareAlike 2.5 license. That means that you are free to download and redistribute it. The development of the book was made possible, however, by those who purchase a copy from O'Reilly or elsewhere.

Kernel version
The book is current as of the 2.6.18 kernel release, newer kernel versions will cause some of the configuration items to move around and new configuration options will be added. However the main concepts in the book still remain for any kernel version released.

The book is available for download in either PDF or DocBook format for the entire book, or by the individual chapter. The entire history of the development of the book (you too can see why the first versions of the book were 1000 pages long) can be downloaded in a git repository.

Linux Kernel in a Nutshell chapter files:
Title page PDF
Copyright and credits PDF
Preface PDF DocBook
Part I: Building the Kernel PDF DocBook
Chapter 1: Introduction PDF DocBook
Chapter 2: Requirements for Building and Using the Kernel PDF DocBook
Chapter 3: Retrieving the Kernel Source PDF DocBook
Chapter 4: Configuring and Building PDF DocBook
Chapter 5: Installing and Booting from a Kernel PDF DocBook
Chapter 6: Upgrading a Kernel PDF DocBook
Part II: Major Customizations PDF DocBook
Chapter 7: Customizing a Kernel PDF DocBook
Chapter 8: Kernel Configuration Recipes PDF DocBook
Part III: Kernel Reference PDF DocBook
Chapter 9: Kernel Boot Command-Line Parameter Reference PDF DocBook
Chapter 10: Kernel Build Command-Line Reference PDF DocBook
Chapter 11: Kernel Configuration Option Reference PDF DocBook
Part IV: Additional Information PDF DocBook
Appendix A: Helpful Utilities PDF DocBook
Appendix B: Bibliography PDF DocBook
Index PDF

Full Book Downloads:
Tarball of all LKN PDF files (3MB)
Tarball of all LKN DocBook files (1MB)

git tree of the book source can be browsed at

To clone this tree, run: git clone git://