New Executable

From Wikipedia, the free encyclopedia
Jump to: navigation, search
New Executable
Filename extension .exe, .dll
Type of format Executable, dynamic-link library
Extended from DOS MZ executable

The New Executable (abbreviated NE or NewEXE) is a 16-bit .exe file format, a successor to the DOS MZ executable format. It was used in Windows 1.0, multitasking MS-DOS 4.0,[1] Windows 2.x, OS/2 1.x, Windows 3.x, and the OS/2 subset of Windows NT up to version 5.0 (Windows 2000). A NE is also called a segmented executable.[2]

History[edit]

The first product to be released using the New Executable format was Windows 1.0 in 1985, followed by the 1986 multitasking MS-DOS 4.0, which was a separate branch of MS-DOS development, released between mainstream MS-DOS versions 3.2 and 3.3, and sometimes referred to as "European MS-DOS 4.0".

OS/2 1.0 was not released until 1987, but the "target operating system" field in the file header reserves value 01 for OS/2, and 02 for Windows,[3] suggesting that the format was designed with OS/2 already in mind, the Joint Development Agreement between IBM and Microsoft for OS/2 having been signed in August 1985, a few months before Windows 1.0 was released in November 1985.

The Portable Executable (PE) format replaced NE format in 32-bit and 64-bit versions of Windows, while Linear Executables (LX) replaced NE for 32-bit programs in OS/2.

Compatibility[edit]

While designed for 16-bit OSes, NE executables can be run on 32-bit Windows. Beginning with Windows Vista, icon resources inside New Executables are not extracted and shown even by the 32-bit shell.[4] 64-bit versions of Windows completely lack native support for running NE executables, because 64-bit Windows can't run 16-bit programs on the processor without the help of an emulator.

Due to the rare and fairly complex nature of these files, only a few .EXE packers support it: WinLite, PackWin, PKLite 2.01, and SLR Optloader or NeLite for OS/2. The NE format is also still used as (non-executable) container for .fon Microsoft Windows bitmapped fonts.

DOS stub[edit]

New (NE), linear (LX), and portable (PE) executables retain the DOS MZ format file header for backward compatibility with DOS. When run under DOS, a so-called DOS stub is executed which usually prints a message and exits. However, Windows 1.0 executables have their file header formatted in such a way that DOS refuses to run them with the "program too large to fit in memory" error message, see Windows 1.0 Features.

See also[edit]

References[edit]