《深入理解Linux内核》译者序

2020年5月22日 | 由 梁金荣整理 | 1700字 | 阅读大约需要4分钟 | 归档于 陈老师博客 |

当着手翻译这本书时,我不由得回想起开始接触 Linux 的那段日子。

几年前,我们拿到 Linux 内核代码开始研究时,可以说茫然无措。其规模之大,叫“覆压三百余里,隔离天日”似乎不为过;其关系错综复杂,叫“廊腰缦回,檐牙高啄,各抱地势,勾心斗角”也不言过其实;阿房宫在规模和结构上给人的震撼,可能与 Linux 有异曲同工之妙。“楚人一炬,可怜焦土”,可能正是因为它的结构和规模,阿房宫在中国两千多年盛极的封建历史中终于没有再现,只能叫后人扼腕叹息;但是,Linux 却实实在在的矗立在我们面前,当我们徘徊在这宏伟宫殿之前时,或许,我们也需要火炬——不是用来毁灭,而是为了照亮勇者脚下的征途。

Linus Torvalds 在我们面前展现的 Linux 魔法卷轴,让我们的视野进入一个自由而开放的新世界。自由意味着自我价值的实现,开放代表着团结协作的理想,这对于从没把握过核心操作系统的中国人来说,无疑点燃起了心中的梦想。于是,许多人毫不犹豫地走进来了,希望深入到那散发自由光彩、由众人团结协力搭造起的殿堂。但是很快,不少人退缩了。面对这样一个汪洋大海,有的人迷惑了,出海的航道在哪里?有的人倒下了,漫漫征途何时是尽头?我常常想,如果那时他们手中就有这本书的话…

Daniel P.Bovet 和 Marco Cesati 携手,为我们打造了这本鸿篇巨著,自此我们有了火把,有了航海图,于是我们就有了彼岸,有了航道,也有了补给码头。不是吗,中断虽繁,但第四、六两章切中肯綮地剖析,肯定能让你神清气爽;内存管理虽难,但多达三章细致入微的说理,一定会让你茅斯顿开。而内容的组织更是别具匠心,每章开始部分一般性原理的描述,打破知识的局限,将每个部分的全景展现在你面前。而针对每个知识点,落到实处的独到分析,又会使你沉迷于知识的融会贯通之中。第三版对 Linux2.6 的全面描述,会使你为 2.4 与 2.6 之间的沟壑而感叹,但请放心,你曾从 Linux 旧版本获取的点滴依然是你前进的基石。总之,你面对的不再是赤裸裸的代码,而是真正能雅俗共赏的艺术。

对整个 Linux 社区来说,这绝不是微末的贡献而已,连 Andre Morton 都已经指出:“内核的学习曲线变得越来越长,也越来越陡峭。系统规模不断扩大,复杂程度不断提高。长此以往,虽然现在这一拨内核开发者对内核的掌握越发炉火纯青,但却会造成新手无法跟上内核发展步伐,出现青黄不接的断层”。而这本书的目的,无疑于此吻合。按照这本书指明的道路,我们可以躲过暗礁,绕过险滩,穿过逆流,勇往直前。这也是为什么这本书总在Linux 书籍排行榜中稳居前列的原因之一。

不过,除非行动,否则地图再好,也不会让人向自己的目标迈进半步。所以,在读书的同时,你还一定要亲身实践:理解内核某部分的捷径就是对它做些修改,这样你才能越过代码本身看到内核深层机理。Linux 是一个全新的世界,世界意味着博大精深,而新或许代表对旧的割舍和扬弃,加在一起,就是要我们在割舍和扬弃的同时还要积累知识到博大精深的地步,这容易做到吗?是的,这不容易做到。Gerald M.Weinberg 在《Becoming a Technical Leader: An Organic Problem-Solving Approach》一书中总结成长为高原-低谷模式:“成长是跳跃式的,要经过量的积累,在积累的过程中,往往要伴随着扬弃,所以常常会跌入低谷”。面对 Linux 这个需要长期孜孜以求的学习对象,无疑这种震荡会加重我们的疑虑,降低我们的信心,消磨我们的意志,使我们轻易的认为达到了自己的成长上限。

根据我们的经验,这需要系统思考来改变心智模式,最好有一个学习型组织来提供帮助:团队是学习的最佳单位。(可以参看彼得.圣吉的《第五项修炼》,这本书值得有心改变自己,并进而改善周围世界的人一读再读)所以,我们希望结合这本《深入理解 Linux 内核》,创造这样的一个氛围,一种环境。为此在kerneltravel.net 建立了中文网站“Linux内核之旅”,不但有一些有价值的资料,而且我们会把这些资料按照学习路径组织起来,让它们真正伴随内核学习者前进。

阅读《深入理解 Linux 内核》,需要一份耐心,更需要一份执着。当你闯过一道道难关,阅读到本书的最后一章时,会有“蓦然回首,那人却在灯火阑珊处”的感觉!

陈莉君

2006.9