本章介绍由汇编程序和链接编辑器生成的目标文件的可执行链接格式 (Excutable and Linking Format, ELF)。存在三种重要类型的目标文件。
可重定位目标文件包含代码节和数据节。此文件适合与其他可重定位目标文件链接,从而创建动态可执行文件、共享目标文件或其他可重定位目标文件。
动态可执行文件包含可随时执行的程序。此文件指定了 exec(2) 创建程序的进程映像的方式。此文件通常在运行时绑定到共享目标文件以创建进程映像。
共享目标文件文件包含适用于进行其他链接的代码和数据。链接编辑器可将此文件与其他可重定位目标文件和共享目标文件一起处理,以创建其他目标文件。运行时链接程序会将此文件与动态可执行文件和其他共享目标文件合并,以创建进程映像。
本章的第一节文件格式重点介绍目标文件的格式以及格式如何与创建程序相关。第二节动态链接重点介绍格式如何与装入程序相关。
程序可以使用 ELF 访问库 libelf 提供的函数来处理目标文件。有关 libelf 内容的说明,请参阅 elf(3ELF)。/usr/demo/ELF 目录下的 SUNWosdem 软件包中提供了使用 libelf 的源代码样例。