光京科海培训中心 (美)K Wall.M.Watson.M.Whitis et着 王勇王一川林花军甘泉 GNU Linux 编程指南 清华大学出版社
引言 本书的组织 本书不是C语言的入门书,不过你可从中很快温习一下久违的C语言。你应该能够读 懂C语言代码,理解常见的C语法。我们选定的工具很少偏离可从GNU项目得到的工具 箱。其原因很简单:GNU软件是每个Iiux发行版本的标准配置。这也是我们合称它们的 GNU/Linux的原因。 开头七章讨论开发系统的设置和标准GNU/Linux开发工其的使用: gcc make autoconf diff patch .RCS emacs 第2部分讨论系统编程主题.要是你对标准C函数库不大熟悉,第9章可用来清理这样 的紊乱状态。第10章讨论Liux的文件操纵例程。第11章回答“什么是进程?”的问题并给 出与进程和作业控制关联的系统调用。第12章讨论如何获取系统信息。到第13章时我们 将走上讲台传布出错检查是件大事的理由。当然,我们还会告诉你如何去做。第14章专门 探讨Linux内存管理的怪异行为。 我们在第15章~第18章中分别进行使用管道、消息队列、共享内存区和信号灯进行进 程间通信的讨论。第19章~第23章讨论如何基于TCP/P网络协议编写程序。在第24章 一般性地介绍如何创建和使用编程用函数库(包括从libc5到ibc6的转换)之后,我们在第 25章讨论编写设备驱动程序和内核模块,因为给最新的高速硬件设备或系统设备提供内核 支持需要花相当多的编程精力。 接下去在第26章~第33章讨论用户接口编程。其中第26章和第27章讨论字符模式 编程;第26章讨论使用termcap和termios直接控制终端,第27章讨论使用ncurses的更简 便方法。在第28章简短介绍X编程,第29章将集中讨论使用Motif和Athena窗口部件集。 使用GTK函数库的X编程是第30章的主题,使用Qt函数库(KDE的基础)的X编程是第 31章的主题,Java编程则在第32章讨论。我们还在第33章讨论使用OpenGL进行三维图 形编程。 第5部分涵盖三个特殊月的的主题。其中第34章讨论bash的shell编程。第35章讨论 安全相关的编程问题。第36章讨论使用gdh调试程序。 本书最后讨论如何把自己的编程项目转发出去。第3?章介绍tar和RPM软件包管理 工具。程序文档极为重要,因此我们在第38章指导你如何编写手册页面以及如何使用某些 基子SGML的建档工具。第39章最后查看软件许可证使用方面的重大问题
目录 第1部分Linux编程工具包 第1章概貌……… …(1)》 1,1 Linux既往成就… ……(1) 1.2无inux预期城就……… 1.3 Linux简史… (2) l.4 Linux与UNX… l.5 Linux编程 1.6为何选择Linux编程… (3) 。1.7小结 第2章设置开发系统…… 2.1硬件选择… (4) 2.1.1硬件选择上的考虑 ……(4) 22处理器/主板……… (5) 2.2.1板上1/0 …4…(6) 2.2.2处理器……4……, 2.2.3BOS…*……… (7) 2.24内存 2.2.5机箱和电源… (7) 2.3用户交互硬件:视频、声音、键盘及鼠标 (8) 2.3.1显卡… 2.3.2显示器……… , (9) 2.3.3当卡… (10) 2,4键盘与鼠标… ……4…(10) 2.5通信设备、端口及总线………… …(11) 2.5,1调制解调器…… …………(11) 2.5.2阿络接日卡…… …………(12) 2.5,3SCSI++w………4*…… (13) 2.5.4USB与火线(1EEE1394)… (13) 2.5.5串行卡(包括多端口)… (13) 2.5,6fDA………4……… ……(14) 2.5.7 PCMCIA卡… ………(14) 2.5.8SA即插即用设备……… (14 么.6存储设备…… 2.6.1硬盘…
日录 2.6,2可移动磁盘设备……………………………(14) 2.6.3CD-ROM/DVD……… …(l5) 2.6.4磁带备份设备… …4…(]5】 2.7外图设备………… ,(15) 2.7.】打印机…… …………(15) 2.7.2为描仪……*…… …(16) 2.7.3数字相机…… (17) 2.7.4家居启动控制设备… …(17) 2.8完备型系统…………… (17) 2.9便携系统… (18) 2.10安装………… 2.11小结 (21) 第3章使用GNUc心… 3.】GNU ce特性… (22) 3.2使用简介………… ……(22) 3.3常用命令行选项… …(24)》 3.3.1丽数库和包含文件… …(25) 3.3.2出错检查及警告…… ……(26) 3.4优化选项…… (27) 3.5调试选项 3.6GNUC扩展 (29) 3.7小结………… …(30) 第4章使用GNU make管理项目… (31) 4.1为何使make… (31) 4.2编写makefile…… (31) 4.3有关makefile编写的详细规则…… (33) 4.3.1伪日标… (33) .3.2变f………(33) 4.3.3环境变量、自动变量及预定义变量 (35) 4,34隐式规则……………… **(36》 4,3.5摸式规则…………… (36) 4.3.6注释 (37) 4.4额外的m8ke命令行选项…………… (37) .5调试mke…… (37) 4.6常见的make出错消息… **……(38) 4.7有用的makefile目标… (38) 4,8小结……………… (38 第5章使用autoconf创建自配置软件… 5.1理解aut0c0nf4…… …(39)
月录 3 5.1.1创建configure,in文件……(40) 5.1.2构造文作……………………(40) 5,1.3有用的au10C0nf实用工具……………+……………(41) 5,2内宏………(4) 5.2.1候选程序测试…(41) 5.2.2库函数测试… …(42) 5,2,3头文件测试………………(43) 5.2.4结构测试… *4…*……(44) 5.2.5类理定义测式………… ……(41) 方.2.6编泽器行为测试…… ……(44) 5.2.7系统服务测试… (45) 5.2.8UNIX变种测试… …………(5)》 5.3普通宏… (46) 5.4-·个带注解的autoconf脚本… …+…(47) 5.5小结,4… (52) 第6章比较和归并源文件……。 (53) 6.1比较文件……… (53) 6.1.1理解cp命令…… (53) 6.1.2理解dif命令… (55) 6.1.3理解dif3命令…。 …(60) 6.1.4理解sdif命令…… (63) 6.2准备源代码补丁……… (63) 6.2.1 patch命令行选项… (64) 6.2.2创建补丁…… (64) 6.2.3使用补丁… …………(65) 6.3小结………4… (65) 第7章使用RCS控制版本 (66) 7,】术语……… …(66) 7.2R(CS基本H法……… ……(67) 7.2.1Ci和C0………………… (67) 7.2.2RCS关键字…… (69) / 7.2.3 ident命令… (70) 7.3r3iff4……… ……(71) 7.4其他RCS命令 …(73) 7,4.1C3 clean………………… (74) 7.4.2rog… (74) 7,4.3【代5…4……… (74) 7.4.4 rcsmerge.. …4…(74)》 7.5小结…4… …(75)