Linux编程圣经

作者:Ben Crowder
Linux Programming Bible
  • 作者:John Goerzen

  • 出版社:IDG Books Worldwide

  • 电子邮件:siteemail@idgbooks.com

  • 网址: http://www.idgbooks.com/

  • 价格:39.99美元

  • ISBN: 0-764-54657-0

  • 评论者:Ben Crowder

任何使用过Linux的人都知道,我们最喜欢的操作系统是程序员的天堂。 凭借几乎所有现存语言的数十种免费编译器和解释器,大多数程序都提供了源代码,以及系统背后以程序员为中心的理念,Linux 可以很容易地被描述为程序员梦想成真。

然而,有时,因为内容太多,很难跟踪所有内容,特别是对于新手来说。 这就是Linux编程圣经的用武之地。 它以清晰简洁的文字,展示了令人兴奋的Linux编程世界的整体和细节。 请预先注意,本书只深入介绍了少数几个主题; 本书更像是针对初学者的参考和教程,而不是关于某个特定主题的综合巨著。

本书的第一部分,第 1 章介绍了 Linux 环境以及它与编程的关系,包括如何查找文档。 第二章介绍了基本的 shell 编程,足以让您开始编写简单的脚本,这些脚本可以作为进入更高级 shell 编程的跳板。 第三章可能是本书最重要的章节之一,详细介绍了正则表达式。 它还解释了如何在 Perl、sed、awk 和 C/C++ 中使用它们。 第 4 章介绍了在某种意义上启动了整个开源运动的程序:Emacs。 最后,作为第一部分的结尾,第五章介绍了 Linux 文件系统布局、数据文件(例如 /etc/passwd 和 /etc/group)以及初始化脚本。

本书的第二部分专门介绍 C/C++ 环境。 第 6 章概述了 gcc,并进行了一些近距离观察; 它涵盖了编译器的不同部分,以及一些更常用的选项。 第七章介绍了一个使许多项目更容易管理的工具:GNU Make。 它解释了 makefile 的基础知识,并通过一些示例,这些示例足以让您入门。 第八章介绍了 Linux 中的内存管理,静态和动态分配的内存,以及一些关于那些令人喜爱的指针的有趣内容。 第九章介绍了静态库和动态库,以及帮助您管理后者的工具。 当不可避免的错误出现时,第 10 章将帮助您消除它们——它解释了如何使用 gdb,GNU 调试器。

第三部分介绍了作者描述的 Linux 模型。 第十一章解释了“一切皆文件”的 UNIX 哲学,并展示了如何从文件中读取和写入。 第十二章介绍了 Linux 进程:基础知识、如何 fork、同步和安全相关项。 第十三章介绍了信号——处理程序、发送/接收以及程序员需要注意的一些危险。 第十四章介绍了 Linux I/O 系统,描述了简单的流 I/O、内存映射 I/O 以及 select()poll()。 第十五章在第三部分的结尾解释了终端,以及如何确保您的程序对 telnet 用户以及直接访问它的用户表现良好。

优秀的程序与其他程序对话,这就是第四部分的内容。 第十六章介绍了共享内存和信号量; 第十七章解释了如何使用管道和 FIFO; 第十八章向您介绍了 TCP/IP (互联网) 套接字。 套接字在第十九章中进行了更详细的介绍。

第五部分介绍了最流行的胶水语言之一:Perl。 第二十章介绍了该语言,解释了数据结构和基本用法。 第二十一章涵盖了数据操作——读取数据、解析和处理数据、存储数据并再次将其吐出。 在许多人看来,Perl 与 CGI 密不可分,这就是第二十二章的内容。 最后,第二十三章解释了如何使用 Perl 的数据库接口 (DBI) 来访问 SQL 数据库。

虽然命令行界面对于许多任务非常有用且足够,但有时图形界面会更适合。 本书的第六部分包含两章,从编程的角度介绍了 X Windows 的基础知识、Perl(和 Python)的图形工具包 (Tk) 以及基本的 Gnome 编程。

make 让我们的生活变得轻松。 CVS 让它们变得更加轻松。 第七部分的第一章介绍了 CVS 的基础知识,包括设置您自己的存储库、检出和提交代码以及分支/合并代码。 第 27 章介绍了为 Linux 编写代码时的一些良好安全实践,第 28 章介绍了优化。 本书的结尾是一个很好的词汇表,解释了本书中使用的一些更常见的术语。

这本书值得购买吗? 除非您是一位经验丰富的内核黑客,拥有六七年的经验,否则答案是肯定的。 本书是对许多主题的良好概述,涵盖了最重要的主题,并且可以打开您的视野,看到以前未曾见过的景象。 如果您对 Linux 编程感兴趣,这是一本必备的书籍。

Linux Programming Bible
Ben Crowder 在过去的十年中,几乎在各个方面(编程、图形、网络、音乐以及几乎所有你能想到的)都深入参与了计算机领域。 他使用 Linux 已经两年半了,并且热爱其中的每一秒。 在业余时间,他喜欢阅读、写作、音乐和调整他的 Linux 机器上的东西。 他目前住在犹他州,可以通过 mlcrowd@enol.com 联系到他。
加载 Disqus 评论