网盘分享吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2328|回复: 0

[职业技术] [程序员的自我修养——链接、装载与库][PDF清晰扫描版][全目录][30.5M]

[复制链接]

主题
9624
积分
65138
热心值
9079
金币
73486
注册时间
2018-4-15
最后登录
2020-2-21
在线时间
63 小时
发表于 2018-4-23 20:49 | 显示全部楼层 |阅读模式

赞助VIP可享受免金币查看特权  点击这里充值金币或者开通VIP 购买前先点击分享链接验证是否有效!
BT资源无法下载:戳这里,如何发布售价资源帖?:戳这里      《避免 分享链接失效 的方法?》


125904adtb4b27bo33784b.jpg

1.gif

资源简介


◆ 本书对装载、链接和库进行了深入浅出的剖析,并且辅以大量的例子和图表,可以作为计算机软件专业和其他相关专业大学本科高年级学生深入学习系统软件的参考书。同时,还可作为各行业从事软件开发的工程师、研究人员以及其他对系统软件实现机制和技术感兴趣者的自学教材。
◆ 本书主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。每个技术专题都配备了大量图、表和代码实例,力求将复杂的机制以简洁的形式表达出来。本书最后还提供了一个小巧且跨平台的C/C++运行库MiniCRT,综合展示了与运行库相关的各种技术。
◆ 这是一本深人阐述链接、装载和库等问题的优秀图书,读来让人愉悦,你从巾可以清晰地了解程序的前世今生,彻底理解敲人的代码如何变成程序任系统中运行。通读本书不管对于开发还是trouble shootin都会很有帮助。建议每一位希望从事系统开发、或希望更实务地理解操作系统和编译器、或不满足于只写代码的优秀程序员都拥有这样一本书。     
                       ——邹飞,趋势科技(中国)研发中心资深软件工程师
◆ 本书从大处着眼,小处着手,以通俗易懂的语言,深入浅出地对系统软件的底层形成机制进行条分缕析,正合药山禅师所谓“高高山顶立,深深海底行”。循着作者的思绪一路走来,有如醍醐灌顶。畅快淋漓。非常高兴有预览此书初稿的宝贵机会,我在浏览书稿和查核相关资料的过程中,学到了很多以前未知或知之不深的内容。         
                       ——冯亮,阿里巴巴(中国)网络技术有限公司运维部系统架构师



作者简介/出版社简介



书    名|程序员的自我修养
副标题|链接、装载与库
作    者|俞甲子,石凡,潘爱民
ISBN|9787121085116
页    数|459页
定    价|65.00元
出版社|电子工业出版社
出版时间|2009-4-1
开    本|16开




目录


