UNIX编程艺术

UNIX编程艺术
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美]
出版社: 电子工业出版社
2012-08
版次: 1
ISBN: 9787121176654
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 530页
字数: 650千字
正文语种: 简体中文
原版书名: The Art of UNIX Programming
  •   《传世经典书丛:UNIX编程艺术》主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S.Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。本书内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。   Eric S.Raymond,从1982年开始就是UNIX开发者。作为开源社区文化的倡导和呼吁者,他在《大教堂与市集》中写下了这场运动的宣言,同时他还是《新黑客词典》的编辑。 序Part I第1章 哲学1.1 文化?什么文化1.2 Unix的生命力1.3 反对学习Unix文化的理由1.4 Unix之失1.5 Unix之得1.5.1 开源软件1.5.2 跨平台可移植性和开放标准1.5.3 Internet和万维网1.5.4 开源社区1.5.5 从头到脚的灵活性1.5.6 Unix Hack之趣1.5.7 Unix的经验别处也可适用1.6 Unix哲学基础1.6.1 模块原则:使用简洁的接口拼合简单的部件1.6.2 清晰原则:清晰胜于机巧1.6.3 组合原则:设计时考虑拼接组合1.6.4 分离原则:策略同机制分离,接口同引擎分离1.6.5 简洁原则:设计要简洁,复杂度能低则低 1.6.6 吝啬原则:除非确无它法,不要编写庞大的程序1.6.7 透明性原则:设计要可见,以便审查和调试1.6.8 健壮原则:健壮源于透明与简洁1.6.9 表示原则:把知识叠入数据以求逻辑质朴而健壮1.6.10 通俗原则:接口设计避免标新立异1.6.11 缄默原则:如果一个程序没什么好说的,就保持沉默1.6.12 补救原则:出现异常时,马上退出并给出足量错误信息1.6.13 经济原则:宁花机器一分,不花程序员一秒1.6.14 生成原则:避免手工hack,尽量编写程序去生成程序1.6.15 优化原则:雕琢前先得有原型,跑之前先学会走1.6.16 多样原则:决不相信所谓“不二法门”的断言1.6.17 扩展原则:设计着眼未来,未来总比预想快1.7 Unix哲学之一言以蔽之1.8 应用Unix哲学1.9 态度也要紧  第2章 历史——双流记2.1 Unix的起源及历史,1969-19952.1.1 创世纪:1969-19712.1.2 出埃及记:1971-19802.1.3 TCP/IP 和Unix内战:1980-19902.1.4 反击帝国:1991-19952.2 黑客的起源和历史:1961-19952.2.1 游戏在校园的林间:1961-19802.2.2 互联网大融合与自由软件运动:1981-19912.2.3 Linux 和实用主义者的应对:1991-19982.3 开源运动:1998年及之后 2.4 Unix的历史教训  第3章 对比:Unix哲学同其他哲学的比较3.1 操作系统的风格元素3.1.1 什么是操作系统的统一性理念3.1.2 多任务能力3.1.3 协作进程3.1.4 内部边界3.1.5 文件属性和记录结构3.1.6 二进制文件格式3.1.7 首选用户界面风格3.1.8 目标受众3.1.9 开发的门坎3.2 操作系统的比较3.2.1 VMS3.2.2 MacOS3.2.3 OS/23.2.4 Windows NT3.2.5 BeOS3.2.6 MVS3.2.7 VM/CMS3.2.8 Linux3.3 种什么籽,得什么果 Part II 第4章 模块性:保持清晰,保持简洁4.1 封装和最佳模块大小4.2 紧凑性和正交性4.2.1 紧凑性4.2.2 正交性4.2.3 SPOT原则4.2.4 紧凑性和强单一中心4.2.5 分离的价值4.3 软件是多层的4.3.1 自顶向下和自底向上4.3.2 胶合层4.3.3 实例分析:被视为薄胶合层的C语言 4.4 程序库4.4.1 实例分析:GIMP插件4.5 Unix和面向对象语言4.6 模块式编码  第5章 文本化:好协议产生好实践5.1 文本化的重要性5.1.1 实例分析:Unix口令文件格式5.1.2 实例分析:.newsrc格式5.1.3 实例分析:PNG图形文件格式5.2 数据文件元格式5.2.1 DSV 风格5.2.2 RFC 822 格式5.2.3 Cookie-Jar格式5.2.4 Record-Jar格式5.2.5 XML5.2.6 Windows INI 格式5.2.7 Unix文本文件格式的约定5.2.8 文件压缩的利弊5.3 应用协议设计5.3.1 实例分析:SMTP,一个简单的套接字协议5.3.2 实例分析:POP3,邮局协议5.3.3 实例分析:IMAP,互联网消息访问协议5.4 应用协议元格式5.4.1 经典的互联网应用元协议5.4.2 作为通用应用协议的HTTP5.4.3 BEEP:块可扩展交换协议5.4.4 XML-RPC,SOAP和Jabber  第6章 透明性:来点儿光6.1 研究实例6.1.1 实例分析:audacity6.1.2 实例分析:fetchmail的-v选项6.1.3 实例分析:GCC6.1.4 实例分析:kmail6.1.5 实例分析:SNG6.1.6 实例分析:Terminfo数据库6.1.7 实例分析:Freeciv数据文件 6.2 为透明性和可显性而设计6.2.1 透明性之禅6.2.2 为透明性和可显性而编码6.2.3 透明性和避免过度保护6.2.4 透明性和可编辑的表现形式6.2.5 透明性、故障诊断和故障恢复6.3 为可维护性而设计  第7章 多道程序设计:分离进程为独立的功能7.1 从性能调整中分离复杂度控制7.2 Unix IPC 方法的分类7.2.1 把任务转给专门程序7.2.2 管道、重定向和过滤器7.2.3 包装器7.2.4 安全性包装器和Bernstein链7.2.5 从进程7.2.6 对等进程间通信7.3 要避免的问题和方法7.3.1 废弃的Unix IPC方法7.3.2 远程过程调用7.3.3 线程——恐吓或威胁7.4 在设计层次上的进程划分  第8章 微型语言:寻找歌唱的乐符8.1 理解语言分类法8.2 应用微型语言8.2.1 案例分析:sng8.2.2 案例分析:正则表达式8.2.3 案例分析:Glade8.2.4 案例分析:m48.2.5 案例分析:XSLT8.2.6 案例分析:The Documenter's Workbench Tools8.2.7 案例分析:fetchmail的运行控制语法8.2.8 案例分析:awk8.2.9 案例分析:PostScript8.2.10 案例分析:bc和dc8.2.11 案例分析:Emacs Lisp8.2.12 案例分析:JavaScript8.3 设计微型语言8.3.1 选择正确的复杂度8.3.2 扩展和嵌入语言8.3.3 编写自定义语法8.3.4 宏-慎用8.3.5 语言还是应用协议  第9章 生成:提升规格说明的层次9.1 数据驱动编程9.1.1 实例分析:ascii9.1.2 实例分析:统计学的垃圾邮件统计9.1.3 实例分析:fetchmailconf中的元类改动9.2 专用代码的生成9.2.1 实例分析:生成ascii显示的代码9.2.2 实例分析:为列表生成HTML代码  第10章 配置:迈出正确的第一步10.1 什么应是可配置的10.2 配置在哪里10.3 运行控制文件10.3.1 实例分析:.netrc文件10.3.2 到其它操作系统的可移植性10.4 环境变量10.4.1 系统环境变量10.4.2 用户环境变量10.4.3 何时使用环境变量10.4.4 到其它操作系统的可移植性10.5 命令行选项10.5.1 从-a到-z的命令行选项10.5.2 到其它操作系统的可移植性10.6 如何挑选方法10.6.1 实例分析:fetchmail10.6.2 实例分析:XFree86服务器10.7 论打破规则  第11章 接口:Unix环境下的用户接口设计模式第12章 优化第13章 复杂度:尽可能简单,但别简单过了头 Part Ⅲ第14章 语言:C还是非C第15章 工具:开发的战术第16章 重用:论不要重新发明轮子 Part Ⅳ第17章 可移植性:软件可移植性与遵循标准第18章 文档:向网络世界阐释代码第19章 开放源码:在Unix新社区中编程第20章 未来:危机与机遇附录A 缩写词表附录B 参考文献附录C 贡献者附录D 无根的根:无名师的Unix心传Colophon索引读者评论
  • 内容简介:
      《传世经典书丛:UNIX编程艺术》主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S.Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。本书内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。
  • 作者简介:
      Eric S.Raymond,从1982年开始就是UNIX开发者。作为开源社区文化的倡导和呼吁者,他在《大教堂与市集》中写下了这场运动的宣言,同时他还是《新黑客词典》的编辑。
  • 目录:
    Part I第1章 哲学1.1 文化?什么文化1.2 Unix的生命力1.3 反对学习Unix文化的理由1.4 Unix之失1.5 Unix之得1.5.1 开源软件1.5.2 跨平台可移植性和开放标准1.5.3 Internet和万维网1.5.4 开源社区1.5.5 从头到脚的灵活性1.5.6 Unix Hack之趣1.5.7 Unix的经验别处也可适用1.6 Unix哲学基础1.6.1 模块原则:使用简洁的接口拼合简单的部件1.6.2 清晰原则:清晰胜于机巧1.6.3 组合原则:设计时考虑拼接组合1.6.4 分离原则:策略同机制分离,接口同引擎分离1.6.5 简洁原则:设计要简洁,复杂度能低则低 1.6.6 吝啬原则:除非确无它法,不要编写庞大的程序1.6.7 透明性原则:设计要可见,以便审查和调试1.6.8 健壮原则:健壮源于透明与简洁1.6.9 表示原则:把知识叠入数据以求逻辑质朴而健壮1.6.10 通俗原则:接口设计避免标新立异1.6.11 缄默原则:如果一个程序没什么好说的,就保持沉默1.6.12 补救原则:出现异常时,马上退出并给出足量错误信息1.6.13 经济原则:宁花机器一分,不花程序员一秒1.6.14 生成原则:避免手工hack,尽量编写程序去生成程序1.6.15 优化原则:雕琢前先得有原型,跑之前先学会走1.6.16 多样原则:决不相信所谓“不二法门”的断言1.6.17 扩展原则:设计着眼未来,未来总比预想快1.7 Unix哲学之一言以蔽之1.8 应用Unix哲学1.9 态度也要紧  第2章 历史——双流记2.1 Unix的起源及历史,1969-19952.1.1 创世纪:1969-19712.1.2 出埃及记:1971-19802.1.3 TCP/IP 和Unix内战:1980-19902.1.4 反击帝国:1991-19952.2 黑客的起源和历史:1961-19952.2.1 游戏在校园的林间:1961-19802.2.2 互联网大融合与自由软件运动:1981-19912.2.3 Linux 和实用主义者的应对:1991-19982.3 开源运动:1998年及之后 2.4 Unix的历史教训  第3章 对比:Unix哲学同其他哲学的比较3.1 操作系统的风格元素3.1.1 什么是操作系统的统一性理念3.1.2 多任务能力3.1.3 协作进程3.1.4 内部边界3.1.5 文件属性和记录结构3.1.6 二进制文件格式3.1.7 首选用户界面风格3.1.8 目标受众3.1.9 开发的门坎3.2 操作系统的比较3.2.1 VMS3.2.2 MacOS3.2.3 OS/23.2.4 Windows NT3.2.5 BeOS3.2.6 MVS3.2.7 VM/CMS3.2.8 Linux3.3 种什么籽,得什么果 Part II 第4章 模块性:保持清晰,保持简洁4.1 封装和最佳模块大小4.2 紧凑性和正交性4.2.1 紧凑性4.2.2 正交性4.2.3 SPOT原则4.2.4 紧凑性和强单一中心4.2.5 分离的价值4.3 软件是多层的4.3.1 自顶向下和自底向上4.3.2 胶合层4.3.3 实例分析:被视为薄胶合层的C语言 4.4 程序库4.4.1 实例分析:GIMP插件4.5 Unix和面向对象语言4.6 模块式编码  第5章 文本化:好协议产生好实践5.1 文本化的重要性5.1.1 实例分析:Unix口令文件格式5.1.2 实例分析:.newsrc格式5.1.3 实例分析:PNG图形文件格式5.2 数据文件元格式5.2.1 DSV 风格5.2.2 RFC 822 格式5.2.3 Cookie-Jar格式5.2.4 Record-Jar格式5.2.5 XML5.2.6 Windows INI 格式5.2.7 Unix文本文件格式的约定5.2.8 文件压缩的利弊5.3 应用协议设计5.3.1 实例分析:SMTP,一个简单的套接字协议5.3.2 实例分析:POP3,邮局协议5.3.3 实例分析:IMAP,互联网消息访问协议5.4 应用协议元格式5.4.1 经典的互联网应用元协议5.4.2 作为通用应用协议的HTTP5.4.3 BEEP:块可扩展交换协议5.4.4 XML-RPC,SOAP和Jabber  第6章 透明性:来点儿光6.1 研究实例6.1.1 实例分析:audacity6.1.2 实例分析:fetchmail的-v选项6.1.3 实例分析:GCC6.1.4 实例分析:kmail6.1.5 实例分析:SNG6.1.6 实例分析:Terminfo数据库6.1.7 实例分析:Freeciv数据文件 6.2 为透明性和可显性而设计6.2.1 透明性之禅6.2.2 为透明性和可显性而编码6.2.3 透明性和避免过度保护6.2.4 透明性和可编辑的表现形式6.2.5 透明性、故障诊断和故障恢复6.3 为可维护性而设计  第7章 多道程序设计:分离进程为独立的功能7.1 从性能调整中分离复杂度控制7.2 Unix IPC 方法的分类7.2.1 把任务转给专门程序7.2.2 管道、重定向和过滤器7.2.3 包装器7.2.4 安全性包装器和Bernstein链7.2.5 从进程7.2.6 对等进程间通信7.3 要避免的问题和方法7.3.1 废弃的Unix IPC方法7.3.2 远程过程调用7.3.3 线程——恐吓或威胁7.4 在设计层次上的进程划分  第8章 微型语言:寻找歌唱的乐符8.1 理解语言分类法8.2 应用微型语言8.2.1 案例分析:sng8.2.2 案例分析:正则表达式8.2.3 案例分析:Glade8.2.4 案例分析:m48.2.5 案例分析:XSLT8.2.6 案例分析:The Documenter's Workbench Tools8.2.7 案例分析:fetchmail的运行控制语法8.2.8 案例分析:awk8.2.9 案例分析:PostScript8.2.10 案例分析:bc和dc8.2.11 案例分析:Emacs Lisp8.2.12 案例分析:JavaScript8.3 设计微型语言8.3.1 选择正确的复杂度8.3.2 扩展和嵌入语言8.3.3 编写自定义语法8.3.4 宏-慎用8.3.5 语言还是应用协议  第9章 生成:提升规格说明的层次9.1 数据驱动编程9.1.1 实例分析:ascii9.1.2 实例分析:统计学的垃圾邮件统计9.1.3 实例分析:fetchmailconf中的元类改动9.2 专用代码的生成9.2.1 实例分析:生成ascii显示的代码9.2.2 实例分析:为列表生成HTML代码  第10章 配置:迈出正确的第一步10.1 什么应是可配置的10.2 配置在哪里10.3 运行控制文件10.3.1 实例分析:.netrc文件10.3.2 到其它操作系统的可移植性10.4 环境变量10.4.1 系统环境变量10.4.2 用户环境变量10.4.3 何时使用环境变量10.4.4 到其它操作系统的可移植性10.5 命令行选项10.5.1 从-a到-z的命令行选项10.5.2 到其它操作系统的可移植性10.6 如何挑选方法10.6.1 实例分析:fetchmail10.6.2 实例分析:XFree86服务器10.7 论打破规则  第11章 接口:Unix环境下的用户接口设计模式第12章 优化第13章 复杂度:尽可能简单,但别简单过了头 Part Ⅲ第14章 语言:C还是非C第15章 工具:开发的战术第16章 重用:论不要重新发明轮子 Part Ⅳ第17章 可移植性:软件可移植性与遵循标准第18章 文档:向网络世界阐释代码第19章 开放源码:在Unix新社区中编程第20章 未来:危机与机遇附录A 缩写词表附录B 参考文献附录C 贡献者附录D 无根的根:无名师的Unix心传Colophon索引读者评论
查看详情
12