《UNIX环境unix高级编程程》这本书怎么看?怎么学习

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分45阅读权限10帖子精华可用积分45 信誉积分73 专家积分0 在线时间42 小时注册时间最后登录
白手起家, 积分 45, 距离下一级还需 155 积分
帖子主题精华可用积分45 信誉积分73 专家积分0 在线时间42 小时注册时间最后登录
论坛徽章:0
我怎么看的晕乎乎的,想吐的感觉?
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分3351阅读权限50帖子精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
小富即安, 积分 3351, 距离下一级还需 1649 积分
帖子主题精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
认证徽章论坛徽章:46
哪里看不懂
心急摸不着热屁股
UID空间积分0 积分3351阅读权限50帖子精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
小富即安, 积分 3351, 距离下一级还需 1649 积分
帖子主题精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
认证徽章论坛徽章:46
可以发上来讨论
心急摸不着热屁股
UID空间积分0 积分38187阅读权限90帖子精华可用积分38187 信誉积分1810 专家积分0 在线时间2062 小时注册时间最后登录
巨富豪门, 积分 38187, 距离下一级还需 1813 积分
帖子主题精华可用积分38187 信誉积分1810 专家积分0 在线时间2062 小时注册时间最后登录
论坛徽章:4
一般都是第二遍才进入境界。
最牛逼的语言到底是不是PHP?
UID空间积分0 积分3351阅读权限50帖子精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
小富即安, 积分 3351, 距离下一级还需 1649 积分
帖子主题精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
认证徽章论坛徽章:46
看这本书得懂一下操作系统的知识,你要就把这当成c语言来学的话,肯定学不懂
心急摸不着热屁股
UID空间积分0 积分156960阅读权限100帖子精华可用积分156960 信誉积分3844 专家积分55 在线时间5882 小时注册时间最后登录
帖子主题精华可用积分156960 信誉积分3844 专家积分55 在线时间5882 小时注册时间最后登录
论坛徽章:88
& & 那书本来讲的就是Unix-like操作系统的编程接口,C只是这种接口的体现方式,理论上完全可以用另外一种语言代替。C语言在这里的作用,和普通用来写书的汉语、英语其实差不多(或者更接近物理书中的数学的作用),只懂C语言而不懂操作系统原理(内核实现)看这书看不懂完全是正常的。就像只懂汉语而不懂物理、数学,看不懂用汉语写的中级核物理或者量子物理书一样。
I can explain it for you, but I can’t understand it for you.
UID空间积分0 积分2阅读权限10帖子精华可用积分2 信誉积分37 专家积分0 在线时间14 小时注册时间最后登录
白手起家, 积分 2, 距离下一级还需 198 积分
帖子主题精华可用积分2 信誉积分37 专家积分0 在线时间14 小时注册时间最后登录
论坛徽章:0
我也看得好纠结,还是觉得要配合着项目,把它作为工具书来使用比较合适吧
UID空间积分0 积分3351阅读权限50帖子精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
小富即安, 积分 3351, 距离下一级还需 1649 积分
帖子主题精华可用积分3351 信誉积分1321 专家积分0 在线时间3164 小时注册时间最后登录
认证徽章论坛徽章:46
完全同意版主说的,如果懂内核的话,理解这本书很容易
心急摸不着热屁股
UID空间积分0 积分22阅读权限10帖子精华可用积分22 信誉积分79 专家积分0 在线时间15 小时注册时间最后登录
白手起家, 积分 22, 距离下一级还需 178 积分
帖子主题精华可用积分22 信誉积分79 专家积分0 在线时间15 小时注册时间最后登录
论坛徽章:1
那想看这本书之前,应该好好看看什么书?新手求推荐
UID空间积分0 积分12309阅读权限90帖子精华可用积分12309 信誉积分1596 专家积分0 在线时间3061 小时注册时间最后登录
大富大贵, 积分 12309, 距离下一级还需 7691 积分
求职 : 帖子主题精华可用积分12309 信誉积分1596 专家积分0 在线时间3061 小时注册时间最后登录
认证徽章论坛徽章:77
看看操作系统基本原理方面的图书就可以了,LINUX/UNiX系统编程手册,你可以和APUE配合起来阅读,程序员的自我修养等等
sunshiqiangunix环境高级编程是不是不适合初学者
[问题点数:20分,结帖人u]
unix环境高级编程是不是不适合初学者
[问题点数:20分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2010年7月 Linux/Unix社区大版内专家分月排行榜第三
2010年7月 Linux/Unix社区大版内专家分月排行榜第三
2010年7月 Linux/Unix社区大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。《UNIX环境高级编程》(W.Richard Stevens.Stephen A.Rago)【摘要_书评_试读】- 蔚蓝网
共有图书2890506种
您的浏览历史
顾客评分:
已有0人评论
字数:暂无&&&&&
页数:1271000&&&&&
开本:16开&&&&&
包装:平装
本书新版推荐:UNIX环境高级编程(第3版)(20年来影响无数程序员的经典之作,UNIX编程“圣经”最新版本。王者归来!)Rich Stevens显然不是Dennis Richie, Brian Kernighan那个贝尔实验室圈子的人。他对Unix的深入了解,是自己翻烂手册、钻研系统得到的。这个切入点,和我们多数用户是一样的。所以,我们想知道的东西,也许正是Stevens关心过的。看看他在N个系统上做的代码测试和对不同标准的比较就知道。《UNIX 环境高级编程(第2版)》适合所有对Unix系统的种种感到好奇的人,Unix和Windows不同在于,它是个鼓励你思考的操作系统(换句话说对于想远离计算机的细节的用户可能不那么友好),只要你使用它有些时日,就会有很多问题冒出来:symbolic link和hard link区别究竟何在?daemon process是怎么回事?即便不写系统级的程序,只作为一般的unix用户,《UNIX 环境高级编程(第2版)》里的信息也是弥足珍贵的。大部分人对技术书籍的评价,一向以“解惑”为第一标准。《UNIX 环境高级编程(第2版)》做到了。
本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修?┖驮霾梗?从沉俗钚碌募际醴⒄埂J橹谐?私樯躑NIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。  本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX程序员都是一本不可或缺的参考书。
目 录第1章 UNIX基础知识 11.1 引言 11.2 UNIX体系结构 11.3 登录 11.4 文件和目录 31.5 输入和输出 61.6 程序和进程 81.7 出错处理 101.8 用户标识 121.9 信号 141.10 时间值 151.11 系统调用和库函数 161.12 小结 17习题 18第2章 UNIX标准化及实现 192.1 引言 192.2 UNIX标准化 192.2.1 ISO C 192.2.2 IEEE POSIX 202.2.3 Single UNIX Specification 252.2.4 FIPS 262.3 UNIX系统实现 262.3.1 SVR4 262.3.2 4.4BSD 272.3.3 FreeBSD 272.3.4 Linux 272.3.5 Mac OS X 282.3.6 Solaris 282.3.7 其他UNIX系统 282.4 标准和实现的关系 282.5 限制 292.5.1 ISO C限制 292.5.2 POSIX限制 302.5.3 XSI限制 322.5.4 sysconf、pathconf和fpathconf函数 322.5.5 不确定的运行时限制 382.6 选项 422.7 功能测试宏 442.8 基本系统数据类型 452.9 标准之间的冲突 452.10 小结 46习题 46第3章 文件I/O 473.1 引言 473.2 文件描述符 473.3 open函数 483.4 creat函数 493.5 close函数 503.6 lseek函数 503.7 read函数 533.8 write函数 543.9 I/O的效率 543.10 文件共享 563.11 原子操作 593.12 dup和dup2函数 603.13 sync、fsync和fdatasync函数 613.14 fcntl函数 623.15 ioctl函数 663.16 /dev/fd 673.17 小结 68习题 68第4章 文件和目录 714.1 引言 714.2 stat、fstat和lstat函数 714.3 文件类型 724.4 设置用户ID和设置组ID 744.5 文件访问权限 754.6 新文件和目录的所有权 774.7 access函数 774.8 umask函数 794.9 chmod和fchmod函数 814.10 粘住位 834.11 chown、fchown和lchown函数 844.12 文件长度 854.13 文件截短 864.14 文件系统 864.15 link、unlink、remove和rename函数 894.16 符号链接 914.17 symlink和readlink函数 944.18 文件的时间 944.19 utime函数 954.20 mkdir和rmdir函数 974.21 读目录 984.22 chdir、fchdir和getcwd函数 1024.23 设备特殊文件 1044.24 文件访问权限位小结 1064.25 小结 106习题 107第5章 标准I/O库 1095.1 引言 1095.2 流和FILE对象 1095.3 标准输入、标准输出和标准出错 1105.4 缓冲 1105.5 打开流 1125.6 读和写流 1145.7 每次一行I/O 1165.8 标准I/O的效率 1175.9 二进制I/O 1195.10 定位流 1205.11 格式化I/O 1215.12 实现细节 1255.13 临时文件 1275.14 标准I/O的替代软件 1305.15 小结 130习题 130第6章 系统数据文件和信息 1336.1 引言 1336.2 口令文件 1336.3 阴影口令 1366.4 组文件 1376.5 附加组ID 1386.6 实现的区别 1396.7 其他数据文件 1396.8 登录账户记录 1406.9 系统标识 1416.10 时间和日期例程 1426.11 小结 146习题 146第7章 进程环境 1477.1 引言 1477.2 main函数 1477.3 进程终止 1477.4 命令行参数 1517.5 环境表 1527.6 C程序的存储空间布局 1527.7 共享库 1547.8 存储器分配 1547.9 环境变量 1577.10 setjmp和longjmp函数 1597.11 getrlimit和setrlimit函数 1647.12 小结 168习题 168第8章 进程控制 1718.1 引言 1718.2 进程标识符 1718.3 fork函数 1728.4 vfork函数 1768.5 exit函数 1788.6 wait和waitpid函数 1798.7 waitid函数 1838.8 wait3和wait4函数 1848.9 竞争条件 1858.10 exec函数 1888.11 更改用户ID和组ID 1928.12 解释器文件 1968.13 system函数 2008.14 进程会计 2038.15 用户标识 2088.16 进程时间 2088.17 小结 210习题 211第9章 进程关系 2139.1 引言 2139.2 终端登录 2139.3 网络登录 2169.4 进程组 2189.5 会话 2199.6 控制终端 2209.7 tcgetpgrp、tcsetpgrp和tcgetsid函数 2219.8 作业控制 2229.9 shell执行程序 2259.10 孤儿进程组 2289.11 FreeBSD实现 2309.12 小结 231习题 232第10章 信号 23310.1 引言 23310.2 信号概念 23310.3 signal函数 24010.4 不可靠的信号 24210.5 中断的系统调用 24410.6 可重入函数 24610.7 SIGCLD语义 24810.8 可靠信号术语和语义 25010.9 kill和raise函数 25110.10 alarm和pause函数 25210.11 信号集 25610.12 sigprocmask函数 25810.13 sigpending函数 25910.14 sigaction函数 26110.15 sigsetjmp和siglongjmp函数 26610.16 sigsuspend函数 26810.17 abort函数 27410.18 system函数 27610.19 sleep函数 28010.20 作业控制信号 28210.21 其他特征 28410.22 小结 285习题 285第11章 线程 28711.1 引言 28711.2 线程概念 28711.3 线程标识 28811.4 线程的创建 28811.5 线程终止 29111.6 线程同步 29711.7 小结 311习题 311第12章 线程控制 31312.1 引言 31312.2 线程限制 31312.3 线程属性 31412.4 同步属性 31812.5 重入 32412.6 线程私有数据 32812.7 取消选项 33112.8 线程和信号 33312.9 线程和fork 33612.10 线程和I/O 33912.11 小结 340习题 340第13章 守护进程 34113.1 引言 34113.2 守护进程的特征 34113.3 编程规则 34213.4 出错记录 34513.5 单实例守护进程 34813.6 守护进程的惯例 35013.7 客户进程-服务器进程模型 35413.8 小结 354习题 354第14章 高级I/O 35514.1 引言 35514.2 非阻塞I/O 35514.3 记录锁 35714.4 STREAMS 37014.5 I/O多路转接 37914.5.1 select和pselect函数 38114.5.2 poll函数 38414.6 异步I/O 38614.6.1 系统V异步I/O 38614.6.2 BSD异步I/O 38714.7 readv和writev函数 38714.8 readn和writen函数 38914.9 存储映射I/O 39014.10 小结 395习题 396第15章 进程间通信 39715.1 引言 39715.2 管道 39815.3 popen和pclose函数 40315.4 协同进程 40815.5 FIFO 41215.6 XSI IPC 41515.6.1 标识符和键 41515.6.2 权限结构 41615.6.3 结构限制 41715.6.4 优点和缺点 41715.7 消息队列 41815.8 信号量 42215.9 共享存储 42715.10 客户进程-服务器进程属性 43215.11 小结 434习题 434第16章 网络IPC:套接字 43716.1 引言 43716.2 套接字描述符 43716.3 寻址 43916.3.1 字节序 44016.3.2 地址格式 44116.3.3 地址查询 44216.3.4 将套接字与地址绑定 44916.4 建立连接 45016.5 数据传输 45216.6 套接字选项 46416.7 带外数据 46616.8 非阻塞和异步I/O 46716.9 小结 468习题 468第17章 高级进程间通信 46917.1 引言 46917.2 基于STREAMS的管道 46917.2.1 命名的STREAMS管道 47217.2.2 唯一连接 47317.3 UNIX域套接字 47617.3.1 命名UNIX域套接字 47717.3.2 唯一连接 47817.4 传送文件描述符 48217.4.1 经由基于STREAMS的管道传送文件描述符 48417.4.2 经由UNIX域套接字传送文件描述符 48617.5 open服务器版本1 49317.6 open服务器版本2 49817.7 小结 505习题 505第18章 终端I/O 50718.1 引言 50718.2 综述 50718.3 特殊输入字符 51218.4 获得和设置终端属性 51618.5 终端选项标志 51618.6 stty命令 52218.7 波特率函数 52318.8 行控制函数 52418.9 终端标识 52418.10 规范模式 52918.11 非规范模式 53218.12 终端的窗口大小 53718.13 termcap,terminfo和curses 53918.14 小结 540习题 540第19章 伪终端 54119.1 引言 54119.2 概述 54119.3 打开伪终端设备 54419.3.1 基于STREAMS的伪终端 54719.3.2 基于BSD的伪终端 54919.3.3 基于Linux的伪终端 55119.4 pty_fork函数 55319.5 pty程序 55519.6 使用pty程序 55919.7 高级特性 56419.8 小结 565习题 565第20章 数据库函数库 56720.1 引言 56720.2 历史 56720.3 函数库 56820.4 实现概述 56920.5 集中式或非集中式 57220.6 并发 57420.7 构造函数库 57420.8 源代码 57520.9 性能 59820.10 小结 600习题 601第21章 与网络打印机通信 60321.1 引言 60321.2 网络打印协议 60321.3 超文本传输协议 60521.4 打印假脱机技术 60521.5 源代码 60721.6 小结 644习题 645附录A 函数原型 647附录B 其他源代码 677附录C 部分习题答案 685参考书目 709索引 715
摘要与插图
Advance Programming in the UNIX Environment 问世于1992年,作者是UNIX和网络技术领城的国际知名专家W.Richard Stevens。该书出版以来受到读者的普遍欢迎和好评,认为它是“在UNIX环境下进行程序设计的有关人员必读且经常需要查阅的首选参考书”。UNIX的原创者Dennis Ritchie则称其是“公认的优秀、匠心独具的名著”。自此以来,UNIX系统及相关产业已经发生了很多变化,特别是UNIX相关标准的制订取得很大进展,UNIX系统采用的某些新技术已日趋成熟,典型的UNIX系统平台也有所更换,而Linux的兴起、快速发展和广泛应用而为世人瞩目。这些都使得该书有修订的必要,以反映这些变化。由于W. Richard Stevens已于1999年辞世,所以该书的出版商美国Addison Wesley 公司邀请原作者的好友,同样在UNIX领域中有很深造诣的Stephen
A.Rago承担了修订及更新该书的工作。经修订后,Advance Programming in the UNIX Environment第2版于2005年出版。它既保持了原书的基本结构、内容和风格,又有一定幅度的增删,主要包括全书依据POSIX.1的最新标准改写,内容更加丰富,在线程和多线程编程以及套接字方面增加了专面章节,使用的典型平台更改为FreeBSD 5.2.1、Linux 2.4.22、Solaris 9和Darwin 7.4.0。另外Stephen A.Rago在UNIX编程方面也具有极丰富的经验,这些都非常自然地反映到了该书第2版中。
除此之外,第2版的主要特点与第1版基本相同:
(1) 内容丰富实用,包含了在UNIX环境下进行程序设计所需的各方面内容。它既能满足UNIX环境下一般程序设计人员的要求,又常常能使需要解决各种疑难问题的高级程序设计人员找到满意的答案。
(2) 提供了大量应用实例。书中既有说明单个系统调用和库函数使用方法的小程序,也有综合应用它们的较大程序。这些程序的源代码总计10 000行以上,全部用ISO C编写。
(3) 为了说明系统调用和库函数的应用技术及其可能发生的各种问题,在必要时对UNIX内核的数据结构和算法进行了说明,这种理论与应用实践的结合,非常有助于读者提高程序设计的水平。
本书的第11章、第12章以及索引由同济大学计算机系张亚英博士翻译,第16章和第21章由上海交通大学软件学院戚正伟博士翻译,上海交通大学计算机系尤晋元教授翻译和修订了其余章节,并对全书进行统稿。本书第1版中译本于2000年出版以来,很多读者对其提出了许多宝贵意见,在本版中我们尽量采纳了这些意见。同时,我们的工作还得到上海交通大学计算机系陈英副教授、唐新怀博士、贺小箭博士和计算机系以及软件学院许多学生(包括姜义、梁宏鑫、何巍、包云程、周绪宏、金雪骥、高少琛和陈熹等)的帮助,在此一并表示感谢。还要特别感谢人民邮电出版社图灵公司武卫东、杨海玲等在本书的策划、编辑及出版方面所做的努力。
我们希望本书的出版对相关科技人员和读者会有所帮助,同时也期待广大专家和读者提出宝贵意见。
我差不多每次在接受专访当中,或是做技术讲座后的提问时间里,总会被问及这样一个问题:“你想到过UNIX会生存这么长时间吗?”自然,每次的回答都是:没有,我们没想到会是这样。从某种角度说,UNIX系统已经伴随了商用计算行业历史的大半,而这也早就不是什么新闻了。
发展的历程错综复杂,充满变数。自20世纪70年代初以来,计算机技术经历了沧海桑田般的变化,尤其体现在网络技术的普遍应用、图形化的无所不在、个人计算的触手可及,然而UNIX系统却奇迹般地容纳和适应了所有这些变化。虽然商业应用环境在桌面领域目前仍然为微软和英特尔所统治,但是在某些方面已经从单一供应商向多种来源转变,近年来对公共标准和免费开放资源的信赖已经与日俱增。
UNIX作为一种现象而不单是商标品牌,有幸能与时俱进,乃至领导潮流。在上个世纪70~80年代,AT&T虽对UNIX的实际源代码进行了版权保护,但却鼓励在系统的接口和语言基础上进行标准化的工作。例如,AT&T发布了SVID(System V Interface Definition,系统V接口定义),这成为POSIX及其后续工作的基础。后来,UNIX可以说相当优雅地适应了网络环境,虽不那么轻巧却也充分地适应了图形环境。再往后,开源运动的技术基础中集成了UNIX的基本内核接口和许多它独特的用户级工具。
即使在UNIX软件系统本身还是专有的时候,鼓励出版UNIX系统方面的论文和书籍也是至关重要的,著名的例子就是Maurice Bach的《UNIX操作系统设计》一书。其实我要说明的是,UNIX长寿的主要原因是,它吸引了极具天分的技术作者,为大众解读它的优美和神秘所在。Brian Kernighan是其中之一,Rich Stevens自然也是。本书第1版连同Stevens所著的系列网络技术书籍,被公认为优秀的、匠心独具的名著,成为极其畅销的作品。
然而,本书第1版毕竟出版时间太早了,那时还没有出现Linux,源自伯克利CSRG的UNIX接口的开源版本还没有广为流行,很多人的网络还在用串行调制解调器。Steve Rago认真仔细地更新了本书,以反映所有这些技术进展,同时还考虑到各种ISO标准和IEEE标准这些年来的变化。因此,他的例子是最新的,也是最新测试过的。
总之,这是一本弥足珍贵的经典著作的更新版。
Dennis Ritchie
2005年3月于新泽西州Murray Hill市
我与Rich Stevens最早是通过电子邮件开始交往的,当时我发邮件报告他的第一本书《UNIX网络编程》的一个排版错误。他回信开玩笑说我是第一个给他发这本书勘误的人。到他1999年故去之前,我们时不时地会通些邮件,一般都是在有了问题认为对方能解答的时候。我们在USENIX会议期间多次相见,并共进晚餐,Rich在会议中给大家做技术培训。
Rich Stevens真是个益友,行为举止很有绅士风度。我在1993年写《UNIX系统V网络编程》时,试图把书写成他的《UNIX网络编程》的系统V版。Rich发自内心地高兴地为我审阅了好几章,并不把我当成竞争对手,而是当作一起写书的同事。我们曾多次谈到要合作给他的《TCP/IP详解》写个STREAMS版。天若有情,我们或许已经完成了这个心愿。然而,Rich已经驾鹤西去,修订《UNIX环境高级编程》就成为我跟他一起写书的最易实现的方式。
当Addison-Wesley公司的编辑找到我说想修订Rich的这本书时,我第一反应是这本书没有多少要改的。尽管13年过去了,Rich的书还是巍然屹立。但是,与当初本书出版的时候相比,今日的UNIX行业已经有了巨大的变化。
? 系统V的各个变种渐渐被Linux所取代。原来生产硬件配以各自的UNIX版本的几个主要厂商,要么提供了Linux的移植版本,要么宣布支持Linux。Solaris可能算是硕果仅存的占有一定市场份额的UNIX系统V版本4的后裔了。
? 加州大学伯克利分校的CSRG(计算机科学研究组)在发布了4.4BSD之后,已经决定不再开发UNIX操作系统,只有几个志愿者小组还维护着一些可公开获得的版本。
? Linux受到数以千计的志愿者的支持,它的引入使任何一个拥有计算机的人都能运行类似于UNIX系统的操作系统,并且可以免费获得源代码支持哪怕最新的硬件设备。在已经存在几种免费BSD版本的情况下,Linux的成功确实是个奇迹。
? 苹果公司作为一个富有创新精神的公司,已经放弃了老的Mac操作系统,换之以一个在Mach和FreeBSD基础上开发的新系统。
因此,我已经努力更新本书中的内容,以反映这四种平台。
Rich在1992年出版《UNIX环境高级编程》之后,我扔掉了手头几乎所有的UNIX程序员手册。这些年来,我桌上最常摆放的就是两本书,一本是字典,另一本就是《UNIX环境高级编程》。我希望读者也能认为本修订版一样有用。
对第1版的改动
Rich的书依然屹立,我试图不去改动他这本书原来的风格。但是13年间世事兴衰,尤其是影响UNIX编程接口的有关标准变化很大。
我依据标准化组织的标准,更新了全书相关的接口方面的内容。第2章改动较大,因为它主要是讨论标准的。本书第1版是根据POSIX.1标准的1990年版写的,本修订版依据2001年版的新标准,内容要丰富很多。1990年ISO的C标准在1999年也更新了,有些改动影响到POSIX.1标准中的接口。
目前的POSIX.1规范涵盖了更多的接口。The Open Group(原称X/Open)发布的“Single UNIX Specification”的基本规范现在已经并入POSIX.1,后者包含了几个1003.1标准和另外几个标准草案,原来这些标准是分开出版的。
我也相应地增加了些章节,讨论新主题。线程和多线程编程是相当重要的概念,因为它们为程序员处理并发和异步提供了更清楚的方式。
套接字接口现在也是POSIX.1的一部分了。它为进程间通信(IPC)提供了单一的接口,而不考虑进程的位置。它成为IPC章节的自然扩展。
我省略了POSIX.1中的大部分实时接口。这些内容最好是在一本专门讲述实时编程的书中介绍。参考文献里有一本这方面的书。
我把最后面几章的案例研究也更新了,用了更接近现实的例子。例如,现在很少有系统通过串口或并口连接PostScript打印机了,多数PostScript打印机是通过网络连接的,所以我对PostScript打印机通信的例子做了修改。
有关调制解调器通信的那一章如今已经不太适用了。原始材料我们保留在本书网站上,有两种格式:PostScript/lostchapter/modem.ps)和PDF/lostchapter/modem.pdf)。
书中实例的源代码也可以从上获得。多数实例已经在下述四种平台上运行过:
(1) FreeBSD 5.2.1,这是加州大学伯克利分校CSRG的4.4BSD的一个变种,在英特尔奔腾处理器上运行。
(2) Linux 2.4.22(Mandrake 9.2发布),是一个免费的类UNIX操作系统,运行于英特尔奔腾处理器上。
(3) Solaris 9,是Sun公司系统V版本4的变种,运行于64位的UltraSPARC IIi处理器上。
(4) Darwin 7.4.0,是基于FreeBSD和Mach的操作系统环境,也是Apple Mac OS X 10.3版本的核心,运行于PowerPC处理器上。
(首先要感谢)Rich Stevens独立创作了本书第1版,它立即成为一本经典著作。没有家人的支持,我不可能修订此书。他们容忍我满屋子散落稿纸(比平常还甚),霸占了家里的好几台机器,成天埋头于电脑屏幕前。我的妻子Jeanne甚至亲自动手帮我在一台测试的机器上安装了Linux。
多名技术审校者提出了很多改进意见,确保内容准确。我非常感谢David Bausum、David Boreham、Keith Bostic、Mark Ellis、Phil Howard、Andrew Josey、Mukesh Kacker、Brian Kernighan、Bengt Kleberg、Ben Kuperman、Eric Raymond和Andy Rudoff。
我还要谢谢Andy Rudoff给我解答有关Solaris的问题,谢谢Dennis Ritchie不惜花时间从故纸堆中为我寻找有关历史方面问题的答案。再次谢谢Addison-Wesley公司的员工,与他们合作令人愉快,谢谢Tyrrell Albaugh、Mary Franz、John Fuller、Karen Gettman、Jessica Goldstein、Noreen Regina和John Wait。特别感谢Evelyn Pyle细致地编辑了本书。
就像Rich曾经做到的那样,我非常欢迎读者发来邮件,发表评论,提出建议,订正错误。
Stephen A.Rago
2005年4月于新泽西州Warren市
0人参与评分
很好(5星,4星):
一般(3星,2星):
不推荐(1星):&&&
写购物评价,赢购物积分,可换购物券!好书不要私藏哦,分享给别人吧!
温馨提示:由于每位咨询者提问时间及蔚蓝网促销等不同原因,以下回复仅对提问者3天内有效,其他网友仅供参考!
1件商品成功放入购物车
购物车共件商品,商品金额合计¥97.10
购物车中已有该商品
非常报歉,本商品没有库存暂时无法购买,如果您仍需要该图书
请输入邮箱做缺货登记,到货后我们会给您发邮件通知。
非常抱歉,您购买的数量超过库存,当前最多可买303件,请您修改。

我要回帖

更多关于 unix高级编程 pdf 的文章

 

随机推荐