该资源由用户: 落英雪曼 上传 举报不良内容
这本书主要介绍系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,一个应用程序在编译、链接和运行时刻所发生的各种事项,包括:代码指令是如何保存的,库文件如何与应用程序代码静态链接,应用程序如何被装载到内存中并开始运行,动态链接如何实现,C/C++运行库的工作原理,以及操作系统提供的系统服务是如何被调用的。每个技术专题都配备了大量图、表和代码实例,力求将复杂的机制以简洁的形式表达出来。本书最后还提供了一个小巧且跨平台的C/C++运行库MiniCRT,综合展示了与运行库相关的各种技术。对装载、链接和库进行了深入浅出的剖析,并且辅以大量的例子和图表,可以作为计算机软件专业和其他相关专业大学本科高年级学生深入学习系统软件的参考书。同时,还可作为各行业从事软件开发的工程师、研究人员以及其他对系统软件实现机制和技术感兴趣者的自学教材。目录:第1部分 简介第1章 温故而知新1.1 从HELLO WORLD 说起1.2 万变不离其宗1.3 站得高,望得远1.4 操作系统做什么1.5 内存不够怎么办1.6 众人拾柴火焰高1.7 本章小结第2部分 静态链接第2章 编译和链接2.1 被隐藏了的过程2.2 编译器做了什么2.3 链接器年龄比编译器长2.4 模块拼装——静态链接2.5 本章小结第3章 目标文件里有什么3.1 目标文件的格式3.2 目标文件是什么样的3.3 挖掘SIMPLESECTION.O3.4 ELF 文件结构描述3.5 链接的接口——符号3.6 调试信息3.7 本章小结第4章 静态链接4.1 空间与地址分配4.2 符号解析与重定位4.3 COMMON 块4.4 C++相关问题4.5 静态库链接4.6 链接过程控制4.7 BFD 库4.8 本章小结第5章 WINDOWS PE/COFF5.1 WINDOWS 的二进制文件格式PE/COFF 1345.2 PE 的前身——COFF5.3 链接指示信息5.4 调试信息5.5 大家都有符号表5.6 WINDOWS 下的ELF——PE5.7 本章小结第3部分 装载与动态链接第6章 可执行文件的装载与进程6.1 进程虚拟地址空间6.2 装载的方式6.3 从操作系统角度看可执行文件的装载6.4 进程虚存空间分布6.5 LINUX 内核装载ELF 过程简介6.6 WINDOWS PE 的装载6.7 本章小结第7章 动态链接7.1 为什么要动态链接7.2 简单的动态链接例子7.3 地址无关代码7.4 延迟绑定(PLT)7.5 动态链接相关结构7.6 动态链接的步骤和实现7.7 显式运行时链接7.8 本章小结第8章 LINUX 共享库的组织8.1 共享库版本8.2 符号版本8.3 共享库系统路径8.4 共享库查找过程8.5 环境变量8.6 共享库的创建和安装8.7 本章小结第9章 WINDOWS 下的动态链接9.1 DLL 简介9.2 符号导出导入表9.3 DLL 优化9.4 C++与动态链接9.5 DLL HELL9.6 本章小结第4部分 库与运行库第10章 内存10.1 程序的内存布局10.2 栈与调用惯例10.3 堆与内存管理10.4 本章小结第11章 运行库11.1 入口函数和程序初始化11.2 C/C++运行库11.3 运行库与多线程11.4 C++全局构造与析构11.5 FREAD 实现11.6 本章小结第12章 系统调用与API12.1 系统调用介绍12.2 系统调用原理12.3 WINDOWS API12.4 本章小结第13章 运行库实现13.1 C 语言运行库13.2 如何使用MINI CRT13.3 C++运行库实现13.4 如何使用MINI CRT++13.5 本章小结附录AA.1 字节序(BYTE ORDER)A.2 ELF 常见段A.3 常用开发工具命令行参考索引
尊敬的读者:
欢迎您访问我们的网站。本站的初衷是为大家提供一个共享学习资料、交换知识的平台。每位用户都可以将文件上传至网盘并分享。
然而,随着用户上传的资料增多,我们发现部分不宜或版权问题的书籍被分享到了本站。
为此,我们已经关闭了分享入口,并进行了多次书籍审查,但仍有部分内容未能彻底审查到位。
在此,我们恳请广大读者与我们共同监督,如发现任何不宜内容,请 点击此处 进行举报,我们会第一时间处理并下架相关内容。
希望我们能共建一个文明社区!感谢您的理解与支持!