免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
2
水瓶座
日期:2014-06-12 08:22:39IT运维版块每日发帖之星
日期:2015-08-05 06:20:00
发表于 2014-06-06 17:59 |显示全部楼层
回复 1# send_linux


  1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历):

     在大学的时候网络编程的时候学校学过,学完之后感觉很多东西都没弄懂。但是坚持了一年,每天不断敲代码、一遍遍的验证书上的每一个例子,自己也在网上下载了一些这方面的PDF书籍研究。到大四的时候基本上已经把UNIX高级环境编程、网络编程和TCP/IP详解协议部分过了一遍,。这个过程是实话挺辛苦的,但是每天敲代码达到自己的最终需求,心里还是蛮开心的。。
     
2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?
      从APUE里面真正体会到了一切皆文件的理念。不管是对文件、设备、socket、内存,这些的操作其实没有什么区别,最终都可以抽象成对fd的操作。
学一个操作系统最重要的是从看书---写代码----分析代码---分析协议,经历了这样的一个阶段之后,我学linux这个操作系统不再那么的恐惧,也简单了很多。。在linux的世界里只要你肯去学习、肯去实践终究能弄懂你曾经没搞懂的自己。那个时候非常享受那种每天进步一点点的感觉。。

论坛徽章:
1
摩羯座
日期:2013-11-29 18:02:31
发表于 2014-06-07 18:39 |显示全部楼层
1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历):
提到《UNIX环境高级编程》,思绪回到07年,当时还在浙大上研究生,研二,电子仪器专业,实验室导师要求我做嵌入式Linux下的一个MiniGUI,现在看来,是个很小的项目,但是当时真心不理解,Linux,居然还是嵌入式的,所以学习Linux是当务之急。在电脑上用三个光盘安装了Redhad6,就开始了Linux之程。水平很菜,连最简单的函数调用参数入栈都不知道,正是因为如此,项目一再受挫,受到老师和同学的BS,平时在实验室时,根本不把我放在眼里,自己也很郁闷。在图书錧里看到环境编程这本书,记得书比较厚,至少有六七百页吧,只是听别人介绍说,此书不错,就抱着试试看的心理读了一下,完全可以想象一个连函数调用堆栈都不知道菜鸟,读此书会是什么感觉,当时能读下去,完全是冲着书的大名去的。不可能一页一页地看了,只能是找能看懂的才去读。当时,水平太不行了,此书根本看了很少一部分,但是作用很大,不得不说,这本书给了程序的启蒙,就是从本书才让我对UNIX及OS基本常识有所理解,让我认识到,写程序不只是语言的事,更是操作系统的事,书中提到语言不过是OS的外壳,是操作OS的手段。当时给我印象最深的有如下几点,以至于现在还记得很清楚:
A:main函数扫完毕后还有函数执行
        以前在学校学C时,老师不停地强调main函数是程序的入口,是第一个被调用函数,main执行完毕,程序也就结束了。当读到Unix进程这一章节时,其中明确提到,还有个exit函数的存在,另外让我觉得神奇的是不只是有exit(),居然还有_exit()函数,只是多个_而已。另外,居然还有atexit函数提供了让用户自己注册退出函数,说实话,看到这里,看懂了,也明白了,对程序的世界观也彻底改变了,想不到一个小小的main函数,平时不怎么看上眼,居然有这么深的知识。不过,有个问题现在还不明白:为什么atexit函数提供的回调函数是void fun(void),为什么不传入个参数呢?
B:文件
     当初学C时,对文件一章根本无法理解,对fopen的打开模式,什么,RW,r,R+,一头雾水。看到高级编程中文件这一章节,居然提到还有个文件描述符,这是第一次接触描述符的概念,觉得很神奇,想不到文件后面有这么多名堂。另外,文件描述符中有文件读写的位置,真有点意想不到。

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?
虽然,现在做嵌入式开发,系统级的东西接触的不多,写得最多的是驱动程序,但是高级编程中提到UNIX的编程思想是受益无穷的,UNIX的OS实现方式是永不过时的,它是系统设计的根本指导原则,工作6年来,有个感觉:系统设计最复杂的不过是OS,我们完全可以按照OS的标准去设计任何一个系统,换句话说,任何一个系统都可以当作OS的变体,OS提供的一些标配组合,如进程,线程,信号,进程间通信,回调等机制,完成可以套用实现你自己的系统。
另外,从技术角度来说,高级编程这本书也是极好的,不只是告诉你是什么,更重要地是告诉你为什么这样。

论坛徽章:
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-06-08 14:29 |显示全部楼层
回复 72# CUTianrui007


    欸欸欸?大写也是可以的吗??我以前一直小写的说= =

