Linux Kernel Development(简记为LKD)是Linux内核的入门经典,已经更新到了第三版,作者是拥有15年以上内核开发经验的Robert Love,他目前是Google的资深软件工程师,作者的更多信息会在下一篇介绍。

 

LKD致力于讲解内核的原理与实现——既涉及原理又涉及实现,并在两者间找到一个平衡,以引导读者快速的理解内核,而不必纠缠于过多的细节。因此,它与大学里讲解操作系统原理的书籍不一样,它并非纯理论,而是基于Linux这个实实在在的内核,来讲解由这个内核发展并归纳出来的设计原理;它又不是一本讲解如何编写驱动或是解决某个内核问题的书籍,因为内核的每一个子系统都可以写出厚厚的指南,所以作者只是希望把内核的脉络讲清楚,让读者在本书的基础上,对内核有一个全局性的、提纲式的理解,在心中有一幅“内核地图”。当你心中有了这幅地图,你便知道哪里有路,去哪里“寻医问药”,然后你就可以把精力集中到内核的某个子系统,细细地钻研。

 

本着对读者负责的态度,在第一次开始阅读LKD时,并没有计划写读书笔记,因为我没有信心在未读完全书的情况下,把笔记写好。即便现在,我已经一个字一个字的把LKD读完,仍然有一些章节理解得不够深入,对内核的理解仍然处于菜鸟阶段。所以,我决定读二遍,在对全书有了全面的了解后,第二次的阅读旅程,能够加深某些知识的理解并更正一些错误的理解。而我也相信,第二次的阅读是写读书笔记的好时机,读第三遍的时候我可能不会有激情在这里写笔记了。

 

真正开始读LKD,是2010年9月底,一直到11月中旬,断断续续读了前6章。因为工作的一些变故,阅读的状态不太好。2010年11月中旬,因为想把autoconf加到自己的某个服务器程序中,突然领悟了autoconf的一些原理,又去研究了一下autoconf自动生成的脚本,目的是想写一篇关于autoconf的文章,却发现脚本中的一些bash语句看不明白,对自己失望之余,突然决定在继续看内核之前,先把bash研究透彻(怕以后玩起内核来,没时间再细看了),于是一直到2010年的最后一天,一直在看Bash Reference Manual,可惜没看完(但也收获不少)。眼看新年就要来了,在2011年1月1号开始,又重新拿起了LDK,一直到2011年2月21号终于读完,这是一个值得纪念的日子。

 

可见,这本书读了很久,这跟我比较弱的英文阅读能力以及阅读的注意力不够集中有关:我经常在阅读中对于不懂的句子,反复读两遍到三遍;由于有一段时间腹涨比较严重,分散了很多注意力,一般要到晚上11点左右才看得比较投入,所以真正看书的有效时间也不多(故而,同为程序员的你们,一定要学会保重身体——通过坚持下午跑步、打球,我最近好一些了)。写下这些锁碎的事情,只是想告诉大家,我是一个很平凡的人,如此平凡的人也有勇气学内核,你们应该更有信心:),本读书笔记,也是为所有平凡的程序员而写,天才们不需要我的读书笔记。

 

本笔记,会直接按照原书的章节来记录,方便读者在阅读原书的过程中对照参考。

 

Let's go!

Logo

更多推荐