如何学习linux编程 来源:互联网
如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《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设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。 |
|
|
分享到:
相关推荐
本书《linux C 编程一站式学习 最新版》是一本针对Linux平台下C语言编程的学习材料,涵盖了从基础到进阶的多个方面,适合初学者逐步深入学习。书中内容丰富,包括了C语言的基础知识、操作系统原理、计算机体系结构、...
LinuxC编程一站式学习是一本全面讲解Linux环境下C语言编程的教材,它不仅涵盖了基础的编程概念,还深入探讨了C语言的本质以及与计算机系统各个层面的交互。本书的内容分为两个部分,第一部分是C语言的入门与基础,第...
以下将详细解析几个关键的Linux编程命令: 1. **`ls`**:列出目录内容。`ls`命令用于查看当前目录下的文件和子目录,通过添加参数如`-l`可以显示详细信息,`-a`则会显示包括隐藏文件的所有内容。 2. **`cd`**:...
总的来说,《Linux编程命令详解(第二版)》这本书应详细介绍了上述提到的各类命令,旨在帮助读者深入理解Linux编程环境,提高开发效率。通过学习和实践,你将能够熟练掌握这些命令,从而更好地驾驭Linux系统,提升你...
本文将深入探讨这两个主题,并结合《Linux+命令行和shell脚本编程宝典》及《Linux程序设计 中文第4版》两本书中的关键知识点。 一、Linux命令行基础 在Linux中,命令行是与系统交互的主要方式,通过键入不同的命令...
通过详细阐述C/C++编程的基础知识、编辑器的选择与使用、编写高质量软件的原则、进程与线程管理以及进程间通信等关键主题,本书为读者提供了全面而深入的学习资源。无论是初学者还是经验丰富的开发者,都能从中获得...
手册会介绍如何创建、删除、移动、复制文件,以及权限管理(rwx)和硬链接、软链接的使用。 4. **进程管理**:包括进程的创建(fork)、执行(exec)和终止,以及进程间通信(IPC)机制,如管道、信号、套接字等。 ...
本书旨在为读者提供全面且深入的Linux编程知识,内容涵盖了从基础到高级的各种主题。 #### 二、章节概述与核心知识点 ##### 1. 前言与目录(Front Matter and Table of Contents) - **主要内容**:介绍了全书的...
7. **编程与开发**:介绍在Linux环境下进行软件开发所需的知识,包括编译器的使用、调试工具等。 8. **高级主题**:深入探讨内核模块开发、虚拟化技术、集群架构等内容。 9. **附录**:提供有用的资源链接、常见问题...
- **编程语言支持**:除了C/C++之外,还介绍了其他一些常用编程语言在嵌入式领域的应用,比如Java、Perl、Python等,并提供了相关示例代码。 - **集成开发环境**:推荐了几款流行的IDE软件(如Eclipse、Visual ...
GDB(GNU Debugger)是GNU项目的一部分,是一款强大的源码级调试器,支持多种编程语言,包括C和C++。 **安装步骤**: 1. 使用包管理器安装gdb: - 对于Debian/Ubuntu系统: ``` sudo apt-get install gdb ``` - ...
文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半...
- C语言基础问题:掌握const的用法、浅复制与深复制的区别、逆波兰表达式、变长参数列表、调用约定、寄存器的使用、内联函数inline、PACK关键字、正则表达式、内存操作方法、四种强制类型转换、sizeof运算符以及...
- 是一套用于编译C/C++等语言的标准工具链。 - 包含编译器、汇编器、链接器等工具。 - 支持多种目标平台。 - **Makefile:** - Makefile用于自动化构建过程,通过定义依赖关系来自动编译源代码。 - 有助于简化...