论坛徽章:
35
双子座
日期:2014-05-09 17:56:38程序设计版块每日发帖之星
日期:2015-08-30 06:20:00程序设计版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-27 11:07:07程序设计版块每日发帖之星
日期:2016-01-12 06:20:0015-16赛季CBA联赛之北京
日期:2016-01-15 01:01:2115-16赛季CBA联赛之浙江
日期:2016-01-15 22:38:20程序设计版块每日发帖之星
日期:2016-01-18 06:20:00每日论坛发贴之星
日期:2016-01-18 06:20:0015-16赛季CBA联赛之北控
日期:2016-01-30 21:43:01程序设计版块每日发帖之星
日期:2016-02-08 06:20:0015-16赛季CBA联赛之山西
日期:2016-02-20 10:54:41
发表于 2014-06-08 14:57 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
摩羯座
日期:2013-11-29 18:02:31
发表于 2014-06-09 09:47 |显示全部楼层
回复 73# starwing83


    用Word编辑的,然后直接粘贴的,当然要小写的了。

论坛徽章:
1
技术图书徽章
日期:2014-03-06 15:29:50
发表于 2014-06-09 13:14 |显示全部楼层
1、请叙述一下您与《UNIX环境高级编程》以往版本的初识、学习经历或其他难忘的故事和回忆(必须是自身经历);

好几年前刚刚接触Linux的项目,感觉自己有很大的知识空白,于是在网上查询各种学习经验,头一次看到"APUE"这样的字母组合,觉得很新奇,看到很多人对它的推崇,于是买了一本英文版的,每天下班就抱着看(那时候还没有女朋友。。。),从此踏入了Linux世界,一发而不可收拾。

以前上学的时候看过英文的论文,还有一些英文的资料,感觉大部分都挺拗口的,不太好理解。而看APUE的时候,虽然我的Linux基础很少,但是读起来一点都不费劲。头一次发现英文书居然可以写的这么通俗易懂,极其浅显的句子就把道理说的很明白。后来看CSAPP的时候,作者在前言里写道“Finally, we would like to acknowledge the great technical writers Brian Kernighan and the late W. Richard Stevens, for showing us that technical books can be beautiful.” 看来大家都有如此深刻的体会。(CSAPP这本书也是写得非常浅显易懂,继承了APUE那种婉婉道来的风格。相反,TCP/IP Illustrated Volume1的第二版就改动了很多,从前几章看,已经失去了Stevens经典系列所具有的那种语言风格,带有浓重的学究气,后面的章节还没看,不好做评论)

APUE之后,我意识到学习经典著作的重要性。TCPL,SICP,CSAPP,UNP等等(这些就好像我们行业里的黑话一样,还有大骆驼,小骆驼,龙书,虎书。。。),在读这些书的时候,意识到我们大学教育的失败,同时为自己没有尽早接触这些知识宝库而感到遗憾。但是庆幸的是我已经意识到了。可能还有很多人还不知道有这些经典读物,还在看着国内各种粗制滥造的大学教材。当然现在的网络比我当年读书的时候发达多了,我相信会有越来越多的人接触到这些杰出的著作的,CU的这种活动也会起到很好的推动作用。

2、作为程序开发人员,从APUE里的哪些思想对您来说帮助很大?

第一是作者认真的态度,每个函数都详细介绍了各个系统间的差异。在TCP/IP协议详解中也是这样,详细描述不同操作系统间的行为差异。这种认真的态度是非常值得学习的。

其次是深入底层实现,详细描述实际问题的本质。印象最深刻的就是文件IO那一章的习题里提到了shell里重定向操作符,将shell应用和内核函数结合起来,引导我们思考问题的根源。在APUE(以及Stevens的其他书中)这样的例子很常见。

第三个,是作者浅入深出的写作风格。以前导师曾介绍过MIT的经典教材《信号与系统》,说那本书是浅入深出,在看APUE的时候,真是切身体会到所谓浅入深出的意思了。每个开发人员都不可避免的要写文档,但是很多文档往往写的让人看不懂。

最后是作者所介绍的操作系统的设计思路。一切皆文件,进程、线程,信号,等等。也就是一个系统应该如何设计,如何管理。其实在设计具体项目的架构和接口的时候,也可以参考UNIX的接口进行设计。软件系统应该如何设置数据输入和输出,如何设计进程和线程的分配,如何设计进程/线程间的通信。我在项目设计中有意或者无意的参考了很多这些设计思想,随着经验的增加,愈发体会到这种设计思想的益处,对于软件架构的可维护性和可扩展性都有很大的帮助。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2014-06-09 21:05 |显示全部楼层
必须要支持,经典中的经典啊

论坛徽章:
0
发表于 2014-06-10 19:48 来自手机 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2014-06-13 14:53 |显示全部楼层
以前在课堂上学习过《Unix初级教程(第四版)》,对于Unix有了一点了解。由于以后使用的需要,要对它进行比较深入的学习,为此需要阅读不少的书籍,这本《Unix环境高级编程》便在此列。希望能通过这本书了解Linux的API,并在这个过程中了解Linux系统的机制。书中内容丰富,有以前了解的,更多的是不了解的。作为第一次阅读,目的不在于事无巨细,过目不忘,而是有个大体了解,从点到面地熟悉这个系统。为了构建整体的印象,对已知的和刚刚了解的都有所涉及

论坛徽章:
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-06-24 18:19 |显示全部楼层
诶?这帖子怎么不见了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP