关于内核学习我建议不要上来就读内核而是先了解内核的构成和特性,然后通过思考发现疑问这时再去读内核源码。即先了解概貌在读局部细节。而且内核分成好多部分,不要只是按照顺序去读,应该针对某一部分比如内存管理或进程管理横向读几本书,这样可以理解很全面。 Linux Kernel 四库全书
本书重在原理。适合入门的最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。
2.《深入理解Linux内核》
此书比上一本多了些细节。是Linux内核黑客在推荐图书时的首选。写的比较简单易懂,适合刚刚接触LINUX内核的。
这书强调动手实践!但它是讲解“设备驱动”的,不是最核心的东西,而且有些东西没硬件的话无法实践,可能更适合驱动开发的程序员吧 其中关于同步与互斥、内存分配的部分,感觉很不错。
4.《Linux内核源代码情景分析》
书很好,很经典,是浙大教授毛德操写的,可惜成书于2001年之后一直没有更新。分上下册。 很多是基于2.4内核讲解的需要注意。如果学习的话也建议学习2.6,2.6跟2.4比发生了很多显著改善,应该学习的。
全书内容博大精深,不是非常好懂,对细节问题描述比较清晰。但是感觉对内核的整体感觉不够强。另外缺少网络部分的分析。觉得不是很适合初学者。 本书基于Intel IA32体系,由于厚度大,很多体系上的知识都捎带讲解了,所以如果你想深入了解内核的工作机制而又不非常熟悉Intel CPU的体系构造,本书是最合适的。
这本书可以结合陈莉君老师的《深入分析Linux内核源代码》,这本书也是2.4内核的,网上可以下载
作者: 陈莉君
说明:陈老师是上述《深入理解Linux内核》和《Linux内核设计与实现》的作者,曾通读过linux的所有代码。
==================扩充阅读================== 5.《Linux内核源代码分析》
作者: (美)Scott Maxwell 点评:面对中高级,这本书很好,对了解操作系统是一本不可多得的好书。
6. 《LINUX KERNEL技术手册》
参考手册,很薄,值得一看。
7.《深入Linux内核架构》
这本书针对的是比较新的内核版本2.6.24;内容比较全面,深入浅出。 如果没有对Linux内核的初步结构的认识,那么会看得比较吃力。 建议可以一边去翻在国内已经闻名已经久的四本Linux内核著作(《Linux内核原代码情景分析》、《Linux内核设计与实现》、《深入理解Linux内核》、《Linux设备驱动程序》),再一边看这本书,把这本书当作一个补充或者当作一个内核框架图谱说明书来阅读,收效会更好。
8.《Linux内核完全注释》
此书出自同济一个博士--赵炯。
本书作者赵炯谈《Linux内核完全注释》和《Linux内核源代码情景分析》.. http://oldlinux.org/index_cn.html 网站宗旨:
收集Linux从酝酿到开发初始版本有关的所有资料和信息(1991-1995);
本书新版:《Linux内核完全剖析--基于0.12内核》
2009年出的,很厚。 ===============自制操作系统系列================== 9.《Orange S:一个操作系统的实现》
作者:于渊 出版社: 电子工业出版社; 第1版 (2009年6月1日) 本书第一版2005年出版,这是第二版。 从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。
10.《30天自制操作系统》 点评:小日本写的,不过确实写的内容很好,讲怎么自己一步步写操作系统,从汇编到C都有涉及。 _________________________________________________________________________
unix是Linux的基础,学习linux也要看unix Unix的绝版好书 UNIX操作系统设计
点评:当年linux之父参考过,非常经典,无需多言 ----------------------------------------------------------
UNIX编程环境原书名:The UNIX Programming Environment 作者: Brianw.Kernighan 译者: 陈向群 丛书名: 计算机科学丛书 出版社:机械工业出版社 点评:非常好的入门书.书中绝无生僻的角落,对于入门来说没有什么难以理解的。但是字里行间浸透了作者设计unix的指导思想,这一点是别的入门书无法企及的。 书中提及的点滴都是实用的方法和准则,而这些充斥着在unix上一整天的工作,即使是有经验的用户学过此书后工作效率也会提升。
UNIX高级教程系统技术内幕
作者: (美)Uresh Vahalia 点评:老书,有电子版。linux/unix的顶级宝贝! ===============================
本人写的另外系列,配合一起看效果更好,因为C语言是语言,还需要到实际环境Linux中去用,而Linux环境下网络编程自然需要TCP/IP的知识: C语言经典著作导读Linux网络编程必看书籍推荐 (TCP/IP与Unix环境Unix网络) (责任编辑:IT) |