AllExperts > Encyclopedia 
Search      
Find out about volunteering to AllExperts

Executable and Linkable Format: Encyclopedia BETA


Free Encyclopedia
 Index · Browse A-Z  · Questions and Answers ·
Encyclopedia

Browse A-Z
ABCDEFGHIJKLMNOPQRSTUVWXYZNum


License
Disclaimer

 
 
 
 
Free Online Courses
12 Weeks to Weight Loss
Take Charge of Stress
Learn How to Bake
Budgeting 101
Deeper Faith
DIY Fashion Makeover

       MORE E-COURSES
 
   

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Misc

Executable and Linkable Format



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, and later in the Tool Interface Standard, it was quickly accepted among different vendors of Unix systems.

Today the ELF format has replaced executable formats such as a.out and COFF in the Linux, Solaris, IRIX, and BSD operating systems, with the exception of Mac OS X, which uses Mach-O. Because other formats are proprietary, platform-specific, or less extensible than ELF, some users hold that ELF outperforms other formats, whereas others may consider it a competitor to the other formats. ELF is also used in the Itanium version of OpenVMS, a non-UNIX based operating system, as well as replacing the Preferred Executable Format on BeOS Revision 4 and later for x86 based computers (PPC computers stayed with PEF), which are also not UNIX-based. The PlayStation 2 console also uses ELF as its executable file format.

ELF file layout

Each ELF file is made up of 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 respectively.

On many UNIX systems the command

man elf

may provide some more details.

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 Solaris command for viewing ELF information in an elf file.

See also

* Portable Executable (PE)
* DWARF
* Mach-O

External links

*Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification Version 1.2
*Description of the ELF binary format
*Article "LibElf and GElf - A Library to Manipulate ELF Files" by Neelakanth Nadgir
*free ELF object file access library
*manual page
*Elf library routines
*ELFIO: a C++ library for reading and generating files in the ELF binary format.
*"A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux"
*An unsung hero: The hardworking ELF
*NetBSD ELF FAQ
*The ELF Object File Format by Dissection



Email this page
About Us | Advertise on This Site | User Agreement | Privacy Policy | Kids' Privacy Policy | Help
About and About.com are registered trademarks of About, Inc. The About logo is a trademark of About, Inc. All rights reserved.
This is the "GNU Free Documentation License" reference article from the English Wikipedia. All text is available under the terms of the GNU Free Documentation License. See also our Disclaimer.