我在术语上很少混淆。
作为链接器输入的文件称为Object File。链接器生成一个Image 文件,该文件又用作加载程序的输入。
我从“MS PE & COFF Specification”得到这个
Q1。图像文件也称为Binary Image
,Binary File
或简称为Binary
. 对?
Q2。因此,根据上述术语,PE/ELF/COFF 是图像文件而不是目标文件的格式。对?但是http://www.sco.com/developers/gabi/latest/ch4.intro.html说
本章介绍目标文件格式,称为 ELF(可执行和链接格式)。目标文件主要分为三种类型。
可重定位文件包含适合与其他目标文件链接以创建可执行文件或共享目标文件的代码和数据。
可执行文件包含适合执行的程序;该文件指定 exec(BA_OS) 如何创建程序的进程映像。
共享对象文件包含适合在两个上下文中链接的代码和数据。首先,链接编辑器 [参见 ld(BA_OS)] 处理共享对象文件与其他可重定位和共享对象文件以创建另一个对象文件。其次,动态链接器将其与可执行文件和其他共享对象结合起来,以创建进程映像。
矛盾的是,他说目标文件和图像文件都是 ELF 格式,他根本没有区分目标文件和图像文件,而是通常将它们称为目标文件。是不是错了?
Q3。我知道PE源自COFF。但是为什么微软PE格式规范被命名为Microsoft Portable Executable《通用对象文件格式规范》。他们还支持COFF吗?如果他们,在哪个操作系统中?我以为PE很久以前就完全取代了COFF。