New Executable

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
"Новый" исполняемый файл
Расширение .exe, .dll, .drv, .scr
Сигнатура MZ, NE
Разработчик Microsoft
Тип формата двоичный, исполняемый, объектный, динамическая библиотека
Расширен из .EXE
Развит в Linear Executable
Portable Executable

New Executable — «Новый исполняемый» — формат EXE-файлов, используемый в 16-битных операционных системах, таких, как Windows (до версий 3.x включительно), OS/2 1.x и MS-DOS (European MS-DOS 4.0). На данный момент формат файлов является устаревшим и практически не используется.

История[править | править код]

Формат NE впервые был применен в 1985 году в Windows. Позже его использовали в многозадачной European MS-DOS 4.0 в 1986[2][3], которая вышла между версиями 3.2 и 3.3 основной ветки развития MS-DOS, и в 1987 году в OS/2. Поле целевой операционной системы (платформы) в заголовке файла может принимать значения 01=OS/2 02=Windows 03=European MS-DOS 4.0, что указывает на то, что поддержка OS/2 была запланирована при разработке данного формата во время соглашения о совместной разработке OS/2 между IBM и Microsoft, начатой в августе 1985, за несколько месяцев до релиза Windows 1.0 в ноябре 1985.

Формат Portable Executable заменил формат NE в 32-битных и 64-битных версиях Windows, а формат Linear Executables заменил формат NE для 32-битных программ OS/2.

Общие сведения[править | править код]

В начале файла располагается стандартный заголовок DOS-программ. При запуске NE-программы из MS-DOS запустится DOS-программа (STUB). Обычно она выводит сообщение «This program requires Microsoft Windows» или «This program cannot be run in DOS mode».

Если программа запущена из Windows, OS/2 или European MS-DOS, система читает двойное слово по адресу 0x003C, которое является адресом в файле заголовка New Executable. Заголовок начинается с сигнатуры «NE» и содержит всю информацию о программе: размер стека и кучи, ресурсы, импортируемые и экспортируемые процедуры, точку входа в программу.

Совместимость[править | править код]

При запуске из Windows NT или OS/2 2.x NE-программы запускаются под Virtual DOS Machine (NTVDM.EXE и VDM, соответственно), которая обеспечивает их выполнение и почти полную совместимость с операционной системой DOS. Начиная с Windows NT 6.0 (Vista) оболочка Windows не поддерживает извлечение ресурсов из New Executable, поэтому, вместо иконки программы, в проводнике будет отображаться стандартная иконка .exe-файла. Также в 64-битных редакциях Windows запуск таких программ невозможен, так как 64-битные дескрипторы системы не могут быть урезаны до необходимых 16 бит.

Расширения[править | править код]

Исполняемые файлы в формате NE имеют расширения: .exe (программа), .dll (динамическая библиотека), .drv (драйвер), .scr (экранная заставка). Но файл Kernel.exe (он же KRNL286.EXE или KRNL386.EXE) выполняет двойные функции: он является динамической библиотекой, организующей взаимодействие с системой, и в это же время — программой, выполняющей функцию ядра Windows. Также DLL-библиотека в формате NE может быть запущена, как программа (в отличие от PE), что, однако, не может принести положительных результатов.