Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5636346
  • 博文数量: 922
  • 博客积分: 19333
  • 博客等级: 上将
  • 技术积分: 11226
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 14:33
文章分类

全部博文(922)

文章存档

2023年(1)

2020年(2)

2019年(1)

2017年(1)

2016年(3)

2015年(10)

2014年(17)

2013年(49)

2012年(291)

2011年(266)

2010年(95)

2009年(54)

2008年(132)

分类: LINUX

2012-05-20 08:54:46

++++++APUE读书笔记-后序++++++
 
 这个后序,其实精确地算起来,是从2011年11月份就开始写的了,每发现一些关于它的片断,都记录下来,最后整理而成。希望这样能尽可能真实而多地记录下这段期间所处的状态,和过程。其实,前言也是这样产生的,不过前言部分先于后序完成,正如前言提过的,真正想要获取知识的读者,一定也是想在学到本书真正的内容之前,不愿浪费更多时间在无聊的事情上面的吧。所以尽量将一些可有可无的内容,作为本书最后的消遣,放在了这里的后序部分,与读者分享。^_^

一、高人
================================================
 获知这本书,是在2009年2月中旬刚刚进入公司时,遇到的一位“高人+同事+朋友”给我推荐的。开始,公司的同事们都称他作高人,我不太习惯这样,因为总觉得在公司中用这样的外号叫他,好像有点特殊含义。但是,久而久之,“高人”这个外号,广为流传,而在我看来的它所具有的特殊含义,好像也没有了。他的态度让我感觉到,无论是什么样的称呼,也只是一个代号而已,不过,直到他离职,我还是宁可直接叫他的名字,也没有用这个外号叫过他,习惯的问题吧。
 高人的名字,是什么呢?这里也不给出来了,就像前言中说过的一个原因,以及刚刚所提到的,“名字不过是个代号而已”。在这里所提到的所有与他相关的事情当中,就已经包含了他独一无二的特点了。因此,下面涉及到他的地方,我也用“高人”来称呼一下吧。^_^
 我把那个朋友称作“高人”,其实,除了技术上面,他的行为确实具有“高人”的特点。比如:有一次,下班我和另外一个朋友和他三个人在车上瞎聊,谈到他的终身大事,他说他现在还是孤身一人;又问到他如果有了孩儿会怎么样,他随口一句“叫他写代码”,把我们彻底雷倒。印象较深的是:他在2009年9月9号离职,之前什么招呼都没有打过,也一点没有离职的迹像;那天像大家往常上下班的日子一样平常,只是他从那之后再也没有来过公司;公司领导过了大半天才发现少了个人,到处找,到处问,到处联系……可是那个“高人”,平时既不用手机,也没有QQ,不用MSN,大家所有人就只知道有一个他在公司的电子邮箱,可以联系;而他人已离开了公司,这下简直就是彻底地在人间蒸发了……d^_^b。本来想在这里专门写一个“高人”的传记,但还是就此作罢,让沉默的事情永远沉默下去也许才是真正正确的选择。

