图书前言

在IT文化高度繁荣的今天,Linux操作系统作为源码开放的自由软件,是迄今为止由网络黑客参与开发的规模最大、性能最为完善的操作系统。在其产生、发展和不断完善的历程中,凝聚了众多IT人对最优方案的不懈努力。今天,Linux内核版本发展到了2.6.30以后,其版本更新速度相对以前逐渐趋于缓慢。这也正是Linux内核走向成熟化的标志之一。

Linux的设计参照了流行的网络操作系统UNIX,具有很强的兼容性和稳定性。Linux还是自由软件项目GNU的重要组成部分。它目前广泛地应用于计算机科学研究、软件技术研究、网络服务后台系统等需要高可靠性、高复杂度的环境之中。因此会使用Linux也成为计算机专业人员所必备的技能之一。

面对庞大而复杂的Linux操作系统,很多学习者无从下手。本书正是在这种背景下编写的,紧紧围绕着本书的写作主线“Linux应用→编程开发→内核源码与场景分析→高级编程”,以当前最新的Linux内核源代码为依据,以软件开发人员学习的实际需要为出发点,采用“理论讲解+实例解析”的方式对Linux进行了全面细致的讲解。本书主要分为以下四大部分: 

 基于流行的Ubuntu发行的Linux操作系统,对Linux常用的命令配合实例进行详细讲解; 介绍了利用命令脚本进行Shell编程;  介绍了Linux下文本编辑器vi的使用方法;  介绍了GCC源代码的安装过程以及GNU开发工具链的使用。

 对常用的Linux中的C函数库进行了讲解; 介绍了Linux多进程处理与进程之间的通信; 介绍了Linux内存资源管理函数; 介绍了Linux中的用户管理和对用户信息进行编程的操作; 介绍了文件和目录的处理、文件内容的处理等编程方法。

 以当前最新的Linux内核源代码为依据,分析内核各功能模块原理,包括Linux内核进行裁剪与编译、模块机制与操作方式、中断上半部和下半部处理机制、系统调用机制的实现方式、内存管理、定时器管理以及向内核添加驱动程序的方法,并给出了大量的场景分析和实例验证。

 在高级编程里介绍了QT图形界面的开发方法、MySQL数据库程序的开发方法,并介绍了以CS模式Socket模型为例的基于TCP协议的网络应用开发。

本书在编写过程中,参考和引用了国内外同行、专家、学者所撰写的大量文献,特别是活跃在Internet技术论坛上的工程师,他们所撰写的大量的精华资料,对本书的编写和实验例程的解决方案起到重要的指导作用。

在此,感谢所有参与本书构思、解决方案、编辑和出版工作的同事、同行和为本书编写提供灵感的同学们。

由于Linux的内核版本和代码结构不断更新,加之编者水平有限,因此书中难免存在错误和不妥之处,恳请读者批评指正。

编者

2010年1月