« lua 中判断字符串前缀 | 返回首页 | tcc 的一个 bug »

《链接、装载与库》书评

今年二月份拿到这本书的电子稿时,还不是现在这个名字。

《程序员的自我修养》这个名字听起来比原来的那个名字感觉好一些,但又让人感觉有点不知所谓。还是副标题直接:《链接、装载与库》。我更愿意接受这样的一个名字,有如那本多年前读过的英文经典:《Linkers & Loaders》。

那段时间很忙,一直到现在都是。书稿我压了很久,直到有一天,博文的朋友说,约个时间和 Fenng 、俞甲子等杭州的程序员碰头聚一下。我连夜开始读书稿。不然,见面了谈起这本书来,说不出所以然多不好意思。

书很厚,但是我看的很快。可能是因为内容很熟悉吧。大约花了一个通宵就基本读完了。写的很细,当时快速翻过去的时候,发现几处小笔误,由于我的 pdf 阅读器不能做评注,就忘记了。

我自己写过书,知道写书的艰辛。

很简单的道理,自己本以为明白的很,要写出来让人明白,是件非常不容易的事。前几年,我在 blog 上随手写的一个关于链接方面的帖子,就引起了无穷无尽的争议。Blog 尚可随意为之,可出版成白纸黑字,必然战战兢兢。一旦写错点什么,很容易误导许多人。见过俞甲子以后,我相信他和我一样,是个从内心对读者负责的人。

关于链接,装载等问题。是操作系统中很基础很重要的一个部分。从特定的操作系统的解决方案:分析 Windows 的 PE 或是 Linux 的 ELF 的结构,可以理解操作系统是如何让一段代码工作起来、怎样让不同的二进制模块协同工作的。这是理解整个系统的一个起点。

一方面,我们理解系统如何去做,是为了悟到为何这样去设计。了解了为什么,反过来更能理解怎样去做。我为我的系统做过一段时间的 loader ,为了隔离操作系统的差异,来解决二进制的代码复用。不少朋友问我怎样做到的。其实答案很简单:自己来写 loader 。理解操作系统怎样干的后,这并不是难事。至于需不需要越俎代庖替代操作系统去做,那就需要对这方面更多的理解了。这绝不是简单的是否应该重新发明轮子的问题。

好吧,说起重造轮子的话题,怕又引起无穷尽的争议。但有一点应该是有比较少的争议的。你可以不自己造轮子,但应该了解轮子的构造,而且越详尽越好。这是程序员的自我修养吧。

另一方面,我们对自己每天用的系统多一些了解,那是百利而无一害。即使从最实用主义的角度看,碰到一些表面上看起来无可适从的 bug ,也能分析清楚。比如,我前段时间碰到的那个诡异的 bug


前几天收到博文寄过来的书,本答应周老师写一篇书评,一直没能动笔。端午节休假,终于把这笔欠帐还上了。:) 这本书是本好书,我会放在书架上,相信总有需要的时候拿出来查阅。

Comments

非常不错的书,也经常来云风这里逛。 我已经看了一半了,汇编不懂,看的模模糊糊。 链接状态和库确实是现代操作系统的精髓。
本来还在犹豫要不要买一本,看来可以直接入手了~
接触这本书的是因为一个同事买了这本书,然后另一个同事在办公室朗读这本书中的一些内容,我顿时兴致盎然,就拿过来看了看,果然是我现在最想了解的知识!果断先下载个电子版的书先阅读!
去看看这本书
书不错,名字有点无厘头,但是内容比较通俗,看起来不费脑子,而且跟linker&loader一样货真价值,国内很少能出这么有质量的书,赞一个~
这么说,我也要弄一本看看,虽然现在自己创业需要钱,呵呵,对编程的热爱就是无法抗拒= =
是好书,没读云风的这blog之前上两周在书店一眼看见就买下了。 不过书名不对我胃口,副标题的原因才入我眼的,我不觉得整天谈“修养”有什么用,其实书的内容很实在。
不知道现在有没有得卖了 , 听上去挺不错
好书啊,有空去买本看看
非常的好,去找这本书来看看先
我怎么感觉只有最后一句话才是书评
《演员的自我修养》还告诉我们,无论你重要与否,你都要自重,我们可能终生要跑龙套,但是我们绝不是什么“死”跑龙套的,我们真的有必要随时提醒自己“其实我,是个演员。”
感觉内容和"编程卓越之道.第二卷"有些重复,不过还是支持.
我也希望能够通宵看书 只有晚上最安静
《程序员的自我修养》挺不错,《链接、装载与库》第一次听,呵呵。
请参考《演员的自我修养》以及“其实,我是个演员”----喜剧之王
云风真的是通宵看书吗?
早就看到这本儿书了,一直在收藏夹收着,没买的原因是自己手头儿还有好几本儿书没看完,想看完了再看看这本儿书是否需要看,看了试读章节感觉不错,手头儿没有书可以在chinapub上看看他的试读章节,应该会喜欢。呵呵。
不久前也略读了一遍,挺不错的: http://blog.linjian.org/articles/bv-link-load-lib/
不知道为什么“俞甲子”这几个字眼令我想起wangdali
好啊,有机会找这本书来看看

Post a comment

非这个主题相关的留言请到:留言本