深度探索Linux操作系统

王柏生
谨以此书献给恩师李明树先生。 前 言为什么要写这本书真正认真开始学习计算机是在2000年,当时书店里到处充斥着一系列如“21天精通xxx”、“7天掌握xxx”之类的图书,更有甚者宣称“24小时学会xxx”。既是高科技,又这么容易学,谁会拒绝呢?于是我走上了这一行。最初,确实如这些书所说,只要按照书中描述,将类似于Visual Studio等IDE安装到机器上,然后像搭积木一样,拖拽几个控件,再添加几行代码,一个程序就完成了。短暂的兴奋后,好奇心驱使我想更深层次地探索这一切是如何发生的。于是我开始关注更多的书籍、更多的文章、更多的编程参考,国内的、国外的。但是,结果让我很沮丧,如果依然是用积木来举例子,我发现它们的区别就像一盒10块的积木和一盒100块的积木,只有量的变化,没有质的区别。有人说Win32编程更底层,于是我抛开MFC,研究Win32编程。但是,结局一样让我失望。其实它们也没有本质区别,只不过如果把MFC比作大块积木,Win32是小块积木而已。其间我又遍寻那些Windows内幕的书进行研读,也是铩羽而归,似乎前方已无路可走⋯⋯2003年4月毕业后,我到了中科院软件所工作,开始从事与Linux相关的开发。经历了从Windows到Linux转型的阵痛后,我开始喜欢上了Linux,因为它是开源的,我似乎看到了曙光。于是我开始疯狂地购买Linux方面各种各样的书籍,阅读各种权威资料,基本上网络上各种权威专家推荐的书籍在我的书桌上全部可以找到。其中,绝大部分是关于内核源码分析的书,于是我一头扎进讲解内核源码分析的书中。但是我很快淹没在庞大的内核代码中,几次都到了难以坚持的程度,但是我强迫自己坚持,强制自己接受作者的灌输。但是,最终的结果是:看的时候似乎明白,但是看完后感觉又什么也没有看。现在回头看,当初很有点像“盲人摸象”这个典故所描述的,在我还没有看清整个“大象”的时…