Linux环境编程:从应用到内核

高峰 李彬
前言 为什么要写这本书 我从事Linux环境的开发工作已有近十年的时间,但我一直认为工作时间并不等于经验,更不等于能力。如何才能把工作时间转换为自己的经验和能力呢?我认为无非是多阅读、多思考、多实践、多分享。这也是我在ChinaUnix上的博客座右铭,目前我的博客一共有247篇博文,记录的大都是Linux内核网络部分的源码分析,以及相关的应用编程。机械工业出版社华章公司的Lisa正是通过我的博客找到我的,而这也促成了本书的出版。 其实在Lisa之前,就有另外一位编辑与我聊过,但当时我没有下好决心,认为自己无论是在技术水平,还是时间安排上,都不足以完成一本技术图书的创作。等到与Lisa洽谈的时候,我感觉自己的技术已经有了一些沉淀,同时时间也相对比较充裕,因此决定开始撰写自己技术生涯的第一本书。 对于Linux环境的开发人员,《Unix环境高级编程》(后文均简称为APUE)无疑是最为经典的入门书籍。其作者Stevens是我从业以来最崇拜的技术专家。他的Advanced Programming in the Unix Environment、Unix Network Programming系列及TCP/IP Illustrated系列著作,字字珠玑,本本经典。在我从业的最初几年,这几本书每本都阅读了好几遍,而这也为我进行Linux用户空间的开发奠定了坚实的基础。在掌握了这些知识以后,如何继续提高自己的技能呢?经过一番思考,我选择了阅读Linux内核源码,并尝试将内核与应用融会贯通。在阅读了一定量的内核源码之后,我才真正理解了Linux专家的这句话“Read the fucking codes”。只有阅读了内核源码,才能真正理解Linux内核的原理和运行机制,而此时,我也发现了Stevens著作的一个局限——APUE和UNP毕竟是针对Unix环境而写的,Linux虽然大部分与Un…