免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux

[书评] 《UNIX环境高级编程》第三版来袭地球! (获奖名单已公布-2014-6-27) [复制链接]

论坛徽章:
1
技术图书徽章
日期:2014-01-14 00:02:38
发表于 2014-05-28 17:02 |显示全部楼层
本帖最后由 qq948299114 于 2014-05-28 18:08 编辑

1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历);
       我手上现有第二版,我现在大三了,大一下学期开始接触linux,之后想理解一些底层实现,看了LDD,LKD,但是因为不了解系统编程的接口,看得不是很明白,后来才买了APUE  开始学习了如何利用系统调用,C库进行编程,我发现系统编程和内核编程的学习是相得益彰的,此后我学习的进度就比较快了,对底层的了解让我知其然亦知所以然。

       后来慢慢就又不知道该用这些东西如何实现一个项目了,死读书,读死书让我陷入了一个不知如何接着学习的地步,后来有人告诉我可以再看看《UNIX网络编程》实现一个Web服务 器,一个聊天程序,所以我学习了socket方面的知识,之后自己可以简单的实现一个FTP文件服务器了。

       难忘的事就是参加了某大公司的实习面试被刷了,为了准备面试,我吧APUE翻了两遍,发现知识就得经常回顾,还有第四章的习题4.8在面试前的笔试时遇到了相同思想的题目:使用
       df  /home 和du  /home所查看到的已使用的磁盘容量不同,这是为什么?
      du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。运行较慢。
      df命令使用的事statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。
      当一个文件被删除后,在文件系统目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经这个已经被删除了的文件的句柄,
      那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。
      
      

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?
       阻塞,非阻塞,多路复用的IO技术,各种IPC机制,线程
       比如我现在正开始看的Ngnix源码, 使用了事件驱动的线程模式:异步IO,多路复用,事件循环,一个小的线程池,每个处理器只有一个线程。这样Web服务器实现了高CPU利用率和  高并发,这是设计多线程服务器的最佳选择
      

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2014-05-28 17:32 |显示全部楼层
APUE比国内那些操作系统教材之类的实际效果更好,理论加上代码,还透漏着一些思想和实现原理而不只是干巴巴的理论
像透明、原子操作这些基本概念,进程、文件系统、权限之类的,都要比一般的理论书籍更具说服力

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
发表于 2014-05-28 17:45 |显示全部楼层
回复 24# timespace


    的确,APUE就是一本接地气的工具书,APUE之所以经典就是自身的定位很准。不过我还是觉得,即使是在这个程度上,还是能从APUE里面学到很多东西的。

良好的代码风格和一些不错的对特定话题的样板实践这个就不提了。关键是,APUE提供了自下向上的一种全局思考UNIX体系的机会。很少有这样的一种机会,通常大家都会先搬出来UNIX哲学,然后说怎样怎样。问题就在于,规则向来就是用来违背的,比如说UNIX都是文件,那socket是嘛?说epoll用于多fd协作,那为嘛不支持file io?等等等等。我们不止是要清楚接口的设计哲学,我们还要清楚接口的设计局限,后者才是我们在真实世界很可能会遇到的事情。

从这个角度来讲,APUE恰好是和UNIX的哲学最相近的——它整篇都在告诉你UNIX能做什么,但最终你的思考却是UNIX哲学不能做什么。

这就是为什么我觉得这是UNIX世界最好的书的原因。

论坛徽章:
0
发表于 2014-05-28 19:39 |显示全部楼层
1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历);
     上本科网络编程的时候学校采用的教材是西电的一本薄薄的书,学完之后感觉很多东西都没弄懂。后来上了研一,又选修网络编程和linux核心设计的课程,记得那个时候老师推荐的"四书五经"中Stevens的三本著作赫然排在前面:《UNIX高级环境编程》、《UNIX网络编程》、《TCP/IP详解》,网上查了下这三本确实也是linux开发人员床头必备的基本书目,所以果断买下。
