开发工具:
文件大小: 5mb
下载次数: 0
上传时间: 2012-10-14
详细说明: 第0 章 引子......................................................................................................................................10 献给..............................................................................................................................................10 介绍..............................................................................................................................................10 本书的目标读者是哪些人?.................................................................................... ...................10 章节摘要......................................................................................................................................11 项目..............................................................................................................................................12 致谢..............................................................................................................................................12 联系我们......................................................................................................................................13 第1 章 链接和加载...........................................................................................................................14 链接器和加载器做什么?...........................................................................................................14 地址绑定:从历史的角度...........................................................................................................14 链接与加载..................................................................................................................................16 两遍链接..................................................................................................................................17 目标代码库...............................................................................................................................18 重定位和代码修改...................................................................................................................19 编译器驱动..................................................................................................................................20 链接器命令语言.......................................................................................................................21 链接:一个真实的例子...............................................................................................................22 练习..............................................................................................................................................26 第2 章 体系结构的问题...................................................................................................................27 应用程序二进制接口...................................................................................................................27 内存地址......................................................................................................................................27 字节顺序和对齐.......................................................................................................................27 地址构成......................................................................................................................................29 指令格式......................................................................................................................................29 过程调用和可寻址性...................................................................................................................30 过程调用..................................................................................................................................30 数据和指令引用...........................................................................................................................32 IBM 370...................................................................................................................................32 SPARC..........................................................................................................................................34 SPARC V8.......................................................................................................................34 SPARC V9.......................................................................................................................35 Intel x86...................................................................................................................................36 分页和虚拟内存...........................................................................................................................37 程序地址空间...........................................................................................................................39 映射文件..................................................................................................................................40 共享库和程序...........................................................................................................................41 位置无关代码...........................................................................................................................41 Intel 386分段...............................................................................................................................42 嵌入式体系结构...........................................................................................................................43 怪异的地址空间.......................................................................................................................44 非一致性内存...........................................................................................................................44 内存对齐..................................................................................................................................44 练习..............................................................................................................................................44 第3 章 目标文件...............................................................................................................................47 目标文件中都有什么?..................................................................................................................47 设计一个目标文件格式...........................................................................................................47 空目标文件格式: MS-DOS的.COM文件..................................................................................48 代码区段: Unix a.out文件............................................................................................................48 a.out头部.................................................................................................................................50 与虚拟内存的交互...................................................................................................................51 重定位:MS-DOS EXE文件.......................................................................................................54 符号和重定位...............................................................................................................................56 可重定位的a.out格式..................................................................................................................56 重定位项..................................................................................................................................58 符号和字串...............................................................................................................................59 a.out格式小结..........................................................................................................................60 Unix ELF格式..............................................................................................................................60 可重定位文件...........................................................................................................................62 ELF可执行文件.......................................................................................................................66 ELF格式小结...........................................................................................................................68 IBM 360目标格式........................................................................................................................68 ESD记录.................................................................................................................................69 TXT记录.................................................................................................................................70 RLD记录.................................................................................................................................70 END记录.................................................................................................................................71 小结..........................................................................................................................................71 微软可移植可执行体格式...........................................................................................................72 PE特有区段.............................................................................................................................76 运行PE可执行文件................................................................................................................77 PE和COFF.............................................................................................................................78 PE文件小结.............................................................................................................................78 Intel/Microsoft的OMF文件格式................................................................................................78 OMF记录................................................................................................................................79 OMF文件的细节.....................................................................................................................80 OMF格式小结.........................................................................................................................82 不同目标格式的比较...................................................................................................................82 项目..............................................................................................................................................83 练习..............................................................................................................................................84 第4 章 存储空间分配.......................................................................................................................85 段和地址......................................................................................................................................85 简单的存储布局...........................................................................................................................85 多种段类型..................................................................................................................................87 段与页面的对齐...........................................................................................................................88 公共块和其它特殊段...................................................................................................................88 公共块......................................................................................................................................89 C++重复代码消除....................................................................................................................90 初始化和终结...........................................................................................................................92 IBM伪寄存器..........................................................................................................................93 特殊的表..................................................................................................................................94 X86分段的存储分配...............................................................................................................95 链接器控制脚本...........................................................................................................................96 嵌入式系统的存储分配...............................................................................................................97 实际中的存储分配.......................................................................................................................98 Unix a.out链接器的存储分配策略.........................................................................................98 ELF中的存储分配策略...........................................................................................................99 Windows链接器的存储分配策略.........................................................................................101 练习............................................................................................................................................102 项目............................................................................................................................................103 第5 章 符号管理.............................................................................................................................104 绑定和名字解析.........................................................................................................................104 符号表格式................................................................................................................................104 模块表....................................................................................................................................106 全局符号表.............................................................................................................................108 符号解析................................................................................................................................109 特殊符号................................................................................................................................110 名称修改....................................................................................................................................110 简单的C和Fortran名称修改...............................................................................................110 C++类型编码:类型和范围..................................................................................................111 链接时类型检查.....................................................................................................................113 弱外部符号和其它类型符号.....................................................................................................113 维护调试信息.............................................................................................................................113 行号信息................................................................................................................................114 符号和变量信息.....................................................................................................................114 实际的问题.............................................................................................................................115 练习............................................................................................................................................115 项目............................................................................................................................................116 第6 章 库........................................................................................................................................117 库的目的....................................................................................................................................117 库的格式....................................................................................................................................117 使用操作系统.........................................................................................................................117 UNIX和Windows的Archive文件......................................................................................118 扩展到 64 位..........................................................................................................................120 Intel OMF 库文件...................................................................................................................120 建立库文件................................................................................................................................121 搜索库文件................................................................................................................................122 性能问题....................................................................................................................................123 弱外部符号................................................................................................................................123 练习............................................................................................................................................124 项目............................................................................................................................................124 第7 章 重定位................................................................................................................................126 硬件和软件重定位.....................................................................................................................126 链接时重定位和加载时重定位.................................................................................................127 符号和段重定位.........................................................................................................................127 符号查找................................................................................................................................128 基本的重定位技术.....................................................................................................................128 指令重定位.............................................................................................................................129 ECOFF段重定位...................................................................................................................131 ELF重定位.............................................................................................................................132 OMF重定位...........................................................................................................................132 可重链接和重定位的输出格式.................................................................................................132 其它重定位格式.........................................................................................................................133 以链表形式组织的引用.........................................................................................................133 以位图形式组织的引用.........................................................................................................134 特殊段....................................................................................................................................134 特殊情况的重定位.....................................................................................................................135 练习............................................................................................................................................135 项目............................................................................................................................................135 第8 章 加载和重叠.........................................................................................................................137 基本加载....................................................................................................................................137 带重定位的基本加载.................................................................................................................138 位置无关代码.............................................................................................................................138 TSS/360 位置无关代码..........................................................................................................138 例程指针表.............................................................................................................................140 目录表....................................................................................................................................141 ELF位置无关代码.................................................................................................................141 位置无关代码的开销和得益.................................................................................................143 自举加载....................................................................................................................................144 树状结构的覆盖.........................................................................................................................145 定义覆盖................................................................................................................................147 覆盖的实现.............................................................................................................................149 覆盖的其它细节.....................................................................................................................150 覆盖技术小结 .......................................................................................................................151 练习............................................................................................................................................151 项目............................................................................................................................................151 第9 章 共享库................................................................................................................................153 绑定时间....................................................................................................................................154 实际的共享库.........................................................................................................................155 地址空间管理.........................................................................................................................155 共享库的结构.............................................................................................................................156 创建共享库................................................................................................................................156 创建跳转表.............................................................................................................................157 创建共享库.............................................................................................................................158 创建空占位库.........................................................................................................................158 版本命名................................................................................................................................159 使用共享库链接.........................................................................................................................159 使用共享库运行.........................................................................................................................160 malloc hack和其它共享库问题.................................................................................................160 练习............................................................................................................................................163 项目............................................................................................................................................163 第10 章 动态链接和加载...............................................................................................................165 ELF动态链接.............................................................................................................................165 ELF文件内容.............................................................................................................................165 加载一个动态链接的程序.........................................................................................................168 启动动态链接器.....................................................................................................................169 库的查找................................................................................................................................169 共享库的初始化.....................................................................................................................170 使用PLT的惰性过程链接(lazy procedure linkage).............................................................171 动态链接的其它特性.............................................................................................................172 静态的初始化.........................................................................................................................172 库的版本................................................................................................................................173 运行时的动态链接.....................................................................................................................173 Microsoft动态链接库.................................................................................................................174 PE文件中的输入/输出符号(imported and exported symbols)........................................174 惰性绑定................................................................................................................................177 DLL库和线程........................................................................................................................178 OSF/1伪静态共享库..................................................................................................................178 让共享库快一些.........................................................................................................................179 几种动态链接方法的比较.........................................................................................................179 练习............................................................................................................................................180 项目............................................................................................................................................181 第11 章 高级技术...........................................................................................................................182 C++的技术.................................................................................................................................182 试验链接................................................................................................................................183 消除重复代码.........................................................................................................................184 借助于数据库的方法.............................................................................................................185 增量链接和重新链接.................................................................................................................185 链接时的垃圾收集.....................................................................................................................187 链接时优化................................................................................................................................188 链接时代码生成.........................................................................................................................189 链接时统计 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.