我之前看过 Robert Love 写的 "Linux Kernel Development",那本书提纲挈领,给你一个内核的全貌,应该是 Linux 内核入门的一本不错的书。因为站得比较高,所以不会纠缠于细节。另外还有一本内核入门的书,名字忘了,比 LKD 要厚一些,似乎是今年新引进的,不过没有看过,所以也不好评论。
另外要看内核的话,操作系统的基础知识总是需要的。另一方面,学习内核的过程对操作系统会有更好的了解。对 C 当然也要足够熟悉。
数据结构(不看也可以,但是如果书里说起什么是链表,什么是算法,你要知道。但是建议你如果想自己写程序,就要看看这个。如果只是看别人写程序,一般不用)
《linux内核设计与实现》也就是上边兄弟说的: Robert Love 写的 "Linux Kernel Development(机械工业出版社出的那本翻译得不错,至少我是这么认为的)