快递送到手的时候确实有点蒙吧:好厚啊。那时候也不知道自己能不能看完,但是坚持了一年,没事的时候就捧着这三本书看,敲代码、一遍遍的验证书上的每一个例子,还有后面的习题,有时候直接翘掉必修课躲在宿舍里面看书(当然选修课我是不翘的)。到研二的时候基本上已经把UNIX高级环境编程、网络编程和TCP/IP详解协议部分过了一遍,基本上实验室的其它同学遇到linux编程问题的时候我还是能帮得上大家一点忙,那时候感觉蛮有成就感的。
     比较难忘的回忆,应该是在编写不同网络模型的时候,数据能够正确的从一端传到一端,而且能够做到多个的并发。还有一次老师叫其它同学写一个守护进程,同学憋了半天没弄出来,结果我记得书上有一个例子的实现(其实那时候也没看很懂),最后讨巧直接用了系统的实现守护进程的函数,那时候想想还是蛮开心的。

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?
   从APUE里面真正体会到了一切皆文件的理念。不管是对文件、设备、socket、内存,这些的操作其实没有什么区别,最终都可以抽象成对fd的操作。通过对Stevens这些书籍的学习,学会了进程、线程之间的同步、通讯,初步学会了如何根据不同的场景去选择适合自己的网络模型(当然书上讲的东西远远不够),学会如何去man,去阅读RFC文档,如果通过wireshark一步步的分析网络协议。最后又发现缺少相应的章节:比如对异步通讯的介绍(记得那时候只能对文件的异步i/o,底层对于socket的异步i/o还没有支持),如何去解决c10k\c100k的问题。只能如饥似渴的去搜论文,或者到BAT的技术贴里面找相应的资料。
   只能说阅读Stevens的书籍只是一个开始吧,最重要的是从看书---写代码----分析代码---分析协议,经历了这样的一个阶段之后,我对于linux这个庞然大物不再那么的恐惧。在linux的世界里只要你肯去学习、肯去实践终究能弄懂你曾经没搞懂的自己。那个时候非常享受那种每天进步一点点的感觉,也非常感谢通过学习Stevens的这些书籍最后帮助自己顺利拿到了bat中的两个offer.
   最后愿Stevens在天国安息,天妒英才啊!!!!

论坛徽章:
0
发表于 2014-05-28 21:02 |显示全部楼层
APUE
每看一遍都有新感觉。

论坛徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16赛季CBA联赛之广东
日期:2018-02-05 11:22:1215-16赛季CBA联赛之八一
日期:2016-07-04 12:26:1815-16赛季CBA联赛之青岛
日期:2016-06-08 11:15:4115-16赛季CBA联赛之辽宁
日期:2016-04-05 10:10:1415-16赛季CBA联赛之辽宁
日期:2016-03-11 11:11:48酉鸡
日期:2014-12-18 14:35:48狮子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16赛季CBA联赛之广夏
日期:2018-03-21 08:51:10
发表于 2014-05-28 23:34 来自手机 |显示全部楼层
刚刚从事Linux开发的时候看的第二版,实在是受益匪浅,不送也必须要买啊!

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2014-05-29 08:30 |显示全部楼层
没钱, 楼主快快寄一本给我~

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2014-05-29 08:34 |显示全部楼层
现在《Linux System Programming》和 《The Linux Programming Interface》这两本书也很不错
不过 APUE 对于初学者来说,更好入门,作者写的通俗易懂,有比较完善的应用例子
另两本适合做 API 参考书,了解 API 的细节,类似与 man 手册的易读版

论坛徽章:
208
巨蟹座
日期:2013-09-02 09:16:36卯兔
日期:2013-09-02 20:53:59酉鸡
日期:2013-09-05 21:21:45戌狗
日期:2013-10-15 20:51:17寅虎
日期:2013-10-18 21:13:16白羊座
日期:2013-10-23 21:15:19午马
日期:2013-10-25 21:22:48技术图书徽章
日期:2013-11-01 09:11:32双鱼座
日期:2013-11-01 20:29:44丑牛
日期:2013-11-01 20:40:00卯兔
日期:2013-11-11 09:21:32酉鸡
日期:2013-12-04 19:56:39
发表于 2014-05-29 09:27 |显示全部楼层
就是啊,吓哥一跳,这哥们儿从地下爬起来了

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2014-05-29 11:56 |显示全部楼层
APUE接地气,而且翻阅APUE,经常会不由自主赞叹!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP