推荐好书:《Linux高级程序设计(第3版)》

前几天在LUPA社区试读那本《Linux系统操作员实用教程》时,看到了《Linux高级程序设计(第3版)》,也顺便读了下的前几章。

作为一个业余写写程序的Linux爱好者,之前学习Linux下的编程是通过看各种参差不齐的教材的,所以掌握的东西也参差不齐。对Linux下的编程虽有一个大致的概念,但一直深入并掌握某些技术。其中当自己想建立一个全新的工程时,面对autotool之类的工具无从下手,找了相关资料也因为很多东西不了解而无法学下去,似乎Linux编程的相关知识都跟软件包一样有相互依赖关系。

然后我试着阅读《Linux高级程序设计》,看看这是不是我需要的书。目前为止看了三章,受益非浅。第一感觉是这书的内容非常全面,第二感觉是时效性非常好,第三就是易读易入门。

详细地说:

1、看了下目录,从Linux是什么,讲到了Linux的构成(相关工具链,包括GCC),再讲到Linux移植性的概念和实现(即讲到了我想学的GNU Autotool),第四章开始就是SCM(源代码管理)、网络编程、数据库、内核等等,一直到Mysql、PHP,其中还讲到了主流桌面开发平台GNOME。可以说基本把有关Linux编程技术有关的所有东西都讲到了,十分全面。

2、时效性方面,不像一般Linux的书,开篇介绍一堆Unix的历史,然后再讲到Linux。这本书很少提到Unix,不过必要的内容还是没少,他直接从GNU工程讲到了Linux,然后就是主流的发行版:Fedora、openSUSE和Ubuntu,可以说几乎是与时俱进的。据我个人了解的开发相关的东西,此书也都几乎保持同步,看到作者的GCC版本是4.X,用的是Debian系统。很多例子我都自己试了一下,都可以完美地运行在我当前的Ubuntu 8.04下。

虽然没看到后面有关GNOME开发的内容,不过可以想像也是基于最新的GTK+2的。

3、此书很全面,就这有个疑问了,深度和广度如何?下面是我在看了第二章有关Linux工具链的使用后的感觉。

书中从介绍什么是工具链,然后以GCC为例,从编译hello.c开始,再讲到编译多个文件、什么是静态/动态库,用GCC来建立/连接库等等。之前我只会一点基本编译知识,现在对GCC有了更多的了解。这些内容就在二十几页以几个简单的例子讲出来的,比较易懂。不过内容不仅仅是这些,后面还讲到了objcopy和objdump的使用,还有有关汇编的知识及如何用gdb调试。

因为从来没接触过后面的东西,所以我的感觉就是此书很深很广,应该可以全面了解Linux编程。当然书中的例子还是比较容易看懂的,书中多次提到了后面讲Linux内核时会深入相关知识。所以应该会是由浅入深吧!

读完前三章基本是这么个感觉,对Linux编程又熟悉和了解了很多。书中的有关Autotool的例子还是比较简单的,我要深入的话还是要看其他更详尽的文档。不过它至少让我理清了相关知识的依赖性。学习起来也有针对性,而不用再看到什么不会的,再去学那样。

从看完前三章来说,这应该是本好书。如果你打算学习Linux编程的话,看这本书应该没错。

我在豆瓣上找到这本书(地址:http://www.douban.com/subject/3105314/),原来是今年7月1日才出版的,上面还一个人都没有看过呢!

如果你也感兴趣的话,可以访问:http://bbs.lupaworld.com/thread-38534-1-1.html 去试读一下。

对了,这本书是翻译自国外的,翻译的不错。

<推广> 本站架设于 Linode 东京机房,同时使用 云梯 进行科学上网

2 Comments

  1. 听你那么一说,我去阅览了一下,内容是挺多的,详细没怎么看,就过了下,不过看目录的样子和之前在学校里看的很多LINUX相关的书差不多,讲的很像,就不知道这本书有什么特色了!

  2. 今天在图书馆看到这本书了,感觉确实不错,顺便借了回来,寒假回去好好看看

Leave a Comment