Executable and Linkable Format

related topics
{system, computer, user}
{math, number, function}
{god, call, give}
{group, member, jewish}
{government, party, election}
{work, book, publish}

In computing, the Executable and Linkable Format (ELF, formerly called Extensible Linking Format) is a common standard file format for executables, object code, shared libraries, and core dumps. First published in the System V Application Binary Interface specification,[1] and later in the Tool Interface Standard,[2] it was quickly accepted among different vendors of Unix systems. In 1999 it was chosen as the standard binary file format for Unix and Unix-like systems on x86 by the 86open project.

Unlike many proprietary executable file formats, ELF is very flexible and extensible, and it is not bound to any particular processor or architecture. This has allowed it to be adopted by many different operating systems on many different platforms.

The ELF file format is also used as a generic object and executable format for binary images used with embedded processors like AVR's.

Contents

ELF file layout

Each ELF file is made up of one ELF header, followed by file data. The file data can include:

  • Program header table, describing zero or more segments
  • Section header table, describing zero or more sections
  • Data referred to by entries in the program header table or section header table

The segments contain information that is necessary for runtime execution of the file, while sections contain important data for linking and relocation. Any byte in the entire file can be owned by a section (and never more than one section), and there can be orphan bytes which are not owned by a section.

Tools

  • readelf is a Unix binary utility that displays information about one or more ELF files. A GPL implementation is provided by GNU Binutils.
  • elfdump is a command for viewing ELF information in an ELF file, available under Solaris and FreeBSD.
  • objdump provides a wide range of information about ELF files and other object formats. objdump uses the Binary File Descriptor library as a back-end to structure the ELF data.
  • The Unix file utility can display some information about ELF files, including the instruction set architecture for which the code in a relocatable, executable, or shared object file is intended, or on which an ELF core dump was produced.

Full article ▸

related documents
Μ-law algorithm
Finger protocol
Line code
Virtual machine
International Mobile Subscriber Identity
Rn (newsreader)
Frame (telecommunications)
Control unit
Atari Transputer Workstation
Basic rate interface
Manchester Mark I
BESM
Single UNIX Specification
Data service unit
Burnt-in timecode
Sinclair ZX80
Extended Binary Coded Decimal Interchange Code
Apple Attachment Unit Interface
Session Layer
VESA Display Data Channel
Liberty BASIC
Z-machine
Automatic callback
Packet analyzer
Killer application
Broadcast domain
Secure cryptoprocessor
Corel Paint Shop Pro
Motorola 56000
Multiple document interface