{目录}
内容页码
导读13
目录16
第 1 部分 简介16
第一章 温故而知新26
1.1 从Hello World说起27
1.2 万变不离其宗28
1.3 站得高,望得远31
1.4 操作系统做什么33
1.4.1不要让CPU打盹33
1.4.2设备驱动34
1.5 内存不够怎么办37
1.5.1 关于隔离38
1.5.2 分段38
1.5.3 分页40
1.6 众人拾柴火焰高42
1.6.1 线程基础42
1.6.2 线程安全47
1.6.3 多线程内部情况53
1.7 本章小结56
第 2 部分 静态链接
第 2 章 编译和链接
2.1 被隐藏了的过程61
2.1.1 预编译62
2.1.2 编译63
2.1.3 汇编63
2.1.4 链接64
2.2 编译器做了什么64
2.2.1 词法分析65
2.2.2 语法分析66
2.2.3 语义分析67
2.2.4 中间语言生产68
2.2.5 目标代码生成与优化70
2.3 链接器年龄比编译器长71
2.4 模块拼装----静态链接73
2.5 本章小结76
第 3 章 目标文件里有什么78
3.1 目标文件的格式79
3.2 目标文件是什么样的81
3.3 挖掘 SimpleSection.o84
3.3.1 代码段87
3.3.2 数据段和只读数据段88
3.3.3 BSS 段89
3.3.4 其他段90
3.4 ELF 文件结构描述91
3.4.1 文件头92
3.4.2 段表97
3.4.3 重定位表102
3.4.4 字符串表103
3.5 链接的接口----符号104
3.5.1 ELF 符号表结构105
3.5.2 特殊符号108
3.5.3 符号修饰与函数签名109
3.5.4 extern "C"113
3.5.5 弱符号与强符号115
3.6 调试信息117
3.7 本章小结118
第 4 章 静态链接120
4.1 空间与地址分配121
4.1.1 按序叠加121
4.1.2 相似段合并122
4.1.3 符号地址的确定126
4.2 符号解析与重定位126
4.2.1 重定位126
4.2.2 重定位表129
4.2.3 符号解析131
4.2.4 指令修正方式132
4.3 COMMON 块134
4.4 C++相关问题135
4.4.1 重复代码消除136
4.4.2 全局构造与析构137
4.4.3 C++与 ABI138
4.5 静态库链接140
4.6 链接过程控制146
4.6.1 链接控制脚本146
4.6.2 最 "小" 的程序147
4.6.3 使用 ld 链接脚本150
4.6.4 ld 链接脚本语法简介151
4.7 BFD 库154
4.8 本章小结155
第 5 章 Windows PE/COFF156
5.1 Windows 的二进制文件格式 PE/COFF157
5.2 PE 的前身----COFF158
5.3 链接指示信息162
5.4 调试信息163
5.5 大家都有符号表164
5.6 Windows 下的 ELF----PE165
5.6.1 PE 数据目录168
5.7 本章小结169
第 3 部分 装载与动态链接170
第 6 章 可执行文件的装载与进程172
6.1 进程虚拟地址空间173
PAE175
6.2 装载的方式176
6.2.1 覆盖装入176
6.2.2 页映射178
6.3 从操作系统角度看可执行文件的装载180
6.3.1 进程的建立180
6.3.2 页错误182
6.4 进程虚存空间分布183
6.4.1 ELF 文件链接视图和执行视图183
6.4.2 堆和栈189
6.4.3 堆的最大申请数量191
6.4.4 段地址对齐192
6.4.5 进程栈初始化194
6.5 Linux 内核装载 ELF 过程简介196
6.6 Windows PE 的装载198
6.7 本章小结200
第 7 章 动态链接202
7.1 为什么要动态链接203
7.2 简单的动态链接例子207
7.3 地址无关代码211
7.3.1 固定装载地址的困扰211
7.3.2 装载时重定位212
7.3.3 地址无关代码213
7.3.4 共享模块的全局变量问题220
7.3.5 数据段地址无关性222
7.4 延迟绑定(PLT)223
7.5 动态链接相关结构225
7.5.1 ".interp" 段226
7.5.2 ".dynamic" 段227
7.5.3 动态符号表229
7.5.4 动态链接重定位表230
7.5.5 动态链接时进程堆栈初始化信息234
7.6 动态链接的步骤和实现237
7.6.1 动态链接器自举237
7.6.2 装载共享对象238
全局符号介入241
7.6.3 重定位和初始化241
7.6.4 Linux 动态链接器实现242
7.7 显式运行时链接244
7.7.1 dlopen()245
7.7.2 dlsym()246
7.7.3 dlerror()247
7.7.4 dlclose()247
7.7.5 运行时装载的演示程序248
7.8 本章小结251
第 8 章 Linux 共享库的组织252
8.1 共享库版本253
8.1.1 共享库兼容性253
8.1.2 共享库版本命名255
8.1.3 SO-NAME256
8.2 符号版本258
8.2.1 基于符号的版本控制259
8.2.2 Solaris 中的符号版本控制260
8.2.3 Linux 中的符号版本262
8.3 共享库系统路径264
8.4 共享库查找过程264
8.5 环境变量265
8.6 共享库的创建和安装268
8.6.1 共享库的创建268
8.6.2 清除符号信息269
8.6.3 共享库的安装269
8.6.4 共享库构造和析构函数270
8.6.5 共享库脚本271
8.7 本章小结271
第 9 章 Windows 下的动态链接272
9.1 DLL 简介273
9.1.1 进程地址空间和内存管理273
9.1.2 基地址和 RVA274
9.1.3 DLL 共享数据段274
9.1.4 DLL 的简单例子274
9.1.5 创建 DLL275
9.1.6 使用 DLL276
9.1.7 使用模块定义文件277
9.1.8 DLL 显式运行时链接279
9.2 符号导出导入表280
9.2.1 导出表280
9.2.2 EXP 文件284
9.2.3 导出重定向284
9.2.4 导入表284
9.2.5 导入函数的调用288
9.3 DLL 优化289
9.3.1 重定基地址290
9.3.2 序号293
9.3.3 导入函数绑定294
9.4 C++ 与动态链接296
9.5 DLL HELL299
9.6 本章小结302
第 4 部分 库与运行库304
第 10 章 内存306
10.1 程序的内存布局307
10.2 栈与调用惯例309
10.2.1 什么是栈309
10.2.2 调用惯例316
10.2.3 函数返回值传递322
10.3 堆与内存管理328
10.3.1 什么是堆328
10.3.2 Linux 进程堆管理329
10.3.3 Windows 进程堆管理331
10.3.4 堆分配算法334
10.4 本章小结338
第 11 章 运行库340
11.1 入口函数和程序初始化341
11.1.1 程序从 main 开始吗341
11.1.2 入口函数如何实现342
11.1.3 运行库与 I/O350
11.1.4 MSVC CRT 的入口函数初始化352
11.2 C/C++ 运行库358
11.2.1 C  语言运行库358
11.2.2 C 语言标准库359
11.2.3 glibc 与 MSVC CRT363
11.3 运行库与多线程373
11.3.1 CRT 的多线程困扰373
11.3.2 CRT 改进375
11.3.3 线程局部存储实现376
11.4 C++ 全局构造与析构380
11.4.1 glibc全局构造与析构381
11.4.2 MSVC CRT 的全局构造和析构387
11.5 fread 实现391
11.5.1 缓冲392
11.5.2 fread_s393
11.5.3 fread_nolock_s394
11.5.4 _read399
11.5.5 文本换行400
11.5.6 fread 回顾403
11.6 本章小结404
第 12 章系统调用与 API406
12.1 系统调用介绍407
12.1.1 什么是系统调用407
12.1.2 Linux 系统调用408
12.1.3 系统调用的弊端410
12.2 系统调用原理411
12.2.1 特权级与中断411
12.2.2 基于 int 的 Linux 的经典系统调用实现413
12.2.3 Linux 的新型系统调用机制422
12.3 Windows API424
12.3.1 Windows API 概览425
12.3.2 为什么要使用 Windows API427
12.3.3 API 与子系统431
12.4 本章小结433
第 13 章 运行库实现434
13.1 C 语言运行库435
13.1.1 开始436
13.1.2 堆的实现440
13.1.3 IO 与文件操作443
13.1.4 字符串相关操作448
13.1.5 格式化字符串449
13.2 如何使用 Mini CRT452
13.3 C++ 运行库实现456
13.3.1 new 与 delete458
13.3.2 C++ 全局构造与析构460
13.3.3 atexit 实现462
13.3.4 入口函数修改464
13.3.5 stream 与 string465
13.4 如何使用 Mini CRT++469
13.5 本章小结471
附录 A472
A.1 字节序(Byte Order)473
A.2 ELF 常见段474
A.3 常用开发工具命令行参考476
A.3.1 gcc,GCC 编译器476
A.3.2 ld,GNU 链接器477
A.3.3 objdump,GNU 目标文件可执行文件查看器477
A.3.4 cl,MSVC 编译器478
A.3.5 link,MSVC 链接器478
A.3.6 dumpbin,MSVC 的 COFF/PE 文件查看器479
索引480




42049296-file_1483937784682_1405f.jpg
19473236-file_1483937784515_60db.jpg




链接:http://pan.baidu.com/s/1jIjZ5m2


购买主题 本主题需向作者支付 5 金币 才能浏览
楼主热帖

① www.wpfx8.com 欢迎您分享自己的网盘资源!分享越多,金币越多!资源互利共享,我为人人,人人为我!
② 每个人都可以在本站发布资源帖,同时本站所有资源都需要金币才能下载!但是,只要你发布几十个优秀资源帖,基本上,你就会源源不断地获得金币了!
③ 如果发现违规广告资源,请点击帖子正文右下角的“举报”按钮。一般资源发布是有效的,时过境迁因为各种各样的原因,资源有可能失效。如果购买后发现资源失效或者资源和帖子内容描述不符,请到首页 [问题/意见反馈区] 发帖说明原因后申请退币。如“资源失效,申请退币”,管理员核实后会退币给您的。

点击按钮快速添加回复内容: 超赞 高兴 激动 给力 收藏 支持 期待 顶帖 精彩 感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长邮箱|sitemap|手机版|小黑屋|百度统计|标签搜索|网盘分享吧

GMT+8, 2024-6-5 00:41 , Processed in 0.116498 second(s), 22 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表