分类:
2008-10-13 16:14:31
了解操作系统的原理,最好的方法就是深入了解一个系统的实现;了解一个系统的实现,最好的方法就是去读这个系统的源代码,读懂它,读透它,而后举一反三,其余则皆不难矣。
为什么选用早起版本的0.11源代码来学习?《Linux内核完全注释》中说的很有道理——Linux 0.11版内核只有14,000行左右(325kB),所以比起2.4的内核(核心代码约有几百万行)来说更容易理解。并且操作系统的道理理解透彻了,分析其它复杂的操作系统来也就不会那么难了。(复杂的系统多书都是复杂优化算法、提高效率上) 另外,学习Linux源码,对于学习C语言也很有好处。所以不妨把0.11版的Linux source作为万里长征第一步,先把它吃掉再说!
这里我采用了doxygen来分析整理了Linux代码,做好了交叉索引,非常方便的用来查找某一个函数的实现,或者某一个宏,某一个常量。从可读性来说,对于这种不需要修改的文档,doxygen在分析代码方面的确略胜Source Insight一筹!(我一直用的是Source Insight,感谢七猫告诉我doxygen这个好东东!^_^)
顺便推荐大家几本操作系统方面的好书(其实做这个chm的目的也是为了我更好的、更方便的学习这几本书):
一、
Operating Systems:Design and Implementation (Second Edition)
作者: Andrew S.Tanenbaum Albert S.Woodhull
译者:王鹏 尤晋元 朱鹏 敖青云
市场价: ¥40.00
出版社: 电子工业出版社
ISBN:7-5053-4774-8
出版日期:2001-04-01
简评:Linus当年学习操作系统时看的书,没有这本书也就没有了Linux。(够有震撼力吧!) Tanenbaum教授太过牛X,所以限于篇幅,不再这里介绍它的生平事迹了,想看得点!值的一说是这本书的下册是MINIX的源码外加一张光盘,卖的比上册还贵,所以我没买。(其实下册因为性价比不高,所以销量很不好)
二、
Advanced Programming in the UNIX Environment
作者: W.Richard Stevens
译者:尤晋元等
市场价: ¥55.00
出版社: 机械工业出版社
ISBN:7-111-07579-X
出版日期:2000-02-01
简评:Linux/Unix以及准循POSIX标准的所有操作系统(绝大多数嵌入式RTOS都是遵循POSIX的)编程的圣经!作者W.Richard Stevens 的大名把偶的耳朵都给振聋了^^(可惜英年早逝,整个计算机界的悲哀)。如果你不知道它的大名,那么我提另外两套书你肯定听说过《TCP/IP 祥解 卷一:协议》《TCP/IP 祥解 卷二:实现》《UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API》《UNIX 网络编程(第二版)第2卷:进程间通信》....总之,W.Richard Stevens 的书,都不能不看;就是现在没空看, 也要先买一本收藏着,以免以后涨价!:)
三、
作者: 赵炯
市场价: ¥42.00
出版社: 机械工业出版社
ISBN:7-111-14968-8
出版日期:2004-09-01
简评:这本书没啥特殊之处,它就是把Linux 0.11 的source中的注释全部翻译成中文了,并且加上了作者对此版本source的体会和理解。就冲全中文的Linux注释,也值得买一本。另外,如果你像我一样每天晚上要在床上看2个小时的书才能睡好觉,而又没钱买PDA的话,嗯,值得买一本,便于在床上看其他书的时候查源码。
四、
Linux Device Drivers,Second Edition
作者: (美)Alessandro Rubini,Jonathan Corbet
译者:魏永明 骆刚 姜君
市场价: ¥69.00
出版社: 中国电力出版社
ISBN:7-5083-1294-5
出版日期:2004-09-01
简评:这是Linux驱动开发相关的最好的一本书。Linux内核代码中约有85%的篇幅都是驱动程序代码,所以驱动编程的重要性可想而知。Alessandro Rubini 和 Jonathan Corbet 都是Linux驱动开发界的高高手,书中的经验足以使你提高半甲子的功力!