二、结缘
================================================
 言归正传(忽然想起,在早上上班公交车的一个英语节目中,把这句话说做"get down to business"),从接触到此书至今时间整整三年,这里与这本书结缘的过程,希望也能为读者阅读带来一些帮助。“高人”给推荐这本书的时候,我对Linux的了解仅仅是安装,以及将它做为一个比较复杂的“dos”来看待;当时觉得这本书的内容还是过于深入,所以一直没有看;期间“高人”也陆续推荐了许多其它非常经典的学习资料(真是非常热心),而这些资料,也都不是短时间能够看完的;因此开始发觉自己有越来越多不会的东西;但是我幸运地一直相信,“高人”推荐的一定是好书;于是每次都将他所推荐的每一本资料都仔细地记录到CSDN博客上面(因为当时公司限制上网,技术网站只能上CSDN),防止以后忘记,其中就有这本APUE;经过了大约一、两个月的时间,我对Linux的了解比之前多了一些,感觉可以开始看这本APUE了,于是开始在网上寻找这本书的电子版本;找到了第一版的中文、英文两种电子版本,找到了第二版的英文版本,却没有第二版的中文版本;“高人”告诉说,这本书第二版网上没有中文版本的,想看中文的只有买实体书;建议最好还是看英文的,同时他也建议我开始可以先不看第二章涉及到的内容;我便听从“高人”的建议,先只看英文版的书并且略过第二章(许久之后,我才明白这个建议的重要,一方面煅炼了看英文文章的习惯;另外在第二遍阅读本书的时候才发现,第二章是对于一个刚开始下决心学习这本书的人是多么致命的打击)。
 第一遍其实是2009年5月末开始看的,这也是我第一次看过的完整的英文书籍,直到2009年12月才看完(那个时候“高人”早已经离职了,离职之前还送给了我好些实体书,感动ing),幸运的是我竟然能够坚持下来,看完第一遍之后,还是云里雾里的感觉。也许是因为之前说的那份感动,以及表达对高人的怀念吧(是不是有点夸张?),决定开始看第二遍,也正是从这个时候我开始认识到,原来看一本书的价值,并不是为了能够或者尽快看完一遍才存在的(就像看动漫一样^_^)。
 这里,随手将当时阅读第一遍的进度表也贴在了这里,这内容虽然有些多余,“理论上”它也应属于这个读书笔记的一部分(算做为自己留下的纪念吧^_^):
 --------------
 参考网址:
 说明:以下的内容反向追加,最新的更新内容在最上面。
 第二十一章练习没做
 20091222,p947
 第二十章练习没做
 20091208,p901
 第十九章练习没做
 20091201,p885
 20091126,p865
 第十八章练习没做
 20091112,p825
 20091111,p813
 第十七章练习没做
 20091106,p797
 20091026,p764
 第十六章练习没做
 20091022,p743
 20091020,p731
 20091019,p715
 第十五章练习没做
 20090930,p647
 20090925,p636
 20090923,p622
 第十三章练习没做
 20090916,p599
 第十二章练习没做
 20090909,p568
 20090902,p535
 第十一章练习没做
 20090831,p515
 20090828,p506
 20090827,p497
 第十章练习没做
 20090825,p479
 20090824,p467
 20090821,p458
 20090814,p433
 20090813,p427
 20090812,p417
 第九章练习没做
 20090811,p411
 20090810,p403
 20090807,p395
 20090806,p389
 20090805,p379
 第八章练习没做
 20090804,p373
 20090729,p357
 20090727,p346
 20090724,p338
 20090722,p330
 20090720,p318
 第七章练习没做
 20090716,p302
 20090715,p298
 20090714,p292
 20090713,p280
 第六章练习没做。
 20090710,p272
 20090709,p268
 20090708,p260
 20090707,p250
 第五章练习没做。
 20090706,p240
 20090702,p225
 20090626,p209
 20090626,p202
 20090625,p193
 20090621,p188
 20090618,p171
 20090617,p169
 20090616,p151
 20090612,p143
 练习没做。
 20090611,p135
 20090610,p123
 20090608,p112
 20090605,p57(下次p101开始)
 20090604,p52
 20090603,p50
 p49完
 20090602,p45
 20090601,p40
 p32
 --------------
 这里,阅读进度一般是一天大约3-5页,当时每天早上提前约45分钟上班,可见,其实每天花费时间不多,但是积累起来,还是有一定的收获的。另外,因为公司网络可能不稳定的原因,也将每次阅读章节所对应的一本相应电子版本书籍页数也列出来了。
 第二遍是看完第一遍之后不久才看的,也就是2009年12月,当时的决定是要仔细地通读,并且每章看完之后都对其关键点做一个简短的记录,便于以后阅读;这样断断续续地,到2010年6月才将第4章看完,发现太慢了,但是还是继续坚持了下来;这样的过程继续持续到2010年11月19日第8章通读并且翻译完毕,我忽然发现,随着自己对更后来章节理解的越来越少,这“简短的记录”竟然不知不觉地变成了整章的翻译;之前下定的用2010年1年的时间将这本书彻底消化的决定(有一次还和信誓旦旦地向“高人”说过这个决定^_^),好像变成了不能实现的决定;这曾经让我困扰许久,停滞不前,不过后来也渐渐地调整过来了,想要用简单的几句话,来概括那段期间让自己如何重新开始的,却无从说起——忽然发现一句很矛盾却符合当时心境的:是为了为了目的的做而这样做,而不是为了这样做的目的而做,做的时候却总是想要为了什么而做,做完了也没有为了什么而做。^_^
 第三遍之后,就不能按照严格的“第几遍”这样来计算了。大致是这样的:最初第二遍阅读并整理的时候,首先将每一章英文原版以及练习细读一遍(但是练习的实践大部分没有做到),然后回到那一章的开头,再次通读并在通读的时候一边读一边整理(后期变成了翻译);这样的方式持续到大概2011年5-6月份(大约学习到第15章)。再后来发现,虽然并不需要很快地将这本书看完,但是这样的看法确实是效率比较低,也浪费了不少时间,于是改变了方式:一边仔细地阅读,一边翻译,每次翻译的单位是一个尽可能相对独立知识点(便于自己的理解);等整理完整篇文章的时候,再将翻译好的中文草稿对照英文原稿整体略读并整理一遍,一边整理一边发布网上;在整理完的时候,大既每天一节的速度,复习整理过的文章,并且每复习完一遍就将它从发布的网上分享出来。其实在复习的时候就已经发现了不少的笔误,但是这些不会对读者的理解有影响,所以不再对这些发布的内容做更正了(也许将来会吧^_^)。

