我个人理解的读Linux内核需要的基础: 
在此之前,希望先把应用层的东西学一下,那样会比较好理解 
1.C 
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种), 
建议再看一下 
《The C Programming Language》Second Edition这本圣经 
/*如果想学缓冲区溢出,这点C的功力可能是不够的*/ 
还有,,, 
反正经典书看多了是没有坏处的 
2.asm (AT&T语法,保护模式) 
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍 
有80x86 Intel语法的基础就行, 
有兴趣可以看看Intel的官方**** 
3.数据结构(离散数学) 
计算机专业的核心课程,重要性我就不说了 
4.操作系统原理 
看懂这个再去读Linux吧 
5.微机原理/组成原理(数字电路) 
底层直接和硬件打交道,所以这个也要 
6.了解Linux/unix 
我想至少你要会操作吧,了解unix的API 
7.软件工程/编译原理
