网站大量收购独家精品文档,联系QQ:2885784924

ELF文件格式分析.docx

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

内部资料

技术笔记

PKU/SSDB-03-TN-005

JBEOS-TN-03-0052003年5月

ELE文件格式分析

滕启明

北京大学信息科学技术学院操作系统实验室

2003年5月

声明

本研究工作是在国家863计划软件重大专项《构件化嵌入式操作系统及开发环境》资助下开展的。本报告中涉及的技术观点主要参考相关研究项目公开发表的成果,不提供任何形式、任何意义保证。本报告仅作为内部技术交流材料使用。任何外部使用须经北京大学软件研究所授权。

摘要嵌入式操作系统应用领域广,硬件环境复杂多样,降低开发成本、缩短开发周

期、提高产品质量是工业界和学术界共同关注的问题。借鉴软件复用的思想,采用基于构件的软件开发思路来开发嵌入式操作系统是一条可行的途径。本文是作者在探索系统软件构件的复用技术的过程中生成的技术笔记,重点分析了UNIX类操作系统中普遍采用的目标文件格式ELF(ExecutableandLinkableFormat),目的是研究操作系统中二进制级软件构件的静态、动态组装技术。本文首先介绍ELF文件格式规范,然后结合一个简单的C语言程序,分析编译、链接后生成的可重定位、可执行格式实例。

关键词操作系统编译链接目标文件软件构件

目录

1简介 1

2相关标准 1

2.1SYSTEMVABI 1

2.2LSB 2

3ELF文件格式 2

3.1简介 2

3.1.1目标文件中的数据表示 2

3.2目标文件格式 3

3.3ELFHEADER部分 3

3.4节区(SECTIONS) 6

3.4.1节区头部表格 6

3.4.2节区头部 7

3.4.3特殊节区 10

3.5字符串表(STRINGTABLE) 12

3.6符号表(SYMBOLTABLE) 13

3.6.1关于st_info的说明 13

3.6.2符号类型 14

3.6.3特殊的节区索引 15

3.6.4STN_UNDEF符号 15

3.6.5符号取值 15

3.7重定位信息 16

3.7.1重定位表项 16

3.7.2重定位类型 17

3.8程序加载和动态链接 19

3.8.1程序头部(ProgramHeader) 19

3.8.2程序加载 21

3.8.3动态链接 23

3.8.4全局偏移表(GOT) 27

3.8.5过程链接表(PLT) 28

3.8.6哈希表(HashTable) 30

3.8.7初始化和终止函数 31

3.9C库 31

3.9.1关于C库函数 31

3.9.2全局数据符号 33

图形目录

图1目标文件格式 3

图2ELFHeader数据结构 3

图3节区头部数据结构 7

图4符号表项格式定义 13

图5符号表项的st_info字段合成 13

图6重定位表项的格式 16

图7程序头部数据结构 19

图8注释节区示例 21

图9可执行文件布局示例 22

图10动态节区符号结构 24

图11绝对过程链接表 28

图12位置独立的过程链接表 29

图13符号哈希表的组织 30

2003年5月PKU/SSDB-03-TR-005

1简介

可执行链接格式(ExecutableandLinkingFormat)最初是由UNIX系统实验室(UNIXSystemLaboratories,USL)开发并发布的,作为应用程序二进制接口(ApplicationBinaryInterface,ABI)的一部分。工具接口标准(ToolInterfaceStandards,TIS)委员会将还在发展的ELF标准选作为一种可移植的目标文件格式

您可能关注的文档

文档评论(0)

165720323137e88 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档