三、翻译
================================================
 一直觉得,虽然书是作者写出来的,但是读者比作者更辛苦。前言中说过这本书不是对原文的严格翻译,但是尽量不对原书中所含的知识的获取造成负面的影响。对于看到这里的读者,相信一定是意志坚定的读者,所以前言中没有给出的理由会因你而被知晓。^_^
 其实不是特意这样做的;前面几章没有仔细翻译,是因为最初就将此书作为读书笔记;后来没有补充翻译,是因为一般人们看书,都是对前几章的内容认真地看,并且前面几章的内容也相对比较简单,这样做,也许会增加读者主动性的可能;最后两章没有翻译,是因为它的内容更偏重于讲述开发一个典型案例的过程,不会对整体知识结构产生影响;各章节之间没有翻译的部分,是因为感觉这里的内容实在有些繁琐,反而会降低读者阅读的积极性(例如指明一些无关紧要内容的更详细内容可以在哪个作者的哪本书的哪个部分找到,以及不可能一一去阅读的一大堆列表形式的内容等);当然,还有一个重要的原因就是,本人精力有限,而且比较懒惰,还没有找到如何以及必须将本文中存在的这些缺陷改正的动力,如果有读者能够提供这个帮助,这里谢谢朋友了。^_^

四、资料
================================================
 前言中提到过,有许多好的、Linux/Unix下的、经典学习资料,都有各自的简称。而没有在前言中给出的原因,耐心的读者一定已经在至少读完前言之后就猜到了。答案就是:‘对于一些读者来说,这里是浪费时间的前言;但是对于另外一些读者,这里也是“消遣”的部分。所以,这个前言部分,包含了一点少量的“消遣”,但更注重对本文的说明,更多“消遣”的内容放在后序,而后序部分会在整理完的此文的最后给出。’^_^
 这里就根据我所知,给出一些:
1、ABS
 即“Advanced Bash-Scripting Guide“,也就是“高级Bash脚本编程指南”。通过这个资料,基本可以掌握Linux/Unix下面Shell(也就是命令解释器),Shell脚本,以及一些简单的Linux Shell命令的相关知识。
 英文版:
 
 中文版:
 
2、APUE
 即“Advanced Programming in the UNIX”,也就是“Unix高级环境编程”。通过这个资料,基本可以掌握所有在Unix/Linux下面编程(一般是C语言)的方方面面。
 英文版:
 
 
3、LFS
 即“Linux From Scratch“,也就是“从头构建Linux系统“。通过这个资料,基本可以掌握Linux系统的构造,以及其内部是如何工作的等信息。
 英文版:
 
 中文版:
 
4、LKD
 即“Linux Kernel Development”,也就是“Linux内核开发”。通过这个资料,可以大致掌握Linux内核内部的运行机制,是有助我们更深刻理解Linux内核的不可多得的经典资料。这里给出第3版。
 英文版:
 
5、LDD
 即“Linux Device Drivers”,也就是“Linux设备驱动程序”。通过这个资料,可以大致掌握在Linux下面开发驱动所需的基本知识。这里,是第3版,中文版翻译的一点也不好,就像机器翻译的一样。
 英文版:
 
 
 中文版:
 

五、打字
================================================
 给经常打字的朋友一个我个人的建议:好好学习五笔。整理完此文,就下了这个决定。
 此文正文中的每一个字都是用自然双拼一点点手敲上去的,双拼打字虽然比拼音简洁了,但是还是没有完全摆脱选字的烦恼,而选字真是一个浪费精力的过程;而五笔虽然开始难学,但是等习惯了的时候,真的有一种指随心落的感觉,打字越快越轻松(虽然目前还不熟练)。
 我用拼音、自然码等一些依赖拼音的输入法,也许久了,速度始终是在30-120字/分钟左右的大幅度范围内徘徊;并且发现,长期用拼音打字,使得有些字开始变的只会读,不会写了;在记录的同时,总是觉得记录的很费劲,速度也很慢,还要分心来选字,很多想要记录的内容在可以开始记录的时候,就忘记了;还有当我们换了一台机器的时候,在另外一台机器上,如果使用拼音输入法那速度会有很大的影响(比如词厍或适应的原因),而五笔输入法熟练的话基本没有影响……各种原因,不多啰嗦了,最后整理的这个后序,大多内容是我坚持用五笔输入法打出来的。总之,实践的经验:五笔除了开始难学之后,几乎是完美的。而能够熟练掌握五笔的时间,少则不到一个月,多则一年以上,根据想要使用它的决心和使用频率,因人而异。而且将学习五笔做为一个煅炼自己学习意志的考验,也算是个不错的选择吧?
 如果学习五笔一段时间,达到了能够把一些基本字打出来的程度,最好能将平时感觉折字比较困难的字积累起来,没事的时候就练习它们。比如:“被乐帮服失洗知脑凶长除费神获狗组像变越题求特半带年永藏步惯即成物制靠虚破气班领喝未末直值擦声段厉害节废拨拔追遇般博瞥背孤尴母饭蔽哦羡慕万养建美承逃惧预傻视糟剩赛盖……”这些是我在实践中记录下来的,如果有因此后序而使用五笔的读者,那我会深感欣慰和荣幸的。^_^

