This depends on where you currently are. If you want to work on the actual kernel itself, a good understanding of C (GNU C is used primarily I believe) is required, and Assembly knowledge is useful too for some parts (mostly drivers).
Even though its currently down, your biggest resource is going to be kernel.org.
Now, if you’re talking about creating your own version of Linux (i.e.: Ubuntu, ArchLinux, etc…), then you will want to look at http://www.linuxfromscratch.org/ which is pretty much the de-facto resource for creating your own flavor of Linux. I will suggest though, if you do this, do so in a virtual machine…otherwise, it may not be pretty if you make a mistake.
As for books, I’m not aware of any. I’ve personally been an Internet-resource user for the longest time.