程序员的自我修养-链接、装载与库(潘爱民著)pdf 清晰扫描版
分享到:
程序员的自我修养-链接、装载与库2009年4月由电子工业出版社出版发行,是一本非常经典的优秀程序员养成手册。小编推荐的这本程序员的自我修养-链接、装载与库总共四个部分,其中分为13个章节,这本书主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。每个技术专题都配备了大量图、表和代码实例,力求将复杂的机制以简洁的形式表达出来。本书最后还提供了一个小巧且跨平台的C/C++运行库MiniCRT,综合展示了与运行库相关的各种技术。程序员的自我修养-链接、装载与库对装载、链接和库进行了深入浅出的剖析,并且辅以大量的例子和图表,可以作为计算机软件专业和其他相关专业大学本科高年级学生深入学习系统软件的参考书。同时,还可作为各行业从事软件开发的工程师、研究人员以及其他对系统软件实现机制和技术感兴趣者的自学教材。
小编温馨提醒:这本书的内容比较多,要注意劳逸结合哦
第1章 温故而知新
1.1 从HELLO WORLD 说起
1.2 万变不离其宗
1.3 站得高,望得远
1.4 操作系统做什么
1.5 内存不够怎么办
1.6 众人拾柴火焰高
1.7 本章小结
第2部分 静态链接
第2章 编译和链接
2.1 被隐藏了的过程
2.2 编译器做了什么
2.3 链接器年龄比编译器长
2.4 模块拼装——静态链接
2.5 本章小结
第3章 目标文件里有什么
3.1 目标文件的格式
3.2 目标文件是什么样的
3.3 挖掘SIMPLESECTION.O
3.4 ELF 文件结构描述
3.5 链接的接口——符号
3.6 调试信息
3.7 本章小结
第4章 静态链接
4.1 空间与地址分配
4.2 符号解析与重定位
4.3 COMMON 块
4.4 C++相关问题
4.5 静态库链接
4.6 链接过程控制
4.7 BFD 库
4.8 本章小结
第5章 WINDOWS PE/COFF
5.1 WINDOWS 的二进制文件格式PE/COFF 134
5.2 PE 的前身——COFF
5.3 链接指示信息
5.4 调试信息
5.5 大家都有符号表
5.6 WINDOWS 下的ELF——PE
5.7 本章小结
第3部分 装载与动态链接
第6章 可执行文件的装载与进程
6.1 进程虚拟地址空间
6.2 装载的方式
6.3 从操作系统角度看可执行文件的装载
6.4 进程虚存空间分布
6.5 LINUX 内核装载ELF 过程简介
6.6 WINDOWS PE 的装载
6.7 本章小结
第7章 动态链接
7.1 为什么要动态链接
7.2 简单的动态链接例子
7.3 地址无关代码
7.4 延迟绑定(PLT)
7.5 动态链接相关结构
7.6 动态链接的步骤和实现
7.7 显式运行时链接
7.8 本章小结
第8章 LINUX 共享库的组织
8.1 共享库版本
8.2 符号版本
8.3 共享库系统路径
8.4 共享库查找过程
8.5 环境变量
8.6 共享库的创建和安装
8.7 本章小结
第9章 WINDOWS 下的动态链接
9.1 DLL 简介
9.2 符号导出导入表
9.3 DLL 优化
9.4 C++与动态链接
9.5 DLL HELL
9.6 本章小结
第4部分 库与运行库
第10章 内存
10.1 程序的内存布局
10.2 栈与调用惯例
10.3 堆与内存管理
10.4 本章小结
第11章 运行库
11.1 入口函数和程序初始化
11.2 C/C++运行库
11.3 运行库与多线程
11.4 C++全局构造与析构
11.5 FREAD 实现
11.6 本章小结
第12章 系统调用与API
12.1 系统调用介绍
12.2 系统调用原理
12.3 WINDOWS API
12.4 本章小结
第13章 运行库实现
13.1 C 语言运行库
13.2 如何使用MINI CRT
13.3 C++运行库实现
13.4 如何使用MINI CRT++
13.5 本章小结
附录A
A.1 字节序(BYTE ORDER)
A.2 ELF 常见段
A.3 常用开发工具命令行参考
索引
第1部分 简介
第1章 温故而知新
1.2 万变不离其宗
计算机是个非常广泛的概念,大到占用数层楼的用于科学计算的超级计算机,小到手机上的嵌入式芯片都可以被称为计算机。虽然它们的外形、结构和性能都千差万别,但至少它们都有“计算”这个概念。在本书里面,我们将计算机的范围限定在最为流行、使用最广泛的PC机,更具体地讲是采用兼容x86指令集的32位CPU的个人计算机。原因很简单:因为笔者手上目前只有这种类型的计算机可供操作和实验,不过相信90%以上的读者也是,所以在这一点上我们很快能达成共识。其实选择具体哪种平台并不是最关键的,虽然各种平台的软硬件差别很多,但是本质上它们的基本概念和工作原理都是一样的,只要我们能够掌握一种平台上的技术,那么其他的平台都是大同小异的,很轻松地可以举一反三。所以我们相信,只有你能够深刻地理解x86平台下的系统软件背后的机理,当有一天你需要在MIPS指令集的嵌入式平台上做开发,或者需要为64位的Windows或tinux开发应用程序的时候,你很快就能找到它们之间的相通之处。
撇开计算机硬件中纷繁复杂的各种设备、芯片及外围接口等,站在软件开发者的角度看,我们只须抓住硬件的几个关键部件。对于系统程序开发者来说,计算机多如牛毛的硬件设备中,有三个部件最为关键,它们分别是中央处理器CPU、内存和I/O控制芯片,这三个部件几乎就是计算机的核心了;对于普通应用程序开发者来说,他们似乎除了要关心CPU以外,其他的硬件细节基本不用关心,对于一些高级平台的开发者来说(如Java、.NET或脚本语言开发者),连CPU都不需要关心,因为这些平台为它们提供了一个通用的抽象的计算机,他们只要关心这个象的计算机就可以了。
……
禁用于商业用途!如果您喜欢《程序员的自我修养-链接、装载与库》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
小编温馨提醒:这本书的内容比较多,要注意劳逸结合哦
目录:
第1部分 简介第1章 温故而知新
1.1 从HELLO WORLD 说起
1.2 万变不离其宗
1.3 站得高,望得远
1.4 操作系统做什么
1.5 内存不够怎么办
1.6 众人拾柴火焰高
1.7 本章小结
第2部分 静态链接
第2章 编译和链接
2.1 被隐藏了的过程
2.2 编译器做了什么
2.3 链接器年龄比编译器长
2.4 模块拼装——静态链接
2.5 本章小结
第3章 目标文件里有什么
3.1 目标文件的格式
3.2 目标文件是什么样的
3.3 挖掘SIMPLESECTION.O
3.4 ELF 文件结构描述
3.5 链接的接口——符号
3.6 调试信息
3.7 本章小结
第4章 静态链接
4.1 空间与地址分配
4.2 符号解析与重定位
4.3 COMMON 块
4.4 C++相关问题
4.5 静态库链接
4.6 链接过程控制
4.7 BFD 库
4.8 本章小结
第5章 WINDOWS PE/COFF
5.1 WINDOWS 的二进制文件格式PE/COFF 134
5.2 PE 的前身——COFF
5.3 链接指示信息
5.4 调试信息
5.5 大家都有符号表
5.6 WINDOWS 下的ELF——PE
5.7 本章小结
第3部分 装载与动态链接
第6章 可执行文件的装载与进程
6.1 进程虚拟地址空间
6.2 装载的方式
6.3 从操作系统角度看可执行文件的装载
6.4 进程虚存空间分布
6.5 LINUX 内核装载ELF 过程简介
6.6 WINDOWS PE 的装载
6.7 本章小结
第7章 动态链接
7.1 为什么要动态链接
7.2 简单的动态链接例子
7.3 地址无关代码
7.4 延迟绑定(PLT)
7.5 动态链接相关结构
7.6 动态链接的步骤和实现
7.7 显式运行时链接
7.8 本章小结
第8章 LINUX 共享库的组织
8.1 共享库版本
8.2 符号版本
8.3 共享库系统路径
8.4 共享库查找过程
8.5 环境变量
8.6 共享库的创建和安装
8.7 本章小结
第9章 WINDOWS 下的动态链接
9.1 DLL 简介
9.2 符号导出导入表
9.3 DLL 优化
9.4 C++与动态链接
9.5 DLL HELL
9.6 本章小结
第4部分 库与运行库
第10章 内存
10.1 程序的内存布局
10.2 栈与调用惯例
10.3 堆与内存管理
10.4 本章小结
第11章 运行库
11.1 入口函数和程序初始化
11.2 C/C++运行库
11.3 运行库与多线程
11.4 C++全局构造与析构
11.5 FREAD 实现
11.6 本章小结
第12章 系统调用与API
12.1 系统调用介绍
12.2 系统调用原理
12.3 WINDOWS API
12.4 本章小结
第13章 运行库实现
13.1 C 语言运行库
13.2 如何使用MINI CRT
13.3 C++运行库实现
13.4 如何使用MINI CRT++
13.5 本章小结
附录A
A.1 字节序(BYTE ORDER)
A.2 ELF 常见段
A.3 常用开发工具命令行参考
索引
精彩书摘:
......第1部分 简介
第1章 温故而知新
1.2 万变不离其宗
计算机是个非常广泛的概念,大到占用数层楼的用于科学计算的超级计算机,小到手机上的嵌入式芯片都可以被称为计算机。虽然它们的外形、结构和性能都千差万别,但至少它们都有“计算”这个概念。在本书里面,我们将计算机的范围限定在最为流行、使用最广泛的PC机,更具体地讲是采用兼容x86指令集的32位CPU的个人计算机。原因很简单:因为笔者手上目前只有这种类型的计算机可供操作和实验,不过相信90%以上的读者也是,所以在这一点上我们很快能达成共识。其实选择具体哪种平台并不是最关键的,虽然各种平台的软硬件差别很多,但是本质上它们的基本概念和工作原理都是一样的,只要我们能够掌握一种平台上的技术,那么其他的平台都是大同小异的,很轻松地可以举一反三。所以我们相信,只有你能够深刻地理解x86平台下的系统软件背后的机理,当有一天你需要在MIPS指令集的嵌入式平台上做开发,或者需要为64位的Windows或tinux开发应用程序的时候,你很快就能找到它们之间的相通之处。
撇开计算机硬件中纷繁复杂的各种设备、芯片及外围接口等,站在软件开发者的角度看,我们只须抓住硬件的几个关键部件。对于系统程序开发者来说,计算机多如牛毛的硬件设备中,有三个部件最为关键,它们分别是中央处理器CPU、内存和I/O控制芯片,这三个部件几乎就是计算机的核心了;对于普通应用程序开发者来说,他们似乎除了要关心CPU以外,其他的硬件细节基本不用关心,对于一些高级平台的开发者来说(如Java、.NET或脚本语言开发者),连CPU都不需要关心,因为这些平台为它们提供了一个通用的抽象的计算机,他们只要关心这个象的计算机就可以了。
……
免责声明:
来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。禁用于商业用途!如果您喜欢《程序员的自我修养-链接、装载与库》,请购买正版,谢谢合作。
爱学习,请到3322软件站查找资源自行下载!
使用说明:
方法一:1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
程序员的自我修养-链接、装载与库(潘爱民著)pdf 清晰扫描版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: