推荐序三
对于徘徊在Linux Kernel大门外的初学者而言,这个结构复杂的庞然大物无疑令人心生敬畏,既渴望能早日如庖丁解牛般游刃有余地应用,同时也感觉学起来千头万绪、无从下手。这时,一本好的入门书籍就尤为重要,它能在古树参天、藤蔓缠绕的丛林中为你开辟出一条条穿行的道路,让你从容地游走其间,赏奇景、悟真谛。
对于我学习Kernel的经历而言,毛德操和胡希明老师的《Linux内核源代码情景分析》就是这样一本好书,我一直把它奉为Linux Kernel学习的“圣经”。初学时,我把这本书当作代码阅读的参考书,它为理解代码提供了充足的硬件和软件知识背景,在我一筹莫展时有如长者般在耳边娓娓道来。
后来从事Linux Kernel开发的工作,在开源社区里摸爬滚打了很多年,也有了一些自己的积累。经常遇到年轻的初学者让我推荐学习的资料,在我内心排在首位的还是《Linux内核源代码情景分析》,然而Linux Kernel日新月异,架构设计不断演进,新的特性层出不穷,基于2.4版本Kernel的源代码情景分析是否依然是初学者的最佳“导师”?我犹豫了,我抑制了内心强烈推荐的欲望,因为我不确定是否会误人子弟。
我和天飞在一个技术会议上认识,他给我的第一感觉是知识面很广,同时也很注意细节。后来有幸在同一家公司工作,交流愈发频繁起来。在他向我描绘内心的愿望时,我其实有一些震撼。他认为现在内核的学习曲线越来越陡峭,硬件平台之间的竞争也越来越激烈。他希望能总结他在学习和工作中的经验,让更多人特别是非主流平台的开发者看到不同平台上的Linux Kernel的风景。在现在这个浮躁的年代,很多人都追求“短、平、快”,写书是一件很耗时而且有可能费力不讨好的事情。但我知道,现在ARM平台基于最新kernel的技术书籍非常欠缺,我也期望有一本书能传承情景分析,同时弥补情景分析的不足,使更多的人受益。
后来,看着基于当前最新的4.x Kernel的《奔跑吧\2inux内核》逐渐成型,我内心充满期待。它同情景分析类似,以背景总览起步,以核心代码分析为辅,穿插介绍其他相关的知识点,慢慢地展开某一个子系统的优美画卷,为刚开始阅读Kernel源代码的初学者带来了福音。另外在开篇时设问,让读者能带着疑问读下去,在阅读的过程中努力发掘问题的答案,最后与作者给出的答案做对比来确认自己的理解是否有偏差。
当然一本书不可能解决读者的所有问题,但一本好书能带领读者走进Linux Kernel世界的大门。“纸上得来终觉浅”,最好的学习Linux Kernel的方式还是阅读源代码,并参与到真正的工程实践中来。希望《奔跑吧Linux内核》作为一个很好的“引路人”,为Kernel代码的学习者扫清障碍,引发更深层次的思考。愿你们能够早日亲睹Kernel的真正面目!
肖光荣
2017年6月