3

Windows Portable Executableは、マシンアーキテクチャ間で本当に移植可能ですか?もしそうなら、それはどのように機能しますか?そうでない場合、「Portable Executable」とはどういう意味ですか、または実行可能ファイルのどの部分が移植可能ですか?

ありがとう、Siva Chandran

4

4 に答える 4

6

実行可能ファイル自体は移植性がありません。PE形式は、異なるアーキテクチャの実行可能ファイルが同じPE形式を使用するという意味で「ポータブル」ですが、PEファイル内の実行可能コードは単一のプロセッサアーキテクチャに固有です。

実際には、これは、同じコンパイラとリンカーコードの多くを異なるアーキテクチャで再利用できること、および実行可能ファイルを調べるためのツールが(ある程度)「外部」実行可能ファイルで機能できることを意味します。

(ここではネイティブ実行可能ファイルについて話しています。.NETアセンブリもPE形式を使用しており、真に移植可能です。)

于 2009-11-22T17:02:21.680 に答える
0

ウィキペディアから:「「ポータブル」という用語は、オペレーティングシステムソフトウェアアーキテクチャのさまざまな環境におけるフォーマットの多様性を指します。」

http://en.wikipedia.org/wiki/Portable_Executable

于 2009-11-22T17:02:24.650 に答える
0

さて、それは、フォーマットがさまざまなプラットフォームで実行可能ファイルに使用できるという意味で移植可能です(SkyOSはELFに切り替える前にそれを使用していました)。プラットフォームに依存しないコードを使用したり、あるOSでPEファイルを作成した場合に別のOSで実行したりすることはできません。

于 2009-11-22T17:03:23.370 に答える
0

PEファイルは、バイナリアプリケーションデータの単なるコンテナです。さまざまなCPUアーキテクチャ(または.Netなどの非CPUソフトウェアアーキテクチャ)をターゲットにすることができます。それが「ポータブル」と呼ばれる理由です。

ただし、それらに含まれる各バイナリアプリケーションイメージは、1つのアーキテクチャにのみ適しています。

于 2009-11-22T17:09:16.533 に答える