《链接器和加载器》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:(美)莱文著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2009
  • ISBN:9787811245714
  • 页数:184 页
图书介绍:本书内容包括链接和加载、体系结构、目标文件、存储分配、符号管理、库、重定位、加载和覆盖、共享库、动态链接和加载、动态链接的共享库以及着眼于成熟的现代链接器所做的一些变化。同时介绍有一个持续的实践项目,使用perl语言开发一个小但可用的链接器。

第1章 链接和加载 1

1.1 链接器和加载器做什么? 1

1.2 地址绑定:从历史的角度 1

1.3 链接与加载 3

1.4 编译器驱动 8

1.5 链接:一个真实的例子 9

练习 13

第2章 体系结构的问题 14

2.1 应用程序二进制接口 14

2.2 内存地址 15

2.3 地址构成 16

2.4 指令格式 17

2.5 过程调用和寻址能力 17

2.6 数据和指令引用 20

2.7 分页和虚拟内存 25

2.8 Intel 386分段 30

2.9 嵌入式体系结构 32

练习 33

第3章 目标文件 35

3.1 目标文件中都有什么? 35

3.2 空目标文件格式:MS-DOS的COM文件 36

3.3 代码区段:UNIX的a.out文件 37

3.4 重定位:MS-DOS的EXE文件 42

3.5 符号和重定位 44

3.6 可重定位的a.out格式 44

3.7 UNIX的ELF格式 46

3.8 IBM 360目标格式 53

3.9 微软可移植、可执行体格式 57

3.10 Intel/Microsoft的OMF文件格式 63

3.11 不同目标格式的比较 67

练习 67

项目 68

第4章 存储空间分配 70

4.1 段和地址 70

4.2 简单的存储布局 70

4.3 多种段类型 72

4.4 段与页面的对齐 73

4.5 公共块和其他特殊段 74

4.6 链接器控制脚本 81

4.7 实际中的存储分配 82

练习 86

项目 87

第5章 符号管理 88

5.1 绑定和名字解析 88

5.2 符号表格式 89

5.3 名称修改 93

5.4 弱外部符号和其他类型符号 97

5.5 维护调试信息 97

练习 100

项目 100

第6章 库 101

6.1 库的目的 101

6.2 库的格式 101

6.3 建立库文件 105

6.4 搜索库文件 106

6.5 性能问题 107

6.6 弱外部符号 107

练习 109

项目 109

第7章 重定位 111

7.1 硬件和软件重定位 111

7.2 链接时重定位和加载时重定位 112

7.3 符号和段重定位 112

7.4 基本的重定位技术 113

7.5 可重链接和重定位的输出格式 119

7.6 其他重定位格式 119

7.7 特殊情况的重定位 121

练习 122

项目 122

第8章 加载和覆盖 124

8.1 基本加载 124

8.2 带重定位的基本加载 125

8.3 位置无关代码 125

8.4 自举加载 131

8.5 树状结构的覆盖 132

练习 138

项目 138

第9章 共享库 141

9.1 绑定时间 141

9.2 实际的共享库 142

9.3 地址空间管理 142

9.4 共享库的结构 143

9.5 创建共享库 143

9.6 使用共享库链接 146

9.7 使用共享库运行 147

9.8 malloc hack和其他共享库问题 148

练习 150

项目 151

第10章 动态链接和加载 152

10.1 ELF动态链接 152

10.2 ELF文件内容 153

10.3 加载一个动态链接程序 155

10.4 使用PLT的惰性过程链接 158

10.5 动态链接的其他特性 159

10.6 运行时的动态链接 161

10.7 微软动态链接库 161

10.8 OSF/1伪静态共享库 165

10.9 让共享库快一些 166

10.10 几种动态链接方法的比较 167

练习 168

项目 168

第11章 高级技术 170

11.1 C++的技术 170

11.2 增量链接和重新链接 173

11.3 链接时的垃圾收集 175

11.4 链接时优化 176

11.5 链接时代码生成 177

11.6 Java链接模型 179

练习 182

项目 182