|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 dading1009 于 2010-10-9 22:02 编辑
本书主要介绍系统软件的运行机制和原理,涉及在windows和linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,c/c++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。每个技术专题都配备了大量图、表和代码实例,力求将复杂的机制以简洁的形式表达出来。本书最后还提供了一个小巧且跨平台的c/c++运行库minicrt,综合展示了与运行库相关的各种技术。
目录:
第1 部分 简介. 1
第1 章 温故而知新 3
1.1 从HELLO WORLD 说起 4
1.2 万变不离其宗 5
1.3 站得高,望得远 8
1.4 操作系统做什么 10
1.5 内存不够怎么办 14
1.6 众人拾柴火焰高 19
1.7 本章小结 33
第2 部分 静态链接 35
第2 章 编译和链接 37
2.1 被隐藏了的过程 38
2.2 编译器做了什么 41
2.3 链接器年龄比编译器长 48
2.4 模块拼装——静态链接 50
2.5 本章小结 53
第3 章 目标文件里有什么 55
3.1 目标文件的格式 56
3.2 目标文件是什么样的 58
3.3 挖掘SIMPLESECTION.O 61
.3.4 ELF 文件结构描述 68
3.5 链接的接口——符号 81
3.6 调试信息 94
3.7 本章小结 95
第4 章 静态链接 97
4.1 空间与地址分配 98
4.2 符号解析与重定位 103
4.3 COMMON 块 111
4.4 C++相关问题 112
4.5 静态库链接 117
4.6 链接过程控制 123
4.7 BFD 库 131
4.8 本章小结 132
第5 章 WINDOWS PE/COFF 133
5.1 WINDOWS 的二进制文件格式PE/COFF 134
5.2 PE 的前身——COFF 135
5.3 链接指示信息 139
5.4 调试信息 140
5.5 大家都有符号表 141
5.6 WINDOWS 下的ELF——PE 142
5.7 本章小结 146
第3 部分 装载与动态链接.. 147
第6 章 可执行文件的装载与进程 149
6.1 进程虚拟地址空间 150
6.2 装载的方式 153
6.3 从操作系统角度看可执行文件的装载 157
6.4 进程虚存空间分布 160
6.5 LINUX 内核装载ELF 过程简介 173
6.6 WINDOWS PE 的装载 175
6.7 本章小结 177
第7 章 动态链接 179
7.1 为什么要动态链接 180
7.2 简单的动态链接例子 184
7.3 地址无关代码 188
7.4 延迟绑定(PLT) 200
7.5 动态链接相关结构 202
7.6 动态链接的步骤和实现 214
7.7 显式运行时链接 221
7.8 本章小结 228
第8 章 LINUX 共享库的组织 229
8.1 共享库版本 230
8.2 符号版本 235
8.3 共享库系统路径 241
8.4 共享库查找过程 241
8.5 环境变量 242
8.6 共享库的创建和安装 245
8.7 本章小结 248
第9 章 WINDOWS 下的动态链接 249
9.1 DLL 简介 250
9.2 符号导出导入表 257
9.3 DLL 优化 266
9.4 C++与动态链接 273
9.5 DLL HELL 276
9.6 本章小结 279
第4 部分 库与运行库 281
第10 章 内存 283
10.1 程序的内存布局 284
10.2 栈与调用惯例 286
10.3 堆与内存管理 305
10.4 本章小结 315
第11 章 运行库 317
11.1 入口函数和程序初始化 318
11.2 C/C++运行库 335
11.3 运行库与多线程 350
11.4 C++全局构造与析构 357
11.5 FREAD 实现 368
11.6 本章小结 381
第12 章 系统调用与API383
12.1 系统调用介绍 384
12.2 系统调用原理 388
12.3 WINDOWS API 401
12.4 本章小结 410
第13 章 运行库实现 411
13.1 C 语言运行库 412
13.2 如何使用MINI CRT 429
13.3 C++运行库实现 433
13.4 如何使用MINI CRT++ 446
13.5 本章小结 448
附录A 449
A.1 字节序(BYTE ORDER) 450
A.2 ELF 常见段 451
A.3 常用开发工具命令行参考 453 |
-
-
程序员的自我修养—链接、装载与库.part7.rar
1.73 MB, 下载次数: 381
, 下载积分:
资产 -2 信元, 下载支出 2 信元
-
-
程序员的自我修养—链接、装载与库.part1.rar
4.58 MB, 下载次数: 370
, 下载积分:
资产 -3 信元, 下载支出 3 信元
-
-
程序员的自我修养—链接、装载与库.part2.rar
4.58 MB, 下载次数: 313
, 下载积分:
资产 -3 信元, 下载支出 3 信元
-
-
程序员的自我修养—链接、装载与库.part3.rar
4.58 MB, 下载次数: 298
, 下载积分:
资产 -3 信元, 下载支出 3 信元
-
-
程序员的自我修养—链接、装载与库.part4.rar
4.58 MB, 下载次数: 247
, 下载积分:
资产 -3 信元, 下载支出 3 信元
-
-
程序员的自我修养—链接、装载与库.part5.rar
4.58 MB, 下载次数: 257
, 下载积分:
资产 -3 信元, 下载支出 3 信元
-
-
程序员的自我修养—链接、装载与库.part6.rar
4.58 MB, 下载次数: 334
, 下载积分:
资产 -3 信元, 下载支出 3 信元
|