开发工具:
文件大小: 853kb
下载次数: 0
上传时间: 2011-04-13
详细说明: 摘要 嵌入式操作系统应用领域广,硬件环境复杂多样,降低开发成本、缩短开发周 期、提高产品质量是工业界和学术界共同关注的问题。借鉴软件复用的思想, 采用基于构件的软件开发思路来开发嵌入式操作系统是一条可行的途径。本文 是作者在探索系统软件构件的复用技术的过程中生成的技术笔记,重点分析了 UNIX 类操作系统中普遍采用的目标文件格式 ELF (Executable and Linkable Format),目的是研究操作系统中二进制级软件构件的静态、动态组装技术。 本文首先介绍 ELF 文件格式规范,然后结合一个简单的 C 语言程序,分析编 译、链接后生成的可重定位、可执行格式实例。 关键词 操作系统 编译 链接 目标文件 软件构件 目 录 1 简介.... ................................................................................................................................. 1 2 相关标准............................................................................................................................. 1 2.1 SYSTEM V ABI........................................................................................................................................ 1 2.2 LSB ........................................................................................................................................................ 2 3 ELF文件格式..................................................................................................................... 2 3.1 简介........................................................................................................................................................ 2 3.1.1 目标文件中的数据表示................................................................................................................ 2 3.2 目标文件格式........................................................................................................................................ 3 3.3 ELF HEADER部分 .................................................................................................................................. 3 3.4 节区(SECTIONS )................................................................................................................................ 6 3.4.1 节区头部表格................................................................................................................................ 6 3.4.2 节区头部 ....................................................................................................................................... 7 3.4.3 特殊节区 ..................................................................................................................................... 10 3.5 字符串表 (STRING TABLE )............................................................................................................... 12 3.6 符号表(SYMBOL TABLE )................................................................................................................. 13 3.6.1 关于st_info的说明....................................................................................................................... 13 3.6.2 符号类型 ..................................................................................................................................... 14 3.6.3 特殊的节区索引.......................................................................................................................... 15 3.6.4 STN_UNDEF符号....................................................................................................................... 15 3.6.5 符号取值 ..................................................................................................................................... 15 3.7 重定位信息.......................................................................................................................................... 16 3.7.1 重定位表项.................................................................................................................................. 16 3.7.2 重定位类型.................................................................................................................................. 17 3.8 程序加载和动态链接.......................................................................................................................... 19 3.8.1 程序头部 (Program Header )................................................................................................... 19 3.8.2 程序加载 ..................................................................................................................................... 21 3.8.3 动态链接 ..................................................................................................................................... 23 3.8.4 全局偏移表(GOT)................................................................................................................. 27 3.8.5 过程链接表(PLT)................................................................................................................... 28 3.8.6 哈希表(Hash Table )................................................................................................................ 30 3.8.7 初始化和终止函数...................................................................................................................... 31 3.9 C库....................................................................................................................................................... 31 3.9.1 关于C库函数............................................................................................................................... 31 3.9.2 全局数据符号.............................................................................................................................. 33 图形目录 图 1 目标文件格式................................................................................................................................3 图 2 ELF Header数据结构.................................................................................................................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 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.