早期的UNIX系统使用a.out格式,随着操 作系统和硬件系统的进步,a.out格式的局限性越来越明显。新的可执行文件格式COFF在UNIX System VR3中出现,COFF格式相对a.out格式最大变化是多了一个节头表,能够在包含基础的文本段、数据段、BSS段之外包含更多的段,但是COFF对动态连接和C++程序的支持仍然比较困难。为了解决上述问题,UNIX系统实验室开发出ELF文件格式,它被作为应用程序二进制接口的一部分,其目的是替代传统的a.out格式。