celf文件格式学习.pptxVIP

  • 2
  • 0
  • 约2.39千字
  • 约 50页
  • 2022-09-01 发布于上海
  • 举报
1. 概述;不管何种可执行文件格式,一些基本的要素是必须的,显而易见地,文件中应包含代码和数据。 因为文件可能引用外部文件定义的符号(变量和函数),因此重定位信息和符号信息也是需要的。 一些辅助信息是可选的,如调试信息、硬件信息等。基本上任意一种可执行文件格式都是按区间保存上述信息,称为段(Segment)或节(Section)。不同的文件格式中段和节的含义可能有细微区别,但根据上下文关系可以很清楚的理解,这不是关键问题。 最后,可执行文件通常都有一个文件头部以描述本文件的总体结构。;相对可执行文件有三个重要的概念:编译(compile)、连接(link,也可称为链接、联接)、加载(load)。源程序文件被编译成目标文件,多个目标文件被连接成一个最终的可执行文件,可执行文件被加载到内存中运行。因为本文重点是讨论可执行文件格式,因此加载过程也相对重点讨论。下面是LINUX平台下ELF文件加载过程的一个简单描述(CCSv5中.out文件的加载过程与LINUX平台下可执行文件的加载过程相似)。;1)内核首先读ELF文件的头部,然后根据头部的数据指示分别读入各种数据结构,找到标记为可加载(loadable)的段,把段内容加载到内存中。段的标记指示该段在内存中是否可读、可写,可执行。显然,文本段(.text)是只读可执行(-r -x),而数据段是可读可写(-r -w)。这种方式是利用了现代

文档评论(0)

1亿VIP精品文档

相关文档