New Executable: Difference between revisions

From DisNCord Community Wiki
Jump to navigation Jump to search
Dr. Shuppet (talk | contribs)
 
Dr. Shuppet (talk | contribs)
Line 1: Line 1:
'''New Executable''' (also known by its header identification '''NE''') is a 16-bit x86 executable format created by Microsoft in the 1980s. It was used for Windows applications from Windows 1.0 up to Windows Me, including components of Windows itself<ref group="note">Windows 95 and higher also support Win32 applications, which use a different format called Portable Executable).</ref>, and in OS/2 (from 2.x along with Linear Executable). Allegedly, it was also used in European MS-DOS 4.0 (also known as Multitasking MS-DOS), for Win32s applications, and for something called Borland Operating System Services<ref>https://www.fileformat.info/format/exe/corion-ne.htm</ref>.
Compared to the previous MZ format, whose primary feature are relocations, NE introduces the possibility of dynamic linking. Executables linked to the main one are called modules, later also dynamic-link library (DLLs). Non-DLL executables usually have an .exe extension, although a .com extension is also possible. DLLs on OS/2 have an .dll extension; on Windows, their extension can be .exe, .dll, .drv or .fon.
New Executable is also called ''segmented executable'', reflecting the fact it contains segments of code and data to be loaded into memory using segmentation (as opposed to a ''linear executable'').
== History ==
== History ==


Windows 1.0, multitasking DOS, OS/2, Windows 2.x and 3.x, Win32s (?). Various extensions of NE files in relation to the evolution of Windows. Replacement with LE, LX, and PE.
The format first appeared in 1985 with the release of Windows 1.0. However, it is implied that it was originally designed for OS/2, whose development started earlier the same year under the name CP/DOS. For Windows, it was the sole executable format for user applications until 3.1, and continued to be supported until Windows 10 (except 64-bit versions of Windows). For OS/2, it had this status until OS/2 2.0, and is natively supported in all subsequent versions of OS/2 (except OS/2 for PowerPC).
 
It was gradually replaced with PE in Windows 95 and higher and Windows NT, and with LX in OS/2 2.0 and higher. However, classical Windows up to Me contains 16-bit code in the OS itself, and the same possibly applies to OS/2.


== Header ==
== Header ==
Line 10: Line 18:


Dynamic linking, segmenting.
Dynamic linking, segmenting.
==Notes==
<references group="note"/>
==References==
<references />

Revision as of 14:50, 3 January 2023

New Executable (also known by its header identification NE) is a 16-bit x86 executable format created by Microsoft in the 1980s. It was used for Windows applications from Windows 1.0 up to Windows Me, including components of Windows itself[note 1], and in OS/2 (from 2.x along with Linear Executable). Allegedly, it was also used in European MS-DOS 4.0 (also known as Multitasking MS-DOS), for Win32s applications, and for something called Borland Operating System Services[1].

Compared to the previous MZ format, whose primary feature are relocations, NE introduces the possibility of dynamic linking. Executables linked to the main one are called modules, later also dynamic-link library (DLLs). Non-DLL executables usually have an .exe extension, although a .com extension is also possible. DLLs on OS/2 have an .dll extension; on Windows, their extension can be .exe, .dll, .drv or .fon.

New Executable is also called segmented executable, reflecting the fact it contains segments of code and data to be loaded into memory using segmentation (as opposed to a linear executable).

History

The format first appeared in 1985 with the release of Windows 1.0. However, it is implied that it was originally designed for OS/2, whose development started earlier the same year under the name CP/DOS. For Windows, it was the sole executable format for user applications until 3.1, and continued to be supported until Windows 10 (except 64-bit versions of Windows). For OS/2, it had this status until OS/2 2.0, and is natively supported in all subsequent versions of OS/2 (except OS/2 for PowerPC).

It was gradually replaced with PE in Windows 95 and higher and Windows NT, and with LX in OS/2 2.0 and higher. However, classical Windows up to Me contains 16-bit code in the OS itself, and the same possibly applies to OS/2.

Header

Various flags, used/unused, undocumented flags (like OS/2 compatability override mentioned in WLO article).

Sections

Dynamic linking, segmenting.

Notes

  1. Windows 95 and higher also support Win32 applications, which use a different format called Portable Executable).

References