I recommend two such books: Kerrisk's "The Linux Programming Interface", which I have a physical copy of about three feet from me and I read almost cover to cover during some long empty time at work last summer, and is an excellent guide to programming for Linux, and Bob Love's "Linux Kernel Development" which I have not read nearly so thoroughly but thus far has been a very solid piece of work.