《连接器与加载器》中文翻译版

需积分: 10 2 下载量 136 浏览量 更新于2024-07-22 收藏 7.04MB PDF 举报
"《Linker and Loader 中文版》是中国Linux论坛的一项翻译计划,旨在将英文版的Linkers&Loaders书籍翻译成中文,帮助中文读者理解链接器和加载器的工作原理及其在计算机系统中的作用。书中涵盖了从早期的地址绑定历史到现代计算机体系结构、目标文件格式、存储空间分配、符号管理、链接库以及重定位等多个方面,旨在服务于对操作系统、编译工具链感兴趣的读者。" 在《Linker and Loader》中,作者深入浅出地介绍了链接器和加载器的基本概念和功能。链接器负责将编译后的多个目标文件合并成一个可执行文件,解决符号引用,进行地址重定位;而加载器则是在程序运行时,将可执行文件加载到内存并设置好正确的地址,使程序得以执行。 书中第二章探讨了不同的计算机体系结构,如应用二进制接口(Application Binary Interface, ABI),内存地址的处理,以及指令格式、过程调用、数据和指令引用等在不同架构下的实现,如SPARC和Intel 386的分页和虚拟内存机制。 第三章详细讲述了目标文件的结构,包括空目标格式(如MS-DOS.COM)、代码区(如Unix的a.out)、重定位(如MS-DOS的EXE文件)以及各种目标文件格式,如IBM360、PE格式(Portable Executable)和OMF格式(Object Module Format)。 第四章涉及存储空间分配,讨论了段和地址的概念,以及如何根据多种段类型进行存储布局,如段和页面对齐,公共块的处理,以及连接器控制脚本在嵌入式系统存储分配中的应用。 第五章介绍了符号管理,包括符号绑定、解析、符号表格式、名字调整(如名称修饰)以及弱外部符号的处理,同时提到了调试信息的维护。 第六章讲解了链接库的使用,包括库文件格式、创建库文件的方法、搜索库文件的顺序以及性能考虑。弱外部符号(Weak externals symbols)也是本章的重点。 第七章着重于重定位的过程,区分了硬件和软件重定位,解释了链接时和加载时重定位的区别,以及基本的重定位技术,如可重链接和重定位的输出格式。 这些内容对于理解程序从源代码到执行的全过程,以及如何优化代码和系统性能至关重要,是程序员、系统管理员和计算机科学学生深入了解底层操作系统的宝贵资源。通过学习,读者可以更好地掌握系统级编程和软件开发的关键知识。