Welcome, gentle reader. You are reading a compendium; knowledge contained here was beaten into me by the kernel luminaries, and I was finally convinced to write this by Andi Kleen.
Please understand that I never wanted to write this document, being grossly underqualified, but I always wanted to read it, and this was the only way. I simply explain best practices, and aim to cover the most common 80% of what you will need to know to start hacking on the kernel. I avoid implementation details: that's what the code is for, and I ignore whole tracts of useful routines.
This document assumes familiarity with C, and an understanding of what the kernel is, and how it is used. It was originally written for the 2.3 kernels, but nearly all of it applies to 2.2 too; 2.0 is slightly different.