`
arest
  • 浏览: 21442 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

【转】linux编程学习顺序

 
阅读更多

首先先学学编辑器,vim,emacs什么的都行。
然后学makefile文件,只要知道一点就行,这样就可以准备编程序了。

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

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

  然后再看DouglusE.Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习 网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议 telnet、ftp等协议的编程。
如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。

  对于几本经典教材的评价:

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

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

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

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

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

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

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

分享到:
评论

相关推荐

    linux编程(经典)

    《Linux编程(经典)》这本书,正是基于Linux和C语言的强强联合,为编程初学者和开发者提供了深入学习Linux编程的宝贵资料。 Linux操作系统不仅是全球开源社区的重要贡献,而且在国内外诸多关键行业均有广泛应用。...

    linux编程白皮书

    其次,深入学习Linux进程管理是Linux编程的关键部分。这包括进程创建(fork和exec家族函数)、进程通信(管道、套接字、信号量等)以及进程同步(互斥锁、信号量、条件变量)。理解这些概念有助于开发多线程、多进程...

    Linux网络编程 Linux网络编程.TXT

    理解这些基础知识对于深入学习Linux系统和网络编程至关重要。通过本文对给定文档内容的总结,我们不仅了解了Linux网络编程的框架,也掌握了其实现细节,为进一步的学习和实践打下了坚实的基础。

    轻松学习Linux编程

    本资料包“轻松学习Linux编程”旨在帮助初学者和进阶者深入理解Linux环境下的编程技术。 首先,Linux编程的基础包括了解Linux命令行界面、文件系统结构以及权限管理。Linux命令行提供了强大的交互方式,通过各种...

    《Linux编程典型实例解析》代码

    这个压缩包包含的章节顺序可能与原书的顺序略有不同,但每个部分都对应着书中特定的Linux编程主题。 在“readme.txt”中,通常会提供一些关于代码包的基本信息,如编译和运行实例的步骤、所需依赖库以及可能遇到的...

    LINUX编程(超全面)

    这个超全面的Linux编程学习资源包含了三本不同阶段的书籍,旨在引导学习者从基础到高级,逐步掌握Linux操作系统下的编程技能。 第一本是《Linux编程入门》。这本书通常会涵盖Linux操作系统的基本概念,如进程管理、...

    Linux C编程一站式学习 pdf

    ### Linux C编程一站式学习知识点概览 #### 一、C语言入门 **1.1 程序的基本概念** - **程序与编程语言**: 计算机程序是为解决特定问题而编写的一系列指令集合。编程语言是用于编写这些指令的语言。 - **自然语言...

    Python网络编程(Linux)_网络编程_python_linux网络编程_

    Python网络编程在Linux环境下是一...通过学习和实践这些知识点,开发者可以掌握Python在Linux环境下的网络编程技术,从而创建高效、可靠的网络应用。同时,对于深入理解网络协议、操作系统原理和并发编程也有很大帮助。

    LinuxC编程一站式学习

    本书尽最大努力理清概念之间的依赖关系,力求一站式学习,读者不需要为了找一个概念的定义去翻其它书,也不需要为了搞清楚一个概念在本书中前后一通乱翻,只需从前到后按顺序学习即可。但一站式学习并不等于傻瓜式...

    Linux编程从入门到精通

    在深入探讨Linux编程之前,我们首先要理解Linux操作系统的基础。Linux是一种自由开源的操作系统,它的内核由林纳斯·托瓦兹开发,后来成为一个全球性的协作项目。Linux编程涵盖了与Linux系统交互的各种方面,包括...

    Linux C编程一站式学习(非扫描版)

    强调基本概念和基本原理,在编排顺序上非常重视概念之间的依赖关系,每次引入一个新的 概念,只依赖于前面章节已经讲过的概念,而绝不会依赖后面章节要讲的概念。有些地方为 了叙述得完整,也会引用后面要讲的内容,...

    Linux系统、网络编程学习源代码

    这个名为"Linux系统、网络编程学习源代码"的压缩包文件,显然是为了帮助初学者理解和实践这两个领域的知识而设计的。 Linux系统是基于Unix的操作系统,它以其开放源码、稳定性和灵活性著称。在Linux系统中,开发者...

    Linux C编程一站式学习.chm

    本书尽最大努力理清概念之间的依赖关系,力求一站式学习,读者不需要为了找一个概念的定义去翻其它书,也不需要为了搞清楚一个概念在本书中前后一通乱翻,只需从前到后按顺序学习即可。但一站式学习并不等于傻瓜式...

    linux网络编程基础

    Linux网络编程是操作系统领域的核心技能之一,特别是在服务器端软件开发中。本教程主要关注Linux环境下的网络编程基础知识,包括UDP(用户数据报协议)和TCP(传输控制协议)的通信模型。下面将详细介绍这两个协议...

    linux网络编程和code

    在这个压缩包“linux网络编程和code”中,很可能是包含了一些关于Linux网络编程的源代码示例,帮助学习者深入理解和实践相关概念。 一、套接字编程 套接字(Socket)是网络通信的基本接口,它是进程间通信的一种...

Global site tag (gtag.js) - Google Analytics