MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库


MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库
文章图片
前言事实上 , 现在市面上和网络上能找到的计算机技术方面的书籍和资料中 , 什么都很齐全 , 唯独关于这三个主题(链接、装载与库)的讨论十分稀缺 , 即使能找到一些也是犹如残缺的典籍 , 不仅不完整而且很多已经过时了 。 关于现在通用的Windows和Liunx平台的链接、装载及PE/ELF文件的详细分析 , 实在很少见 。 这个领域中 , 最为完整、也最为权威的莫过于John R. Levine的Linkers &Loaders这本书我也前前后后通读了好几遍 , 虽然它对链接和装载方面的描述较为完整 , 但是过于理论化 , 对于实际的系统机制描述则过于简略 。
你将学到什么
本书将详细描述现在流行的Windows和Linux操作系统下各自的可执行文件 , 目标文件格式;普通CIC++程序代码如何被编译成目标文件及程序在目标文件中如何存储;目标文件如何被链接器链接到一起 , 并且形成可执行文件;目标文件在链接时符号处理、重定位和地址分配如何进行;可执行文件如何被装载并且执行;可执行文件与进程的虚拟空间之间如何映射;什么是动态链接 , 为什么要进行动态链接;Windows 和Linux如何进行动态链接及动态链接时的相关问题;什么是堆 , 什么是栈:函数调用惯例;运行库 , Glibe 和MSVC CRT的实现分析:系统调用与AP;最后我们自己还实现了一个Mini CRT 。
应当具备的基础知识
在本书中 , 我们尽量避免要求读者有很多的基础知识 , 但难免有些要求 。 其中包括对CIC++编程语言的基本了解、x86汇编语言基础、操作系统基本概念及基本编程技巧和计算机系统结构的基本概念 。
内容本书分为4大部分 , 分别如下:
第1部分 简介第1章 温故而知新
介绍基本的背景知识 , 包括硬件 。 操作系统 。 线程等 。
第2部分 静态链接第2章 编译和链接
介绍编译和链接的基本概念和步骤 。
【MIUI|GitHub上超受欢迎程序员书籍:链接、装载与库】第3章 目标文件里有什么
介绍COFF日标文件格式和源代码编译后如何在目标文件中存储 。
第4章 静态链接
介绍静态链接与静态库链接的过程和步骤 。
第5章 Windows PE/COFF
介绍Windows平台的目标文件和可执行文件格式 。