So, you want to write a kernel module. You know C, you've written a number of normal programs to run as processes, and now you want to get to where the real action is, to where a single wild pointer can wipe out your file system and a core dump means a reboot.
Well, welcome to the club. I once had a wild pointer wipe an important directory under DOS (thankfully, now it stands for the Dead Operating System), and I don't see why living under Linux should be any safer.
Warning: I wrote this and checked the program under version 2.0.35 of the kernel running on a Pentium. For the most part, it should work on other CPUs and on other versions of the kernel, as long as they are 2.0.x, but I can't promise anything. One exception is chapter 11, which should not work on any other architecture.
I haven't had time to update this book for version 2.2.x of the kernel. When I will, I'll publish a version with the addition on the LDP.