可執行與可鏈接格式

可执行与可链接格式（，缩写 ，此前的写法是Extensible Linking Format），常被称为ELF格式，在计算中，是一种用于可执行文件、目标代码、共享库和核心转储（core dump）的标准文件格式。首次发布于一个名为System V Release 4（SVR4）的Unix操作系统版本中关于应用二进制接口（ABI）的规范中，并且此后不久发布于工具接口标准（Tool Interface Standard），随后很快被不同Unix发行商所接受。1999年，这种格式被86open项目选为x86架构处理器上的Unix和类 Unix系统的标准二进制文件格式。

按照设计，ELF格式灵活性高、可扩展，并且跨平台。比如它支持不同的字节序和地址范围，所以它不会不兼容某一特别的CPU或指令架构。这也使得ELF格式能够被运行于众多不同平台的各种操作系统所广泛采纳。

文件格式   
每个 ELF 文件都由一个 ELF 首部和紧跟其后的文件数据部分组成。数据部分可以包含：
程序头表（Program header table）：描述 0 个或多个内存段信息。
分段头表（Section header table）：描述 0 段或多段链接与重定位需要的数据。
程序头表与分段头表引用的数据，比如 .text .data。

内存段中包含了用于某个 ELF 文件运行时执行所需的信息，而片段中包含了用于链接和重定位的重要数据。整个文件中的任何一个字节至多只能属于一个片段，也就是说可能存在不属于任何片段的孤立字节。

技术规范 

 通用：
 System V Application Binary Interface 4.1版（1997年3月18日）
 System V ABI Update（2009年10月）
 AMD64：
 System V ABI, AMD64 Supplement
 Arm:
 ELF for the ARM Architecture
 IA-32：
 System V ABI, Intel386 Architecture Processor Supplement
 IA-64：
 Itanium Software Conventions and Runtime Guide（2000年9月）
 M32R：
 M32R ELF ABI Supplement 1.2版（2004年8月26日）
 MIPS：
 System V ABI, MIPS RISC Processor Supplement
 MIPS EABI documentation（2003年6月11日）
 Motorola 6800：
 Motorola 8- and 16- bit Embedded ABI
 PA-RISC：
 ELF Supplement for PA-RISC 1.43版（1997年10月6日）
 PowerPC：
 System V ABI, PPC Supplement
 PowerPC Embedded Application Binary Interface 32-Bit Implementation（1995年10月1日）
 64-bit PowerPC ELF Application Binary Interface Supplement 1.9版（2004年）
 RISC-V：
 RISC-V ELF Specification
 SPARC：
 System V ABI, SPARC Supplement
 S/390：
 S/390 32bit ELF ABI Supplement
 zSeries：
 zSeries 64bit ELF ABI Supplement
 Symbian OS 9：
 E32Image file format on Symbian OS 9

Linux标准规范（LSB）增修了上述一些规格中所指定的架构中相关的部分。例如关于System V ABI、AMD64 Supplement的案例。

工具
 GNU Binutils 是用来处理许多格式的目标文件(包括elf文件)一整套的编程语言工具程序，包括readelf，objdump，objcopy, nm, strings, strip, as, ar。
readelf显示elf文件
objdump显示elf和object格式文件，解码elf文件中高级语言语句所对应的机器语言语句段落，汇编语言语句段落。
nm显示elf文件中变量名和地址

引用 

可执行文件格式