Unix 最早的可执行文件格式为a.out格式,它的设计非常的简单,以至于后来共享库这个概念出现的时候,a.out格式就变得捉襟见肘;
于是人们设计了COFF格式来解决这个问题,COFF是由Unix System V Release 3首先提出并使用的格式规范,
后来微软公司基于COFF格式,制定了PE格式标准;
System V Release 4在COFF格式的基础上引入了ELF格式;
这就是为什么目前PE和ELF格式如此相似的原因。
四种ELF文件类型:
1:*.o 可重定位文件(Relocatable File);
2:*.exe 可执行文件(Executable File)
3:*.so *.dll 共享目标文件(Shared Object File)
4:*.dump 核心转储文件(Core Dump File)