2016-12-05 4 views
0

ELFヘッダーでは、​​の値は1または2のいずれかで、32ビットまたは64ビットのオペレーティングシステムを示します。しかし歴史から、ELFは1993年にリリースされたSolaris 2.0で初めて登場したことがわかりました。しかし、広く使われている32ビットプロセッサPentium Proは1995年まで登場しませんでした。 なぜ、ELFヘッダには16ビット8ビット情報でさえ?なぜELFマジックナンバーに16ビットの情報がないのですか?

+0

@Someprogrammerdudeありがとうございました!私はいつも人々がPentiumま​​で16ビットアーキテクチャを使用していると考えていました。再度、感謝します! – JiangFeng

+0

@Someprogrammerdudeあなたはその答えを出すことができます。それを気にする? – davmac

答えて

6

最初の「広く使用されている」32ビットCPUはずっと古いあっIntel 80386ました。その後

我々は日と386

近いSolarisは、1990年代初頭に自分のマシンのためにSUNによって開発された

、への最初の64と同じ時間枠の周りから自分SPARCアーキテクチャの話を持っています実際に現れるようになりました。

ELF(略語Executable and Linkable Format)は、すべての主要なUNIXの亜種が純粋なまたはハイブリッド(think Motorola 68000)の32ビットシステムで動作した1980年代後半に開発されました。

0

EI_CLASSは、「オペレーティングシステム」のではなく、メモリモデルを識別しません。この設定は、さまざまなアドレス情報がファイルにエンコードされる方法を定義します。ターゲットレジスタの幅は必ずしも必要ではありません。

PCローダーは、ELFファイルに含まれるプログラムを実行するCPUと同じCPU上で実行されるため、EI_CLASSがコードフォーマットと一致します。ただし、ELFファイルは、8ビットおよび16ビットコントローラでも、移植可能なコード/デバッグ形式としても使用されます。さらに、事実上すべての16ビットCPUは64 KB以上のメモリを扱うことができるため、そのようなターゲットの場合にはは、そのようなターゲットに対してELFCLASS16に設定することはできません。

まとめると、それは広いポインタがあるどのくらいのビットは無関係だ、それはあなたが持つことができますどのくらいの仮想メモリのみ関連です。もちろん、一つはまだELFCLASS20(インテル8086を含む16ビットCPU、のための共通の値)のようなものを定義することによって、ELFファイルをよりコンパクトにでき、しかし、それはすでに述べたように、32ビットアーキテクチャは、そう、1993年に既に広く普及しました誰もそのようなことを定義することに気をつけなかった。

関連する問題