红联Linux门户
Linux帮助

学习Linux编程的一套好方法

发布时间:2007-11-03 02:05:08来源:红联作者:lfedorax
  如果想学习UNIX/Linux的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。

  然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、FTP等协议的编程。

  建议学习路径:
  首先先学学编辑器,vim, emacs什么的都行。

  然后学make file文件,只要知道一点就行,这样就可以准备编程序了。

  然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。

  如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。

  然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。

  如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。

  对于几本经典教材的评价:
  《The C Programing Language》K&R 经典的C语言程序设计教材,作者是C语言的发明者,教材内容深入浅出。虽然有点老,但是必备的一本手册,现在有时候我还常翻翻。篇幅比较小,但是每看一遍,就有一遍的收获。另外也可用谭浩强的《C语言程序设计》代替。

  《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易。

  《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。

  《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。

  《用TCP/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会知道Qterm的telnet 实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。

  《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是《操作系统 设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会
有一个清晰的认识。

  《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。
文章评论

共有 34 条评论

  1. yuquzou 于 2012-03-29 21:28:50发表:

    看看了

  2. sky11726 于 2012-03-14 21:25:44发表:

    Good

  3. lyqsr 于 2012-03-13 15:40:17发表:

    ding

  4. 海蓝 于 2012-03-13 14:51:24发表:

    谢谢分享,学习了

  5. honglianqxw123 于 2012-03-12 10:20:28发表:

    谢谢楼主了。

  6. lypspy 于 2012-03-04 20:07:13发表:

    动手才是硬道理

  7. lypspy 于 2012-03-04 20:06:49发表:

    动手才是硬道理

  8. honglianqxw123 于 2012-03-04 08:47:23发表:

    明白了一些。

  9. yyxl 于 2010-12-08 15:56:20发表:

    站跳来跳去就是下不了
    看看这次能不能下

  10. junhong2009 于 2010-11-08 16:39:11发表:

    不错

  11. kingwl88 于 2010-11-02 17:01:55发表:

    刚开始学

  12. westwind 于 2010-11-01 20:27:53发表:

    henhao

  13. vopit 于 2010-10-29 20:10:05发表:

    看了好多贴,都说apue好,看来是了,准备买本看

  14. wghao910 于 2010-10-29 16:03:29发表:

    万分感谢!!!!!1{:2_105:}

  15. Viator42 于 2010-10-27 21:13:33发表:

    LZ好书单,先保存了以后慢慢找

  16. lxcmyrb 于 2010-10-27 20:42:28发表:

    谢了。正迷茫

  17. aaa12 于 2010-10-26 15:06:33发表:

    {:2_92:}

  18. tjmzgn 于 2010-10-26 14:25:10发表:

    网上都是这么说!

  19. andylao75 于 2010-10-10 19:17:10发表:

    刚开始学,谢谢楼主详细介绍!

  20. Linux-L 于 2010-10-10 11:14:41发表:

    :0w5ty(1不懂编程,路过了解一下

  21. olderlong 于 2010-10-06 19:27:49发表:

    慢慢来,呵呵。这个要心平气和。

  22. sprling 于 2010-10-06 17:12:43发表:

    收藏!

  23. maoyin123 于 2010-09-25 19:58:57发表:

    要坚持啊,很多东西看起来很枯燥啊

  24. mikeli 于 2010-09-25 14:06:26发表:

    《APUE》这本书看了好几遍了,就是看不懂,是不是太笨了。

  25. gdsongshan2113 于 2010-09-25 12:58:50发表:

    在图书馆浏览过。挺好的书来的。

  26. dunderhead 于 2010-09-25 08:58:26发表:

    说的很对 收益

  27. 棉袄加短裤 于 2010-09-22 15:20:53发表:

    {:3_107:}

  28. UbuntuWeng 于 2010-08-19 12:04:05发表:

    ding

  29. beautifularea 于 2010-08-18 15:09:00发表:

    说滴 不错啊、

  30. haoxingfeng 于 2010-08-18 14:06:06发表:

    好 ,收藏

  31. hulee 于 2010-08-02 01:56:31发表:

    很不错,

  32. namewzf 于 2010-07-23 11:16:29发表:

    刚开始学,谢谢楼主详细介绍!

  33. carlote 于 2007-11-12 21:46:10发表:

    新手请教,我刚装上SUSE,处在第二阶段,会编简单的makefile了,就是感觉vim太麻烦了,在用KDevelop,能告诉我VIM有什麽优点吗?

  34. carlote 于 2007-11-12 21:39:20发表:

    雪中送炭,谢。。。