linux学习过程当中所须要看的一些书籍

 

入门类html

一直认为,在一个系统上学习开发以前,首先须要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操做系统就是Windows,所以对于这绝大部分人来讲,若是要学习Linux开发,学会使用这个系统都是必不可少的一个环节。linux

如今的Linux初学者是幸福的,随着Linux桌面环境愈来愈易用,入门一个新的系统是很是容易的事情。虽然命令行对于提升工做效率更加有效,但咱们彻底能够把熟悉命令的过程放到平常使用中进行。不管学习什么知识,在实践中学习都是高效并且有趣的。在这个阶段,咱们也未必必定须要书籍。如今不少Linux发行版的Wiki写得都很是详细,在使用某一种发行版时找到相应的Wiki阅读查询就能够了。并且,桌面环境变化太快,关于桌面的介绍类书籍几乎都没有必要看,这类书籍大多刚一出版就过期了。git

那入门类书籍里哪些比较有价值呢?我比较推荐涉及的技术相对比较稳定的书。好比,Linux基本的体系结构和命令通常都是经久不变的,甚至从上古时期的Unix开始就没太多变化,这类书籍讲解的知识也是之后大幅提升咱们的生产力的基础。好比《鸟哥的Linux私房菜》,好比《Unix Power Tools》(中译名是“UNIX超级工具”),或者是为Linux+认证考试准备的《Linux+ Study Guide》。固然,这一类书籍其实都没必要精读,快速浏览以后做为工具书备查就能够了。程序员

编程类编程

类Unix系统的编程书籍里,最经典的莫过于简称为APUE的《Advanced Programming in the UNIX Environment》(译名是“Unix环境高级编程”),这本书被广大Unix程序员(包括Linux)捧为“圣经”。借用葛大爷的广告词:“这就像进馆子同样,一条街上,哪家人多我进哪家”。APUE对类Unix系统的编程接口讲解的很是全面详细,对于这本书,咱们不只要精读,还应该放在案头常备。vim

可是,APUE对于Linux编程初学者彷佛稍深了一点,并且不少细节在Linux中并不会用到。讲述Linux编程的书籍里,《Advanced Linux Programming》应该更加适合初学者。不要被书名中的“Advanced”吓到,书里的内容仍是很容易理解的。看完这本书再看APUE应该效果会更好。编辑器

若是要开发GUI程序,上面两本书就无能为力了。在Linux世界里,最经常使用的GUI Toolkit是GTK+和QT。分布式

GTK+的书籍并很少,在线文档只适合查阅,并非一个完整的学习体系。《Foundations of GTK+ Development》是其中很不错的一本书,喜欢GTK+的开发者能够拿来做为入门书籍。ide

相对来讲,QT的书籍就很丰富了,这和QT具备良好的跨平台能力有很大关系,QT的书籍并不仅是写给Linux程序员看的,在Windows和MAC OSX下一样可使用QT开发程序。比较值得一看的QT类书籍有《C++ GUI Programming with QT4》、《Foundations of QT Development》、《The Art of Building QT Applications》,这三本都比较适合QT初学者阅读。另外,《Advanced Qt Programming》会介绍到QT一些比较高级的用法,适合有必定QT基础的读者阅读。工具

内核类

对于Linux内核或者设备驱动的开发者,最全面最直接的学习资料必定是Linux内核代码及其文档。Linux内核的发布周期很短,相关书籍的出版彻底跟不上脚步。但随着内核代码的日益庞大,学习曲线愈来愈陡峭,入门者又很是须要书籍来做为指导,这确实是很是矛盾的事情。所幸,不少Linux内核技术做家也是很勤奋的,常常会更新本身的做品。就像Robert Love,以2.6内核为蓝本的《Linux Kernel Development》已经更新到第三版了。LKD是很是适合内核初学者阅读的一本好书,对它的评价能够引用陈莉君老师的译者序:

相对于Daniel P. Bovet 和 Marco Cesati的内核巨著《 Understand the Linux Kernel 》,它少了五分细节,相对于实践经典《 Linux Device Drivers》,它多了五分说理。能够说,本书填补了Linux内核理论和实践之间的鸿沟,“一桥飞架南北,天堑变通途”。

谢谢陈老师,她的译者序帮我引出了另外要谈到的两本经典书籍,对,就是《Understanding the Linux Kernel》和《Linux Device Drivers》。对于这两本书,若是要挑它们的缺点,我只能说,内容有点老,不少知识点都须要更新了,除此以外,我要说的是,是它们把我带上了内核驱动开发这条路上来,固然,还有LKD。

最近,我又发现一本分析Linux内核的优秀书籍,就是《Professional Linux Kernel Architecture》。这本书我目前正在读,写得很是好,并且由于此书相对较新(只是相对,2.6.24内核在如今看来也很老了),没有看过ULK的同窗能够直接看这本书。

工具类

工欲善其事,必先利其器。进行Linux开发,相关工具仍是须要熟练使用的。好比,GNU Tool Chain、自动构建工具、编辑器、版本控制工具等等。

这里有一本一应俱全的书,叫作《Handbook of Open Source Tools》,书中介绍了各类各样的开源工具,可称之为开源技术的总决式。这本书试图面面俱到,所以并不深刻,粗读便可。

GNU Tool Chain参考Redhat的《The GNUPro Toolkit》已经足够了,若是单独把makefile拎出来,还能够参考《Managing Projects with GNU Make》。

自动构建工具能够参考《Autotools》。若是您准备使用cmake,推荐cjacker的《Cmake实践》。《Mastering CMake》听说是cmake的权威书籍,但一直无缘得见啊。

说到编辑器,在Linux里最著名的莫过于Vim和Emacs,关于这二者的背景,能够去看看《为什么Emacs和Vim被称为两大神器》。我几乎没用过Emacs,曾经在当当作活动时花9块钱买了一本《学习GNU Emacs》,有这本书做为Emacs的入门我想应该够了。Vim是我常用的编辑器之一(另外一个是Kate,最初喜欢上Kate的缘由之一就是它提供了Vim编辑模式),相关的书籍有两本值得一读:《A Byte of Vim》和《Hacking Vim 7.2》,可是对于初学者,首先跟着Vim自带的vimtutor练习效果会更好。

Linux下的版本控制工具不少,有传统的Subversion,也有如今很是流行分布式工具如Git等。Subversion能够参考这本《Version Control with Subversion》,Git能够参考《Version Control with Git》或者《Git Internals》或者《Pro Git》。

其它

除了以上几个类别,还有一些书籍值得推介。

好比《The Art of Unix Programming》,主要介绍了Unix系统领域中的设计开发哲学、思想文化体系以及社群文化等,覆盖面很是广。书中的一些内容和《Revolution OS》有类似之处,你们能够本身印证一下。对于这本书,咱们也彻底能够把它当作小说或者历史书来看,能够躺在床上看,也能够瘫在沙发上看,或者像怪怪那样坐在马桶上看,总之,没必要必定要端坐在书桌前。

Computer Systems: A Programmer's Perspective》 不少人都推荐过,这是一本很是经典的计算机体系方面的教材。CSAPP的内容基础全面,讲解简明扼要,易于理解,仔细读完以后对理清计算机体系结构甚至是 Linux内核都很是有帮助的。虽然中文名被译为《深刻理解计算机系统》(这个译名很不贴切),但相比之下,为何会让人感受国内的同类教材更加“深奥” 呢?也许,这就是做者功力的差距吧。

原文连接:http://www.cnblogs.com/wwang/archive/2011/01/27/1944406.html

相关文章
相关标签/搜索