两天前从同学的书桌上无意间拾起这本书,翻看了前几页,即被他追根溯源的精彩描述吸引,花了两整天的时间,通读完这本书。忍不住写篇读书笔记,以为备忘,如果对其他的朋友有所助益,秉承这开源的精神,就最好了~
这本书正是我一直想要的学习资料。它并不是简单的讲述了某些技术的机理(这是大多数的书籍做的,读者会时常莫名其妙的接收了几个新的机制,而不知道,为什么这样),更是将龙去脉依依列出,让人深入理解其本质。对于刚入门的新手们,这应该算不可多得的好书了。
在读这本书以前,我对 文本中的程序代码 和 它在计算机中实际运行的过程 的关系知之甚少。对于计算机的发展,也是糊里糊涂。之前对编译原理、汇编等知识仅有若隐若现的了解,读了这本书,才感受到这些基础知识对于提高编程效率的重要作用。排除自我膨胀的因素,这本书确实让我这只菜鸟对程序、对计算机的认识上升了一个台阶。
正如作者所言,这本书的内容,本身不是那些最新潮的东西。它是实打实的基础,是所有程序运行的本质机理,掌握了它们,对于以后的编程的思路会有帮助。就好比习武中的内功吧。
在此,向写书的三位致敬,其中两位还是浙大的学长^^. 下面,简略的列出其中的内容以及我的认识和感悟。
全书分为四大部分,循序渐进的展开了linux及windows下程序的链接、装载和系统库的简单机理的介绍。
第一部分为预备章节,综述了操作系统的一些基础知识。比如 CPU + 内存 + IO 的三大核心,比如 程序运行时的内存管理的分页、分段,以及多线程的安全问题等。那些技术实现并不是冷冰冰的技术点,作者已经用生动的文字,将他们串成了一串。如果你自觉对操作系统的认识零散,通览此部分,对于只是体系的疏导有很好的作用。
第二部分 介绍静态链接。 先对编译器的处理过程(预编译、编译、汇编、链接)做了简明的介绍,之后详细介绍了 我们C编程时,常见的obj目标文件(编译后未链接的文件)的文件结构(ELF),实现机理。以此为铺垫,阐释了 静态链接的实现方法。链接器的历史是长于编译器的。举例来说,即使是最简单的一个hello world在屏幕上的显示都是要链接到很多文件的。
第三部分 是装载与动态链接的介绍,并介绍了linux的共享库的组织以及windows下的dll机制。C和C++作为linux和windows实现的基础,他们是如何发挥其作用的,这里都有描述。(不过可能由于基础不扎实,对于其中动态链接的PIC部分,全局变量的处理问题,我看了好几遍都没太懂的说><...实践最重要,以后自己动手研究)
第四部分 是程序对内存的使用,运行时库的初步介绍,系统调用与API 和 一个简单运行时库 的实现实践。模块内容相对分散,看过内存部分的介绍后,我对程序的运行过程才有了个真正整体的概念。
分享到:
相关推荐
程序员的自我修养—链接、装载与库.pdf
程序员的自我修养链接、装载与库.pptx
1、介绍程序的入口函数 2、介绍C标准库、变长函数、长跳转 3、C++全局构造与析构实现
《程序员的自我修养--链接、装载与库》 阅读笔记,主要包括各章的内容摘要。
如何做一个有素养的程序员如何做一个有素养的程序员如何做一个有素养的程序员如何做一个有素养的程序员如何做一个有素养的程序员如何做一个有素养的程序员如何做一个有素养的程序员如何做一个有素养的程序员如何做一...
《程序员的自我修养:链接、装载与库》相信读者对glibc的入口函数已经有了一些了解。但可惜的是glibc的入口函数书写得不是非常直观。事实上,我们也没从glibc的入口函数了解到多少内容。为了从另一面看世界,我们再...
个人读书笔记,用xmind思维导图画的,资源有png图片格式 如果喜欢这本书一定要自己读一下
[12]优秀程序员之路——C++开发经验及技巧大汇总.zip上位机开发VC串口学习资料源码下载[12]优秀程序员之路——C++开发经验及技巧大汇总.zip上位机开发VC串口学习资料源码下载[12]优秀程序员之路——C++开发经验及...
笔记扫描版本
程序员的自我修养 学习笔记,好东西要懂得分享。
软考指南:程序员数据结构笔记 软考指南:程序员数据结构笔记
C#从入门到精通的王牌九: 优秀程序员之路——C# 开发经验及技巧大汇总
《我编程,我快乐:程序员职业规划之道》讲述程序员的职业规划之道——如何规划职业生涯,如何按照自己选择的方向发展职业,如何沿着你构建和销售自己产品的路径一步步地实现自己的职业目标。全书共5章,涉及如何挑选...
程序员面试宝典——经典 易于理解 分析透彻 很经典
好的代码风格对于优秀的程序员是必须的。 免费共享 程序员之路——关于代码风格。
程序员面试宝典——自己整理 整理了很久,希望大家喜欢
程序员之路——一个老程序员对刚上大学的学弟学妹的忠告.