Executable and Linkable Format

From Wikipedia

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

Often referred to as ELF, a common standard in computing for executables and object code. First published in the Tool Interface Standard and the System V Application Binary Interface, it was quickly accepted among different vendors of UNIX systems.

Today (2001), the ELF format has replaced the proprietary (or sometimes just platform specific) executable formats in the Linux, Solaris, Irix, and some BSD operating systems.

The current version number of the official ELF standard is 1.2.

Other object code file format are a.out and COFF; ELF could be considered a "competitor" to those.


ELF file layout

Each ELF file is made up by one ELF header, followed by zero or more segments and zero or more sections. The segments contain information that is necessary for runtime execution of the file, while sections contain important data for linking and relocation. Each byte in the entire file is taken by no more than one section at a time, but there can be orphan bytes, which are not covered by a section. In the normal case of a UNIX executable one or more sections are enclosed in one segment. The segments and sections of the file are listed in a program header table and section header table respectivly.

On many UNIX systems the command

man elf

may provide some more details.