Portable Executable

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
Portable Executable
拡張子 .exe.obj.dll.sys
マジックナンバー MZ 0x00(×10) PE 0x00 0x00
開発者 マイクロソフト
種別 バイナリ実行可能オブジェクト共有ライブラリ
派生元 COFF
テンプレートを表示

Portable Executable (PE) は、主に32ビット及び64ビット版のMicrosoft Windows上で使用される実行ファイルファイルフォーマットを指す。PEフォーマット自体はオペレーティングシステムやハードウェアに依存しない設計となっているため、UEFIアプリケーションのバイナリフォーマットには、PEが採用されている。また、前述のUEFIとの整合性の確保やMicrosoft製OSとのマルチブート環境の構築を容易にする目的で、x86およびx86-64アーキテクチャにおけるLinuxカーネル実行ファイルブートローダなど、非Windows系OSのシステムファイルの一部にも用いられている。

EXEフォーマットとの互換性のため、MS-DOS上で実行すると「This program cannot be run in DOS mode.」のようにDOSで実行されない旨が表示され、プログラムが終了するなどのMS-DOSプログラムが先頭に付く。その後ろに、PE固有の識別子およびCOFFに似たデータ構造があり、MS-DOSヘッダによってそのオフセットが指されている。また、さまざまなCPUアーキテクチャに対応するため、内部に判別用のフラグを持つ。実行時にDLLというファンクション群を動的にリンクし、コンポーネントレベルでのバグフィックス、互換性の維持が行われるようになっている。また、リソース領域にアイコン等を格納でき、GUI上で表示された場合アイコンがグラフィカルに表示され、ソフトウェア判別を容易にできる。

主な対応CPUアーキテクチャ[編集]

  • インテル i386 : 俗にx86と呼ばれるアーキテクチャ。i386以降のインテル及び互換CPU上にて、一般的なWindows及びx64版Windowsにて実行可能。Xboxでも標準実行形式として採用されている可能性がある。これはXboxがx86対応CPU及びWindows 2000のサブセットで構成されていることから推測できる。i386版のUEFIアプリケーションの記述にも用いられているほか、多くのLinuxディストリビューション上でも利用可能である。
  • Intel 64/AMD64 : 64ビット対応のx86命令。Windows XP x64 Edition及びWindows Vistaにて実行可能。x86-64版のUEFIアプリケーションの記述にも用いられているほか、同アーキテクチャ向けのGNU/Linuxシステム上でも利用可能である。
  • Alpha : Alphaプロセッサ上で動作するWindows NTでのみ実行可能。Alpha版Windowsは既に開発が終了している。
  • PowerPC : PowerPC版Windows NTでのみ実行可能。PowerPC版Windowsは既に開発が終了しているが、Xbox 360でも同形式が採用されている可能性が高い。これは同機がカスタムPowerPC及びWindows XPのサブセットで構成されていることから推測できる。
  • ARMMIPSSH-3/4 : Windows CEのサポートするアーキテクチャ。

外部リンク[編集]