私は用語を少し混乱させています。
リンカーへの入力として与えられるファイルはObject Fileと呼ばれます。リンカーはイメージ ファイルを生成し、それはローダーによって入力として使用されます。
「MS PE&COFF仕様書」より頂きました。
Q1. Binary Image
画像ファイルは、Binary File
または単にとも呼ばれますBinary
。右?
Q2. したがって、上記の用語によると、PE/ELF/COFF はイメージ ファイルの形式であり、オブジェクト ファイルではありません。右?しかしhttp://www.sco.com/developers/gabi/latest/ch4.intro.htmlは言う
この章では、ELF (Executable and Linking Format) と呼ばれるオブジェクト ファイル形式について説明します。オブジェクト ファイルには、主に 3 つのタイプがあります。
再配置可能ファイルには、他のオブジェクト ファイルとリンクして実行可能ファイルまたは共有オブジェクト ファイルを作成するのに適したコードとデータが含まれています。
実行可能ファイルには、実行に適したプログラムが含まれています。このファイルは、exec(BA_OS) がプログラムのプロセス イメージを作成する方法を指定します。
共有オブジェクト ファイルには、2 つのコンテキストでのリンクに適したコードとデータが含まれています。まず、リンク エディタ [ld(BA_OS) を参照] は、共有オブジェクト ファイルを他の再配置可能共有オブジェクト ファイルと一緒に処理して、別のオブジェクト ファイルを作成します。次に、ダイナミック リンカーは、プロセス イメージを実行可能ファイルやその他の共有オブジェクトと組み合わせて、プロセス イメージを作成します。
矛盾して、彼はオブジェクト ファイルとイメージ ファイルの両方が ELF 形式であると言っています。彼はオブジェクト ファイルとイメージ ファイルをまったく区別しておらず、一般的にオブジェクト ファイルと呼んでいます。それは間違っていませんか?
Q3. PEはCOFFから派生したものだと知っています。しかし、なぜ Microsoft の PE フォーマットの仕様は、Microsoft Portable Executable および Common Object File Format Specification と名付けられたのでしょうか。彼らはまだCOFFをサポートしていますか? もしそうなら、どのOSで?PE はずっと前に COFF に完全に取って代わったと思っていました。