The ELF object file format is widely adopted by many UNIX-like operating systems. Exploring the historical evolution of ELF and its connection to the System V ABI offers interesting insights.
The ELF format comprises the generic specification, processor-specific specifications, and OS-specific specifications. Three key documents often emerge when searching for the generic specification:
- Tool Interface Standard (TIS) Portable Formats Specification, version 1.2 on https://refspecs.linuxfoundation.org/
- System V Application Binary Interface – DRAFT – 10 June 2013 on www.sco.com
- Oracle Solaris Linkers and Libraries Guide
The TIS specification divides ELF into a generic specification, a processor-specific specification (x86), and an OS-specific specification (System V Release 4). However, it has not been updated since 1995. The Solaris guide, though well-written, includes Solaris-specific extensions that are not applicable to Linux and *BSD. Therefore, the primary reference is the System V ABI hosted on www.sco.com, which dedicates Chapters 4 and 5 to the ELF format.
To explore the history of ELF and understand its relationship with the System V ABI, click on the reference below.
Reference to the Article- MaskRay