《UNIX环境中级编程》(AdvancedProgrammingintheUNIXEnvironmentwps for linux,简称APUE),可以说是一本让任何一个领到的人,就会倒吸一口凉气的“天书”:全书内容700页、21章、135万字……乍看之下,这本书似乎就是一本由各类概念和代码示例拼凑而成的字典!
但是,真的是这样吗?知乎高手告诉你,不是书太难,而是你没读对!
来,让我们一起解锁前辈们食用这本书的正确坐姿——
01首先是态度上的打算
简而言之,就是这本书是须要持续投入精力去反复阅读的,从中可以收获的知识和经验也是可以预期的财富。但若果自己当下以及未来工作中都不可能用得到这本书涵括的内容,这么投入这么的精力只会徒增挫败感。
知乎用户的阅读心得
02在阅读之前应该做什么打算呢?
UNIX编程所使用的语言基本上都是纯粹的C语言,因而,在阅读本书之前linux site:infoq.cn,基本的C语言编程是必须把握的。这是阅读本书源码,实现、编译、执行书中的示例代码,因而进一步辅助理解本书内容的必备能力。同时,Linux、UNIX系统的一些原理、操作方法是须要了解的。
这儿面也隐含了一个前提条件,那就是你须要具备一台可以装载Linux或UNIX系统的笔记本作为学习环境,或则自行配置虚拟机进行代码调试。
知乎用户的阅读建议
03以问题驱动的形式去阅读这本书
比如,当你对一个新开源项目的底层逻辑实现感兴趣,或则你的工作中涉及到了一些系统底层相关内容的开发。带着问题去阅读,同时还可以通过一个项目可以去检验自己的阅读疗效。有问题、有反馈,这是这本书最好的学习方法。
知乎用户的亲身体验
04知乎前辈建议“对自己的学习过程进行记录”
这是一种典型的知识内蕴的学习技巧。其实,我们最好把它始终置于工作、学习时触手可及的地方,经常去翻看其中的内容,温故而知新。
知乎高手建议
05《UNIX环境中级编程》到底是一本如何的书?
总的来说,初接触这本书的同学可能下意识地觉得这是一本工具书。确实,它的内容丰富到了完全可以当成工具书用,它汇总了UNIX编程中的大多常用的插口、协议、概念等。重印时,还对内容进行了更新,删除了一些被废弃的特点,新增了一些系统迭代形成的特点。并且unix环境高级编程(第2版),假如只把这本书当成一本字典式的工具书,未免有些“大材小用”。
图灵奖得主,UNIX操作系统和C语言之父DennisRitchie曾这样介绍本书:“本书第1版连同Stevens所著的系列网路技术书籍,被公觉得优秀的、匠心颇具的名著,成为非常畅销的作品……总之,这是一本弥足珍稀的精典专著的更新版。”
DennisRitchie提及的Stevens就是本书的作者W.RichardStevens博士,他是国际著名的UNIX和网路专家,深受称赞的技术诗人,也是受人敬爱的班主任和顾问。他曾获得佛罗里达学院学士、亚利桑那学院系统工程硕士和博士学位。不仅本书第一版,他所编撰的《UNIX网路编程》《TCP/IP解读》也是网路领域的精典专著,书中的大量内容、案例都被引入世界各大著名院校教材和课案。
因为本书作者英年病逝,本书以后的重印都由他的朋友史蒂芬·A·拉戈(StephenA.Rago)完成。史蒂芬先生也是一位资深UNIX研究者,目前任NEC英国实验室储存系统研究组研究员,之前是贝尔实验室的UNIX系统V版本4的开发人员之一。著有《UNIX系统V网路编程》unix环境高级编程(第2版),也是《UNIX环境中级编程》第1版的技术审校和第2版的共同作者。
W.RichardStevens博士在写作这本书时,希望通过对UNIX底层代码的实例解析,来反映系统的设计思想。本书的重点不在于“怎么做”,而是在于“为什么”——即所有基于Linux、UNIX系统的应用开发都是那些底层实现的排列组合,理解了那些底层内容背后的逻辑,才可以清楚地认知系统的能力边界,便捷快速地定位应用的困局。
毫无疑惑,这本书是近二六年来,程序员们学习Linux、UNIX系统内核及编程插口的必看精典。书中不仅介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通讯、网络IPC、伪终端等方面的内容,还在此基础上介绍了诸多应用实例,包括怎样创建数据库函数库以及怎样与网路复印机通讯等。全书包含1万多行的C语言源码附书下载。书中通过简约、完整的程序示例阐明了400多个核心系统调用和函数,清楚地介绍使用方式和细节。
第3版的APUE与时俱进,除了支持现今领先的系统平台,反映最新技术进展和最佳实践,并且符合最新的SingleUNIXSpecification第4版(SUSv4)。在保留精典之作的真谛和技巧的基础上,深入讨论了线程和多线程编程、使用套接字插口驱动进程间通讯(IPC)等方面的内容,并给例如讯号处理和终端I/O之类的先进技术都保留了较大的篇幅。
其实一句话——无论在那个时代,熟知UNIX系统底层、能够进行高效内核开发的程序员都可以行走在食物链的顶端!大牛编撰、大神强推,想要在UNIX上更进一步的你,还有哪些理由拒绝APUE呢?这本书值得每一位Linux、UNIX爱好者、开发者反复通读。
本文作者:付聪四川学院CAD&CG国家重点实验室博士,南加洲学院访问学者,TPAMI/KDD/TKDE/EMNLP审稿人,阿里巴巴算法专家
审校:栾传龙