Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5644
  • 博文数量: 1
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-23 10:20
文章分类
文章存档

2012年(1)

我的朋友
最近访客
ELF

分类: LINUX

2012-05-28 12:17:02

Linux ELF  ELF = Executable and Linkable Format,可执行连接格式,是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。扩展名为elf。工具接口标准委员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式。假定开发者定义了一个二进制接口集合,ELF标准用它来支持流线型的软件发展。应该减少不同执行接口的数量。因此可以减少重新编程重新编译的代码。
编辑本段文件格式
  Linking View   Elf header
Program header   table optional
section1
……
section n
section header   table
  Exection View   Elf header
Program header   table
segment 1
section 2
……
segment header   table
  一个ELF头在文件的开始,保存了路线图(road map),描述了该文件的组织情况。sections保存着object 文件的信息,从连接角度看:包括指令,数据,符号表,重定位信息等等。特别sections的描述会出项在以后的第一部分。第二部分讨论了段和从程序的执行角度看文件。  
假如一个程序头表(program header table)存在,那么它告诉系统如何来创建一个进程的内存映象。被用来建立进程映象(执行一个程序)的文件必须要有一个程序头表(program header table);可重定位文件不需要这个头表。一个section头表(section header table)包含了描述文件sections的信息。每个section在这个表中有一个入口;每个入口给出了该section的名字,大小,等等信息。在联接过程中的文件必须有一个section头表;其他object文件可要可不要这个section头表。   注意: 虽然图显示出程序头表立刻出现在一个ELF头后,section头表跟着其他section部分出现,事实是的文件是可以不同的。此外,sections和段(segments)没有特别的顺序。只有ELF头(elf header)是在文件的固定位置。
阅读(632) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~