ELF文件结构

ELF(Executable and Linkable Format)是Linux系统中目标文件和可执行文件的标准格式,采用灵活且高效的结构设计。

ELF头:位于文件的最开始,包含关键元信息:文件类型(可重定位/可执行/共享)、目标体系结构(如x86-64)、程序入口点地址、以及节头表(Section Header Table)和程序头表的偏移位置与条目数量。

节头表:是ELF文件的目录结构,记录了文件中每个节(Section)的名称、类型、偏移地址、大小等信息。链接器通过节头表定位和访问各个节的内容。

节(Sections):存放不同类别数据的区域,包括代码段、数据段、符号表、重定位信息等。每个节在节头表中都有对应的条目。

ELF的设计使得链接器可以高效地解析和操作目标文件内容。值得注意的是,文件中节的偏移地址和最终加载到内存的虚拟地址是两回事,链接器需要在重定位阶段处理这种映射关系。

链接到