标签
内容简介
《Linux高级程序设计(第3版)》由杨宗德、吕光宏、刘雍编著,是面向Linux应用层系统编程的实战型教材。全书以Linux操作系统“一切都是文件”的设计特点为切入点,围绕“一段执行单元(进程)如何管理系统资源(CPU资源与各类文件资源)”这一主线展开,把庞杂的系统调用按资源管理逻辑重新组织,方便读者建立整体框架。 内容涵盖Linux下C应用编程的各个层面:系统编程环境与工具链(GCC、Makefile、GDB),文件与目录管理(文件属性控制、ANSI与POSIX标准下的文件读写、终端与串口编程),进程管理与程序开发(进程创建、退出、执行、等待、属性控制),进程间通信(管道、消息队列、共享内存),进程间同步机制(信号量)与异步机制(信号),多线程编程(线程创建、退出、取消及属性控制,互斥锁、读写锁、条件变量),线程与信号的配合,以及BSD socket网络编程中的TCP、UDP、原始套接口和网络服务器应用设计,最后一章还讲解了Linux下音频应用程序开发的基础内容。 本书的特点在于紧扣应用:每个知识点基本都配有一个可直接运行的小应用程序,代码与实例多取自真实的系统编程场景,而非抽象的概念演示。作者长期从事教学与工程实践,章节编排由工具到文件、由进程到线程、由本地通信到网络通信,层层递进。全书共18章,486页,适合作为高校Linux编程课程的配套读物,也适合有一定C基础、希望系统掌握Linux系统接口的自学者按章节顺序推进使用。
编辑推荐
市面上讲Linux的书写界面操作的很多,讲系统接口的也不少,但大多按API手册的方式逐个罗列函数,读完脑子里是一堆散件。这本书的价值恰在于给出了一个统一的组织逻辑——“一切都是文件”,把标准I/O、目录操作、设备文件、终端、socket统统放在“文件资源”这同一个篮子里,再让“进程”站到资源使用者的位置上去。框架立住了,后面读APUE之类的经典也就有了挂靠点。 另一个可称道之处是代码量大且成体系。作者多年教学与工程实践积累的例程,多数是可以编译、可以直接看现象的小程序,而不是伪代码。对自学者来说,先跑通、再改、再理解,比先啃定义要有效得多。第3版在进程、线程、网络三块尤其扎实,TCP高级应用与网络服务器应用设计这两章,把从socket创建到并发服务模型的链条补完整了,对做嵌入式网关、后台服务的读者很有用。 当然也要有心理准备:这是一本教材式的书,语言朴素,不炫技,例子偏工程而少趣味;部分环境描述以Linux 2.6内核、GCC 4.0/GDB 6.3为基准,今天在较新的发行版上运行,个别编译选项和调试行为需要自己微调。把这一点当成练习也无妨——能把老代码在新系统上跑通,本身就是对理解程度的检验。总体而言,它是中文Linux系统编程书里少有的“能顺着读完”的一本。
适合谁读
适合
- 有C语言基础、想系统学习Linux系统接口的程序员
- 需要在嵌入式Linux平台上做应用开发的工程师
- 高校开设Linux程序设计、操作系统实践课程的学生
- 从Windows平台转到Linux做后台服务开发的技术人员
不适合
- 完全零编程基础的读者,需要先补C语言与命令行
- 只想了解Linux桌面使用与运维命令的读者
阅读建议
- 先读完第1、2章,把GCC、Makefile、GDB三件工具用熟,后面的例程才好动手
- 每章的示例都亲自编译运行,并尝试修改参数观察系统行为变化
- 重点吃透第8至12章的进程与线程部分,这是全书承上启下的核心
- 遇到与新版内核、新版GCC不一致的报错,记录差异并查阅手册,当作额外练习
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第1章 Linux下C语言开发环境
- 第2章 Linux下C语言开发工具
- 第3章 Linux进程存储管理
- 第4章 ANSI C文件I/O管理
- 第5章 POSIX文件及目录管理
- 第6章 普通文件、连接文件及目录文件属性管理
- 第7章 终端及串口编程
- 第8章 Linux进程管理与程序开发
- 第9章 进程间通信——管道
- 第10章 Linux异步信号处理机制
- 第11章 System V进程间通信
- 第12章 Linux多线程编程
- 第13章 Linux Socket网络编程基础
- 第14章 TCP高级应用
- 第15章 UDP网络编程应用
- 第16章 网络服务器应用设计
- 第17章 本地通信与原始套接口
- 第18章 音频应用程序开发基础
常见问题
这本书适合零基础学Linux的人吗?
不太适合。书中默认读者已经会写C、会用命令行、看得懂简单的Makefile,一上来就讲系统调用。建议先用一本Linux入门书把shell和常用命令练熟,再回来看这本。
这本书讲内核开发还是应用开发?
讲应用层的Linux系统编程,也就是在用户态调用系统接口写程序,不涉及内核模块与驱动开发。书中讨论的“进程管理资源”是从用户程序视角出发的。
第3版和之前版本有什么差别?
该书第1版2008年出版,第2版2009年出版,第3版2012年出版,页数与篇幅逐版增加。第3版补充了终端编程、原始套接口、网络服务器应用设计和音频应用开发等内容,结构也更完整。
书里的例子能用在新版发行版上吗?
大部分可以,但书中环境以较老的Linux内核与GCC 4.0、GDB 6.3为基准。在新版GCC下可能遇到警告或默认标准变化,按报错提示调整编译选项通常即可通过。
读完这本之后接什么书比较好?
可以继续读《UNIX环境高级编程》(APUE)做系统性补全,或转向《Linux多线程服务端编程》《UNIX网络编程》深入并发与网络方向,也可以直接读内核相关书籍。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。