没有合适的资源?快使用搜索试试~ 我知道了~
linkers_and_loaders 中文版
需积分: 10 15 下载量 71 浏览量
2012-12-31
22:12:24
上传
评论
收藏 7.04MB PDF 举报
温馨提示
试读
179页
linkers_and_loaders 中文版,讲解了连接器和加载器的工作过程,书很薄,但很经典,值得一读!
资源推荐
资源详情
资源评论
中国 Linux 论坛 www.linuxforum.net [Linkers & Loaders 翻译计划]
第 0 章 引子 5
献给...........................................................................................................................................5
介绍...........................................................................................................................................5
本书的目标读者是哪些人?...................................................................................................5
章节摘要...................................................................................................................................6
工程项目...................................................................................................................................7
致谢...........................................................................................................................................7
联系我们...................................................................................................................................8
第 1 章 链接和加载.........................................................................................................................9
连接器和载入器是做什么的呢?.............................................................................................9
地址绑定:从一个历史的角度...............................................................................................9
连接和载入.............................................................................................................................11
编译器驱动.............................................................................................................................15
连接:一个真实的例子.........................................................................................................16
练习.........................................................................................................................................19
第 2 章 体系结构的问题...............................................................................................................20
应用二进制界面.....................................................................................................................20
内存地址.................................................................................................................................20
地址信息.................................................................................................................................22
指令格式.................................................................................................................................22
过程调用和可寻址性.............................................................................................................23
数据和指令引用.....................................................................................................................25
SPARC ....................................................................................................................................27
分页和虚拟内存.....................................................................................................................30
Intel 386 分段 .........................................................................................................................35
嵌入式体系机构.....................................................................................................................36
练习.........................................................................................................................................37
第 3 章 目标文件...........................................................................................................................39
目标文件中都有什么?...........................................................................................................39
空目标格式: MS-DOS .COM 文件 .......................................................................................40
代码区: Unix a.out 文件.........................................................................................................40
重载:MS-DOS EXE 文件....................................................................................................46
符号和重载.............................................................................................................................47
可重载 a.out............................................................................................................................47
IBM 360 目标格式 .................................................................................................................58
微软可移植执行体格式.........................................................................................................61
Intel/Microsoft 的 OMF 文件格式.........................................................................................67
不同目标格式的比较.............................................................................................................71
项目.........................................................................................................................................71
练习.........................................................................................................................................72
第 4 章 存储空间分配...................................................................................................................73
段和地址.................................................................................................................................73
简单存储布置.........................................................................................................................73
多种段类型.............................................................................................................................74
2
中国 Linux 论坛 www.linuxforum.net [Linkers & Loaders 翻译计划]
段和页面对齐.........................................................................................................................76
公共块和其他特殊的段.........................................................................................................76
连接器控制脚本.....................................................................................................................83
嵌入式系统存储分配.............................................................................................................84
实际的存储分配.....................................................................................................................85
练习.........................................................................................................................................89
项目.........................................................................................................................................90
第 5 章 符号管理...........................................................................................................................91
绑定和符号解析.....................................................................................................................91
符号表格式.............................................................................................................................91
名字调整(搅拌)......................................................................................................................97
弱外部和其他种类的符号...................................................................................................100
维护调试信息.......................................................................................................................100
练习.......................................................................................................................................102
项目.......................................................................................................................................102
第 6 章 链接库 ............................................................................................................................104
连接库的目的.......................................................................................................................104
库文件格式...........................................................................................................................104
建立库文件...........................................................................................................................108
搜索库文件...........................................................................................................................109
性能问题...............................................................................................................................110
弱(隐式)外部符号(Weak external symbols)........................................................................110
练习.......................................................................................................................................111
项目.......................................................................................................................................112
第 7 章 重定位 ............................................................................................................................114
硬件和软件重定位...............................................................................................................114
链接时重定位和加载时重定位...........................................................................................115
符号和段重定位...................................................................................................................115
基本的重定位技术...............................................................................................................116
可重链接和重定位的输出格式...........................................................................................120
其它重定位格式...................................................................................................................121
特殊情况的重定位...............................................................................................................122
练习.......................................................................................................................................123
项目.......................................................................................................................................123
第 8 章 加载和重叠.....................................................................................................................125
基本加载...............................................................................................................................125
带重定位的基本加载...........................................................................................................126
位置无关代码.......................................................................................................................126
自举加载...............................................................................................................................133
树状结构的覆盖...................................................................................................................133
练习.......................................................................................................................................139
项目.......................................................................................................................................139
第 9 章 共享库 ............................................................................................................................141
绑定时间(Binding time)..................................................................................................142
3
中国 Linux 论坛 www.linuxforum.net [Linkers & Loaders 翻译计划]
共享库的结构.......................................................................................................................144
创建共享库...........................................................................................................................144
使用共享库链接...................................................................................................................147
使用共享库运行...................................................................................................................147
malloc hack 和其它共享库问题 ..........................................................................................148
练习.......................................................................................................................................150
项目.......................................................................................................................................151
第 10 章 动态连接和装载...........................................................................................................152
ELF 动态连接.......................................................................................................................152
ELF 文件内容.......................................................................................................................152
装载一个动态连接程序.......................................................................................................155
运行时的动态连接...............................................................................................................160
Microsoft 动态连接库..........................................................................................................160
OSF/1 准共享库 ...................................................................................................................164
让共享库加速.......................................................................................................................165
几种动态连接方法的比较...................................................................................................166
练习.......................................................................................................................................166
工程.......................................................................................................................................167
第 11 章 高级技术.......................................................................................................................168
C++的技术 ...........................................................................................................................168
增量链接和重新连接...........................................................................................................172
链接时的垃圾收集...............................................................................................................173
链接时优化...........................................................................................................................174
链接时代码生成...................................................................................................................175
Java 链接模式.......................................................................................................................177
练习.......................................................................................................................................179
项目.......................................................................................................................................179
4
中国 Linux 论坛 www.linuxforum.net [Linkers & Loaders 翻译计划]
第 0 章 引子
$Revision: 2.2 $
$Date: 1999/06/09 00:48:48 $
献给
我的家人, 托妮亚和莎拉。
介绍
只要有计算机,就会有连接器和加载器, 因为它们是非常重要的工具. 它
们不但可以处理单一源文件,更可以处理多个输入模块, 从而产生目标代码.
早在 1947 年,程序员就开始使用加载器处理存放在分离磁带上上的代码,
并且最终把它们整合,重定位在一个目标文件里. 到了上世纪 60 年代早期,这
些加载器就发展的比较完善了. 因为那时内存仍旧很贵、很有限并且计算机的速
度也比较慢(以现代计算机的速度比较), 连接器为了让大程序加载到较小的内
存空间中,就建立了复杂的内存布局,为了让以前编译过的文件节省重构时间,
它也做了一些优化.
上世纪 70 到 80 年代,连接技术几乎没有什么大的改进. 连接器趋向于变
得更加简单, 虚拟存储技术的出现,把很多存储管理方面的工作从应用程序层
面移到了操作系统里面, 随着计算机速度越来越快, 磁盘容量越来越大,通过
替换少量模块的方式重新建立被链接程序要比仅仅链接程序中被修改的部分更
加容易(译者注: 重新建立这里提到了两种方式:1,仅仅将修改过的部分编译
后重新连接到程序中;2,将需要替换的模块重新编译后替换原先的模块。就这
两种方法而言,后者更加容易一些)。到了 90 年代,连接器又变得复杂起来,
增加了一些对当时流行特性的支持,如动态连接、共享库以及 C++. 一些拥有扩
展指令字长和编译器显式调度(译者注: 在 IA64 中确实存在此类方法,即在编
写程序时向编译器显式的指定某些调度策略,从而优化程序运行,例如可以在程
序中调用编译器的功能指定更高层次的流水线,我想这里可能就指的此类意思。)
内存访问方式特性的新处理器架构,诸如 IA-64, 将对连接器提出新需求,以
确保目标文件中出现所需的代码.
本书的目标读者是哪些人?
本书预计供下述几种读者使用。
学生:正在学习编译器构造课程,而且粗略地学习过操作系统但缺乏对
连接和装载过程的认识,往往认为连接过程琐碎或是浅显。虽然说过去
Fortran,Pascal, 和 C 语言吃香的时候,操作系统并不使用内存交
5
剩余178页未读,继续阅读
资源评论
xiebudong
- 粉丝: 40
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IMG_5905.PNG
- Cyclone Version 9.51
- 高性能量化回测工具 hikyuu 2.0.3 python 3.12 windows 安装包
- 省级城乡居民基本养老保险情况数据集(2010-2022年).xlsx
- 舞队填写版.cpp
- 基于BP神经网络的多输入单输出回归预测.zip
- 高性能量化回测工具 hikyuu 2.0.3 python 3.9 windows 安装包
- 省级城镇职工基本养老保险情况2000-2022年.xlsx
- 高性能量化回测工具 hikyuu 2.0.3 python 3.10 windows 安装包
- 算法部署-使用OpenVINO+C#部署PaddleOCR字符识别算法-项目源码-优质项目实战.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功