在看这本书之前,看了《深入理解计算机系统》和《汇编语言程序设计》(Richard Blum)。其中的《深入理解计算机系统》关于动态加载的部分不够深入,出于要搞清动态加载的细节而翻开此书。首先,书的排版行距让阅读很是享受。书中关于动态链接、加载部分非常精彩,在阅读过程中,我把一个简单程序的源代码、相应的汇编文件、反汇编文件、目标文件的二进制形式、ELF信息都打印出来,边看书边对着相关文件分析,最终基本能搞明白链接加载等相关过程的原理。
作者的底层功底相当深厚,行文和原理分析都显得十分“有料”,没有杂凑的成本,所探讨的东西不只是原理性的,也是很有工程意义的。看得出来,作者在自己消化完《Linker and Loader》之后研究了不少的内核源码,并且有丰富的相关实践经历,更为重要的是,作者用符合国内程序员的思维方式把这些底层东西呈观出来。同时,此书也让大家回顾一下《编译原理》、《组成原理》、《操作系统》等课程的知识。
不足之处就是文中有几处由于粗心而导致的逻辑错误,并且排版方面也有些错误。
建议是,内容的组织方面不是很好,我更倾向从源代码到详细的二进制文件进行分析,也就是需要对实在的二进制文件(不仅仅是readelf信息)进行相应的静态分析和动态分析(加载、执行),让读者更多深入理解可执行文件。
为装载而读
《程序员的自我修养》热门书评
-
平中见奇:程序员提升自己的参考方法
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