Beginning system programming

Over at the forums, someone asked what books to refer to in order to learn programming at the kernel level. Based on my experience teaching Operating Systems last semester, two free resources immediately come to mind:

Linux Kernel in a Nutshell

and

Advanced Linux Programming

To be honest, my class never really got deep enough into the subject. That's the topic for another post. But I did learn quite a bit from these and other resources. Heh, the best way to learn is to teach.