今年二月份拿到这本书的电子稿时,还不是现在这个名字。
《程序员的自我修养》这个名字听起来比原来的那个名字感觉好一些,但又让人感觉有点不知所谓。还是副标题直接:《链接、装载与库》。我更愿意接受这样的一个名字,有如那本多年前读过的英文经典:《Linkers & Loaders》。
那段时间很忙,一直到现在都是。书稿我压了很久,直到有一天,博文的朋友说,约个时间和 Fenng 、俞甲子等杭州的程序员碰头聚一下。我连夜开始读书稿。不然,见面了谈起这本书来,说不出所以然多不好意思。
书很厚,但是我看的很快。可能是因为内容很熟悉吧。大约花了一个通宵就基本读完了。写的很细,当时快速翻过去的时候,发现几处小笔误,由于我的 pdf 阅读器不能做评注,就忘记了。
我自己写过书,知道写书的艰辛。
很简单的道理,自己本以为明白的很,要写出来让人明白,是件非常不容易的事。前几年,我在 blog 上随手写的一个关于链接方面的帖子(http://blog.codingnow.com/2006/11/windows_unix_dynamic_library.html),就引起了无穷无尽的争议。Blog 尚可随意为之,可出版成白纸黑字,必然战战兢兢。一旦写错点什么,很容易误导许多人。见过俞甲子以后,我相信他和我一样,是个从内心对读者负责的人。
关于链接,装载等问题。是操作系统中很基础很重要的一个部分。从特定的操作系统的解决方案:分析 Windows 的 PE 或是 Linux 的 ELF 的结构,可以理解操作系统是如何让一段代码工作起来、怎样让不同的二进制模块协同工作的。这是理解整个系统的一个起点。
一方面,我们理解系统如何去做,是为了悟到为何这样去设计。了解了为什么,反过来更能理解怎样去做。我为我的系统做过一段时间的 loader ,为了隔离操作系统的差异,来解决二进制的代码复用。不少朋友问我怎样做到的。其实答案很简单:自己来写 loader 。理解操作系统怎样干的后,这并不是难事。至于需不需要越俎代庖替代操作系统去做,那就需要对这方面更多的理解了。这绝不是简单的是否应该重新发明轮子的问题。
好吧,说起重造轮子的话题,怕又引起无穷尽的争议。但有一点应该是有比较少的争议的。你可以不自己造轮子,但应该了解轮子的构造,而且越详尽越好。这是程序员的自我修养吧。
另一方面,我们对自己每天用的系统多一些了解,那是百利而无一害。即使从最实用主义的角度看,碰到一些表面上看起来无可适从的 bug ,也能分析清楚。比如,我前段时间碰到的那个诡异的 bug(http://blog.codingnow.com/2009/03/libstdcpp_dlclose_crash.html) 。
----
前几天收到博文寄过来的书,本答应周老师写一篇书评,一直没能动笔。端午节休假,终于把这笔欠帐还上了。:) 这本书是本好书,我会放在书架上,相信总有需要的时候拿出来查阅。
原文: http://blog.codingnow.com/2009/06/link_loader.html
莫等用时再读书
对“莫等用时再读书”的回应
《程序员的自我修养》热门书评
-
平中见奇:程序员提升自己的参考方法
83有用 2无用 Stanley 2009-06-27
老实说,在2002年还在上大学的时候,我把技术类书籍分成了三六九等,从值得看到最不值得看到顺序如下:1. 在美国工作的中国人使用中文编写的书籍:因为作者的眼界相比国内更加宽广,而字里行间流淌着中国人的思维方式,没有理解文化表达方面的障碍,行文相对活泼2. 在美国工作的人使用英文编写的书籍3. 在中国...
-
给每个新手的修养之道
70有用 7无用 你们都是坏人 2009-11-28
如果你是高手,Linux Hacker或者geek,请绕行但如果你是新手如果你曾好奇过windows系统目录下和软件目录下大堆大堆的dll文件是什么如果你曾疑惑过我写下的代码经历的怎样的历程最后怎样到达了内存,编译器每天用,它到底做了什么如果你已经学习或接触了C,汇编,计算机结构,但还是没办法把三者...
-
推荐linux c/c++程序员一读
61有用 1无用 zoufeiyy 2009-05-20
关于《程序员的自我修养》这本书,最初是在和博文的周筠老师MSN上谈起,当时听周老师提及这本书是一本关于链接和装载等系统软件知识的书籍,当时就很感兴趣,因为这方面的书在国内真的见得很少,一方面这种书似乎跟做应用开发的有距离,毕竟如果只是用用C#、Java,似乎没什么必要关心编译器、链接器在做些什么,特...
-
莫等用时再读书
36有用 3无用 云风 2009-06-01
今年二月份拿到这本书的电子稿时,还不是现在这个名字。《程序员的自我修养》这个名字听起来比原来的那个名字感觉好一些,但又让人感觉有点不知所谓。还是副标题直接:《链接、装载与库》。我更愿意接受这样的一个名字,有如那本多年前读过的英文经典:《Linkers & Loaders》。那段时间很忙,一直...
-
something after read
18有用 2无用 veryzhang 2009-11-17
今天花了一天的时间从头到尾翻了一遍, 跳过了那些有X86汇编的部分, 和分析C++ CRT中解构析构的部分, 其他的都读了一遍.读完之后唯一的感觉就是: 此书非读不可, 而且要经常读.毫无疑问作者对于链接, 装载和库这三个方面是有深刻的认识的, 于深度和广度都无可挑剔, 而且组织文字的能力也属上乘,...
书名: 程序员的自我修养
作者:
出版社: 电子工业出版社
副标题: 链接、装载与库
出版年: 2009-4
页数: 459
定价: 65.00
装帧: 平装16开
ISBN: 9787121085116