utable and Linkable Format (ELF).doc

utable and Linkable Format (ELF).doc

ID:28099579

大小:834.00 KB

页数:41页

时间:2018-12-08

utable and Linkable Format (ELF).doc_第1页
utable and Linkable Format (ELF).doc_第2页
utable and Linkable Format (ELF).doc_第3页
utable and Linkable Format (ELF).doc_第4页
utable and Linkable Format (ELF).doc_第5页
资源描述:

《utable and Linkable Format (ELF).doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ExecutableandLinkableFormat(ELF)译者注本文参考了网上http://blog.csdn.net/BoySKung/archive/2008/12/01/3420254.aspx的译本,但该译本不是很全,于是在此基础上进行了修改与补充。由于水平所限,对原文有些地方并不是十分理解,翻译难免存在纰漏,欢迎大家提出宝贵意见。如需转载请注明出处。联系方式:http://blog.chinaunix.net/space.php?uid=758874637目录译者注I目录II序言III1目标文件11.1简介11.1

2、.1文件格式11.1.2数据表示21.2ELF头部21.2.1ELF标识51.2.2机器信息61.3Sections71.3.1特殊的section111.4字符串表131.5符号表141.5.1符号值171.6重定位171.6.1重定位类型182程序加载与动态链接202.1简介202.2程序头部202.2.1基地址222.2.2注释section232.3程序加载242.4动态链接262.4.1程序解释器262.4.2动态链接器272.4.3动态section282.4.4共享目标依赖312.4.5全局偏移表322.4.6过程链

3、接表332.4.7哈希表342.4.8初始化和终止函数353C库363.1C库363.2全局数据符号3737序言ELF:ExecutableandLinkingFormat可加载且可链接格式最初由UNIXSystemLaboratories(USL)设计并发布,作为ApplicationBinaryInterface(ABI)的一部分。ToolInterfaceStandards(TIS)委员会选举不断发展的ELF标准作为可移植的目标文件格式,使之可工作在32位Intel体系结构的多种操作系统上。ELF标准试图通过为开发者提供一系

4、列的二进制接口,来实现流水线式的软件开发流程。这些接口定义了如何扩展到不同的操作系统环境中。这就减少了不同实现的接口的数量,也就避免了重新编码和实现。关于这篇文档这篇文档面向在32位操作系统上创建可执行目标、文件的开发人员。分为三个部分:n第一章,“目标文件”介绍了ELF三种类型目标文件的格式。n第二章,“程序加载与动态链接”介绍了目标文件的一些补充信息,以及系统运行程序时的动作。n第三章,“C库”列出了libsys中包含的符号、标准的ANSIC、libc例程、以及libc例程需要的全局数据符号。注:X86架构改称为Intel架构

5、。371目标文件1.1简介本章介绍应用程序二进制接口(ABI,ApplicationbinaryInterface)规定的目标文件格式ELF(ExecutableandLinkingFormat),有三种类型的目标文件:1)可重定位(relocatable)文件:保存着代码和数据,这些代码和数据可以同其他目标文件链接在一起,生成一个可执行文件或共享目标文件。2)可执行(executable)文件:保存着能够执行的程序,这个文件告诉exec(BA_OS)怎样创建一个程序的进程映像。3)共享目标(sharedobject)文件:保存着

6、能够在不同上下文环境中链接的代码和数据。首先,链接编辑器(linkeditor)[参见ld(SD_CMD)]可能将它与其他的可重定位文件和共享目标文件链接到一起,生成另外一个目标文件。然后,动态链接器(dynamiclinker)将它与一个可执行文件和其他的共享目标文件链接到一起,生成一个新的进程映像。由汇编器(assembler)和链接编辑器(linkeditor)创建的目标文件,以二进制的形式表达直接在处理器上运行的程序。而需要其他抽象机支持的程序,比如shell脚本,是不在本文讨论范围内的。在这节介绍性的材料之后,第一章主要

7、介绍了文件的格式以及如何利用它们创建应用程序。第二章补充描述了目标文件的几个组成部分,但主要是介绍应用程序的执行。1.1.1文件格式目标文件参与了程序的链接(程序创建阶段)和执行(程序运行阶段),为了更加便利和高效,目标文件格式对文件的内容提供了双重视图,分别反映了链接和执行的不同需求。图1-1展示了目标文件的组织方式:ELF头部在文件的开始部分,保存着关于此文件组织的路线图(roadmap)。Section保存着大量用于链接的目标文件信息:指令、数据、符号表、重定位信息等。第一章介绍了一些专用的section,第二章讨论了seg

8、ment和程序的执行。37程序头部表(programheadertable)告诉系统如何创建一个进程映像。要创建一个进程映像(执行一个程序),必须有一个程序头部表,而可重定位文件不需要有。Section头部表包含描述文件section的信息。每个s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。