New Executable
拡張子 | .exe, .dll, .fon, .drv |
---|---|
マジック ナンバー | MZ 0x00(×10) NE |
開発者 | マイクロソフト |
種別 | 実行可能、共有ライブラリ、フォント |
包含物 | .fon |
派生元 | DOS MZ executable |
拡張 | Linear Executable |
New Executableとは、マイクロソフトの16ビットOSで採用された共有ライブラリおよび実行ファイルフォーマットの一つ。最初にMS-DOS 4.0で採用され、その後、Microsoft WindowsやOS/2で採用された。
特徴は、プロテクトモードを意識したセグメンテーションアーキテクチャに対応し、複数の連続しない64KB以下のファイルセグメントに対応していることである。
他のEXEフォーマットの拡張フォーマットと同様に互換性のために、対応しないオペレーティングシステムで実行した場合、対応していない旨を表示して終了する等のDOSプログラムを最初に付ける事になっている。その拡張ヘッダから指されたオフセットに'NE'と言うシグネチャで始まるファイルヘッダがあり、その後にセグメントテーブル等が数個並んでいる。
32ビットのWindowsアプリケーションにおいては、Portable Executableが使われるようになり、現役を退いた形になっている。
歴史
[編集]New Executable形式を使用してリリースされた最初の製品は、 1985 年のWindows 1.0であり、その後、1986 年にマルチタスクの MS-DOS 4.0 がリリースされた。これは、MS-DOS 開発の別のブランチであり、主流の MS-DOS バージョン 3.2 と 3.3 の間にリリースされ、「ヨーロッパ版 MS-DOS 4.0」と呼ばれることもある。
Windows の 32 ビット版および 64 ビット版では、NE 形式に代わってPortable Executable (PE)形式が採用され、OS/2 の 32 ビット プログラムでは NE に代わってLinear eXecutable (LX)形式が採用された。Windows 9xのVxDでもLE形式が使用されている。
互換性
[編集]NE実行ファイルは16ビットOS向けに設計されているが、32ビットWindowsでも実行可能である。但し、殆どのプログラムではエラーメッセージ"This program cannot be run in DOS mode"の出力、いわゆる「DOSスタブ」のみが含まれる。
Windows Vista以降、New Executables内のアイコンリソースは32ビットシェルでも抽出・表示されない。64ビット版WindowsではNE実行ファイルのネイティブサポートが完全に欠如している。これは、64ビットWindowsではエミュレーターを使わずにプロセッサ上で16ビットプログラムを実行できないためである。
これらのファイルは希少かつかなり複雑な性質を持つため、WinLite、PackWin、PKLite 2.01、SLR Optloader、OS/2用のNeLiteなど、ごく少数の.EXEパッカーのみがサポートしている。NE形式は、 Microsoft Windowsのビットマップフォントの(非実行形式の)コンテナとしても現在も使用されている。