六、其它
================================================
 在整理此文的过程中,发现还有许多需要注意的地方,而这些并没有在前面提到,在这里做为补充,给出一些比较重要的,希望能减少打算将此书阅读不止一遍的读者的困扰。^_^
1、函数的返回值
 对于一些函数返回值的出错情况,原书的有些说明不是太详细。这些内容,其实在文中遇到的时候,尽早提醒了读者,这里集中一下说明。
 例如第3章第2节中说明open函数的时候如下:
 调用open函数可以打开或创建一个文件。其具体声明如下:
  #include
  int open(const char *pathname, int oflag, ... /* mode_t mode   */ );
  返回:如果成功返回文件描述符号,如果错误返回1。
 注意,这里出错的时候返回值为1,经过网上搜索发现,一般错误的时候,返回-1,也就是说,前面说的“如果错误返回1”中的“1”其实是布尔值,其实际值一般为-1,并且产生错误的时候,还会将错误编码记录到errno全局变量中。本书好多地方都这样说返回值,虽然简洁,但是可能会带来一些困扰所以读者应当注意,具体需要细究的时候,还需亲自查找手册上对错误情况返回值的说明
2、“实现”的含义
 在第2章中大致说明了实现就是对接口的实现,而这里的接口一般指的就是对某种标准(例如POSIX.1标准)所规定的接口。每个系统对接口的实现方式有所不同,但是呈现给上面的是同样的接口,也就是说,使用方法一样。书中许多地方所说的实现,就是指的系统实现。例如第4章第1节中的一句话:“另外,POSIX.1允许实现(这里的实现也就是系统实现,以后都这样说)将内部通信(IPC)对象(例如消息队列和信号量)做为文件。”
3、对原文的理解
 在整理这篇读书笔记的时候,己经发现了很多处地方说的有些模棱两可,不是那么容易理解。如果看书的时候,感觉到某处不易理解,一般都是两个原因:(1)此处的内容本身就不易理解。(2)写书的人本身对此处的理解就有问题。如果作者真的对所整理的内容理解的足够透彻,相信他所整理的内容是几乎不可能让读者感觉到永远难以理解的。直到现在,我也没有把这本书消化的很好,随着对本书内容的理解加深,也许以后会有机会再更新吧。希望此文能有肋于读者的学习。
4、感谢
 到这里,我不能忘记,要感谢China Unix网站以及这里的网友们,为我提供了一个非常好的学习的平台。因为无论在学校还是在公司,学习和工作中遇到的许多问题,都是在这里得到的帮助,而这篇文章的原文就是在China Unix网站上学习的。在现实的世界里我们彼此互不相识,有自己的生活,但是在这里我感觉并相信,我们共同分享了一个世界,在这个世界里,我们可能无法获取在现实世界里需要的东西,但是我们拥有在现实世界里没有的东西!^_^
5、分享
 这里,将本文的原始出处,送给看到这里的读者们,原文可在我的博客中访问。另外,本文中给出的原文链接,在完成此书的时候,已经无法直接访问,但是从链接中我们可以知道是对应于原文的哪一章节,本文开头的前言部分,也给出了下载原文的链接。如果无法访问或者其他问题,也可通过前言给出的邮箱,相互交流。
 地址1:quietheart.cublog.cn
 地址2:blog.chinaunix.net/uid/9525959.html
 地址3:quietheart.blog.chinaunix.net
 

 玛雅人说:“2012年12月21日的黑夜降临以后,12月22日的黎明永远不会到来!”(参见)无论真实与否,能够在世界末日之前完成此文,已经非常满足。^_^
 
 
作者:QuietHeart
时间:2012年5月20日
阅读(3079) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

vaqeteart2015-08-07 09:29:42

raoxiaowen:嗯,楼主做哪方面的工作...我也看了好久..才看完..

软件开发的:)

回复 | 举报

raoxiaowen2015-08-03 23:54:08

嗯,楼主做哪方面的工作...我也看了好久..才看完..