PE: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(Formatted and Moved into Stubs)
(+ links, used by which OS)
Line 5: Line 5:
If you did set up a [[Cygwin]] environment on your Windows machine, "PE" is the target format for your Cygwin GCC toolchain, which causes the unaware some headache when trying to link parts build under Cygwin with parts build under Linux or BSD (which use the ELF target by default). (Hint: You have to build a [[GCC Cross-Compiler]])
If you did set up a [[Cygwin]] environment on your Windows machine, "PE" is the target format for your Cygwin GCC toolchain, which causes the unaware some headache when trying to link parts build under Cygwin with parts build under Linux or BSD (which use the ELF target by default). (Hint: You have to build a [[GCC Cross-Compiler]])


The PE format is used by Windows 95 and higher, Windows NT 3.1 and higher, the Mobius and ReactOS. A modified but compatible version is used for .NET assemblies on both Windows and Linux (with Mono).
Operating Systems that use it: Windows 95/98/NT, the Mobius.


== See Also ==
== See Also ==
* MSDN Magazine: [http://msdn.microsoft.com/en-us/magazine/cc301805.aspx Inside Windows: An In-Depth Look into the Win32 Portable Executable File Format]
* [http://www.google.com/search?hl=en&q=Inside+Windows+PE+format&btnG=Google+Search MSDN] documentation about PE format
* PE Specification: [http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx latest edition, OOXML format], [http://download.microsoft.com/download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/pecoff.doc 1999 edition, DOC format]
* http://perso.wanadoo.fr/pierrelib/exec_formats/PE_v1.0.html
* http://perso.wanadoo.fr/pierrelib/exec_formats/PE_v1.0.html
* http://perso.wanadoo.fr/pierrelib/exec_formats/OMF_v1.1.html
* http://perso.wanadoo.fr/pierrelib/exec_formats/OMF_v1.1.html

Revision as of 12:22, 3 July 2008

This page is a stub.
You can help the wiki by accurately adding more contents to it.

With Windows 95/NT, a new executable file type was required. Thus was born the "PE" Portable Executable, which is still in use. Unlike its predecessors, WIN-PE is a true 32bit file format, supporting relocatable code. It does distinguish between TEXT, DATA, and BSS. It is, in fact, a bastardized version of the COFF format.

If you did set up a Cygwin environment on your Windows machine, "PE" is the target format for your Cygwin GCC toolchain, which causes the unaware some headache when trying to link parts build under Cygwin with parts build under Linux or BSD (which use the ELF target by default). (Hint: You have to build a GCC Cross-Compiler)

The PE format is used by Windows 95 and higher, Windows NT 3.1 and higher, the Mobius and ReactOS. A modified but compatible version is used for .NET assemblies on both Windows and Linux (with Mono).

See Also