.exe
.exe is a common filename extension denoting an executable file (the main execution point of a computer program) for DOS, OpenVMS, Microsoft Windows, Symbian or OS/2. Besides the executable program, many .exe files contain other components called resources, such as bitmap graphics and icons which the executable program may use for its graphical user interface.
File formats
There are several file formats which may be used by a file with a .exe extension:
DOS
- 16-bit DOS MZ executable
- The original DOS executable file format. These can be identified by the letters "MZ" at the beginning of the file in ASCII.
- 16-bit New Executable
- Introduced with multitasking MS-DOS 4.0,[citation needed] these can be identified by the "NE" in ASCII. These never became popular or useful for DOS and cannot be run by any other version of DOS, but they can usually be run by 16/32-bit Windows and OS/2 versions.[1]
OS/2
- 32-bit Linear Executable
- Introduced with OS/2 2.0, these can be identified by the "LX" in ASCII. These can only be run by OS/2 2.0 and higher.[citation needed] They are also used by some DOS extenders.
- Mixed 16/32-bit Linear Executable
- Introduced with OS/2 2.0, these can be identified by the "LE" in ASCII. This format is not used for OS/2 applications anymore, but instead for VxD drivers under Windows 3.x and Windows 9x, and by some DOS extenders.
Windows
- 32-bit Portable Executable
- Introduced with Windows NT, these are the most complex[citation needed] and can be identified by the "PE" in ASCII (although not at the beginning; these files also begin with "MZ"). These can be run by all versions of Windows and DOS (DOS runs the MZ section, Windows runs the NE or PE section). Using HX DOS Extender DOS can load the NE and PE sections. They are also used in BeOS R3, although the format used by BeOS somewhat violates the PE specification as it doesn't specify a correct subsystem.[citation needed] These can also be used on ReactOS
- 64-bit Portable Executable (PE32+)
- Introduced by 64-bit versions of Windows, this is a PE file with wider fields. In most cases, code can be written to simply work as either a 32 or 64-bit PE file.
Other
Besides these, there are also many custom EXE formats, such as W3 (a collection of LE files, only used in WIN386.EXE), W4 (a compressed collection of LE files, only used in VMM32.VXD), DL, MP, P2, P3 (last three used by Phar Lap extenders), and probably more.[citation needed]
When a 16-bit or 32-bit Windows executable is run by Windows, execution starts at either the NE or the PE, and ignores the MZ code. On the other hand, DOS cannot execute these files (except using HX DOS Extender, which supports PE files only). To prevent DOS from crashing, all Windows executable files should and usually do start with a "working" DOS program called a stub.,[2][3] simply displaying the message "This program cannot be run in DOS mode" (or similar) before exiting cleanly. A few dual-mode programs (MZ-NE or MZ-PE) (such as regedit[4] and some older WinZIP self extractors) include a more functional DOS section.[5]
See also
- Comparison of executable file formats
- Executable compression
- Fixed exe
- List of file formats § Object code, executable files, shared and dynamically linked libraries
References
- ↑ Plachy, Johannes (1997-08-25). "The Portable Executable File Format". Self-published. Retrieved 2014-01-10.
- ↑ "/STUB (MS-DOS Stub File Name)". MSDN. Microsoft. Retrieved 10 January 2014.
- ↑ Sedory, Daniel B. (2004-10-12). "DOS Stub Program". The Starman's Realm. Self-published. Retrieved 2014-01-10.
- ↑ "Using Registry Editor in Real Mode". Support. Microsoft. 15 November 2006. Retrieved 10 January 2014.
- ↑ F. Ellermann (2014-01-22). "dostub.exe". Retrieved 2014-01-24.
External links
|