コンテンツにスキップ

Linear Executable

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Linear Executable
拡張子.exe
マジック
ナンバー
MZ 0x00(×10) LE
開発者マイクロソフト
IBM
種別実行可能共有ライブラリ
派生元New Executable
拡張Portable Executable

Linear Executableとは、OS/2Microsoft Windowsそして、一部のDOSエクステンダで使われたオブジェクトファイルフォーマットである。最初にOS/2 2.0で導入された。

特徴はIA-32プロテクトモードを意識した、16ビットおよび32ビットの複数のセグメントに渡る実行イメージを保持可能なことである。特にWindowsにおいては、その性質上16ビットコードと32ビットコードが混在する必要のある仮想デバイスドライバ(VxD)で使われた。

他のEXEフォーマットの拡張フォーマットと同様に互換性のために、対応しないオペレーティングシステムで実行した場合、対応していない旨を表示して終了する等のDOSプログラムを最初に付ける事になっている。その拡張ヘッダから指されたオフセットに'LE'または'LX'と言うシグネチャで始まるファイルヘッダがある。(WindowsのVxDでは常にLE)

尚、Windows NT系に於いてはドライバも全てPortable Executableになっており使われていない。

歴史

[編集]

LEフォーマットは、1990年代初頭、 16ビットから32ビットコンピューティングへの移行期に初めて導入された。これは、16ビットアプリケーションで使用されていた従来のNew Executable(NE)フォーマットの拡張として開発された。メモリ管理とアドレス指定の制限により、32ビットの代替としてLEが開発された。LEは、システムを保護モードで動作させることでNEの機能を拡張した。

LX と呼ばれる形式の拡張バージョンは、OS/2 Warp 専用に開発され、LE 形式に対する更なる拡張をサポートした。

構造

[編集]

LE形式のファイルは、DOSシステムとの下位互換性を保つため、MZヘッダー(標準DOS実行可能ヘッダー)で始まる。MZヘッダー内のオフセットには0x3C、フィールドと呼ばれる32ビット値がありe_lfanew、拡張ヘッダー(LEヘッダー)へのポインタが格納される。LEヘッダーはASCII文字LE(OS/2 Warpの場合はLX)で始まる。Linear Executableでは、ファイルのオフセットと構造体は通常、LEヘッダーの先頭からの相対位置、またはファイル内の絶対オフセットとして定義される。

外部リンク

[編集]