New Executable

New Executableとは、マイクロソフトの16ビットオペレーティングシステム (OS) で採用された共有ライブラリおよび実行ファイルフォーマットの一つ。最初にMS-DOS 4.0で採用され、その後、WindowsやOS/2で採用された。

特徴は、プロテクトモードを意識したセグメンテーションアーキテクチャに対応し、複数の連続しない64KB以下のファイルセグメントに対応していることである。

他のEXEフォーマットの拡張フォーマットと同様に互換性のために、対応しないOSで実行した場合、対応していない旨を表示して終了する等の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のビットマップフォントの（非実行形式の）コンテナとしても現在も使用されている。

 外部リンク 
 Q65122: Executable-File Header Format | KnowledgeBase Archive

Category:オブジェクトファイルフォーマット