一开始的格式规范是 COFF,后来基于此微软制定了 PE 用于 Windows NT,System V Release 4 制定 ELF,这也是这两个如此相似的原因
可重定位文件
这类文件包含代码和数据,可以被用来链接成可执行文件或者共享目标文件
静态链接库可以被归为这一类(打包的目标文件)
例如 Linux 的 .o 文件 Windows 的 .obj
可执行文件
包含了可以直接执行的文件,它的代表就是 ELF 可执行文件,一般没有拓展名
Windows 下的 .exe
共享目标文件
这种文件包含了代码和数据:
- 链接器可以使用这种文件和其他的可重定位文件和共享目标文件链接,产生新的目标文件
- 动态链接器可以把几个这种共享目标文件和可执行文件结合,作为进程映像的一部分来运行
Linux 的 .so 和 Windows 的 .dll
核心转储文件
Core Dump File
当进程意外停止的时候,系统可以将该进程的地址空间的内容及终止的一些其他信息转储到核心转储文件
linux 下的 core dump