Content deleted Content added
Guy Harris (talk | contribs) |
Guy Harris (talk | contribs) The processor declarations are by file, but multiple files can be combined into a multi-architecture binary, with different encapsulated files having different processor declarations (fat binary). |
||
(25 intermediate revisions by 21 users not shown) | |||
Line 1:
{{Short description|none}} <!-- This short description is INTENTIONALLY "none" - please see WP:SDNONE before you consider changing it! -->
{{Use dmy dates|date=December 2014}}
This is a comparison of binary [[executable]] [[file format]]s which, once loaded by a suitable executable [[Loader (computing)|loader]], can be directly executed by the CPU rather than
{{sticky header}}
{{sort-under}}
{| class="wikitable sortable sort-under sticky-header"
|-
! scope="col" | Format name
Line 11 ⟶ 14:
! scope="col" | [[Metadata]]{{efn|name=metadata}}
! scope="col" | [[Code signing|Digital signature]]
! scope="col" | [[String (computer science)|String
! scope="col" | [[Symbol table]]
! scope="col" | [[64-bit]]
! scope="col" | [[Fat binary|Fat binaries]]
! scope="col" | Can contain [[Icon (computing)|icon]]
|-
! scope="row" | [[Executable and Linkable Format|ELF]]
| [[Unix-like]], [[OpenVMS]], [[BeOS]] <small>from R4 onwards</small>, [[Haiku_(operating_system)|Haiku]], [[SerenityOS]]
| style="text-align: center;" | none
| {{Yes}} by file
| {{Yes}}
| {{Yes}}
| {{some|Extension<ref>{{cite web|url=http://freshmeat.net/projects/elfsign/ |title=elfsign – Freecode |publisher=Freshmeat.net |access-date=9 July 2012}}</ref>}}
| {{Yes}}
| {{Yes}}<ref name=3elf>{{cite web|url=http://uw714doc.sco.com/en/man/html.3elf/elf_getarsym.3elf.html |title=(3elf) - Elf library routines |publisher=Uw714doc.sco.com |date=25 April 2004 |access-date=9 July 2012}}</ref>
| {{Yes}}
| {{some|Extension<ref name=fatelf>{{cite web|url=http://icculus.org/fatelf/ |title=FatELF: Universal Binaries for Linux |publisher=Icculus.org |access-date=9 July 2012}}</ref>}}
| {{some|Extension<ref name=elficon>{{cite web|url=http://www.compholio.com/elfres/ |title=ElfIcon: Icons for ELF files |publisher=Compholio.com |access-date=9 July 2012}}</ref>}}
|-
! scope="row" | [[Portable Executable|PE]]
| [[Windows]], [[ReactOS]], [[HX DOS Extender]], [[BeOS]] <small>(R3 only)</small>
| style="text-align: center;" | <code>[[.EXE]]</code>
| {{Yes}} by file
| {{Yes}}
| {{Yes}}
| {{Yes}}<ref>{{cite web|url=http://www.microsoft.com/whdc/winlogo/drvsign/Authenticode_PE.mspx |title=Windows Authenticode Portable Executable Signature Format |publisher=Microsoft |date=29 August 2008 |access-date=9 July 2012}}</ref>
| {{Yes}}
| {{Yes}}
| {{No}}
| {{some|Only [[DOS MZ executable|MZ (DOS)]]<ref>[[Portable_Executable#History|History of Portable Executable]]</ref>}}
| {{Yes}}
|-
! scope="row" | [[Portable Executable|PE32+]]
| [[Windows]] <small>(64-bit editions only)</small>
| style="text-align: center;" | <code>[[.EXE]]</code>
| {{Yes}} by file
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{some|"Compiled Hybrid Portable Executable"}}
| {{Yes}}
|-
! scope="row" | [[Mach-O]]<ref name=macosx>{{cite web|url=https://developer.apple.com/library/mac/documentation/developertools/conceptual/MachORuntime/Reference/reference.html |title=OS X ABI Mach-O File Format Reference |publisher=Apple Inc. |date=2009-02-04 |url-status=dead |archive-url=https://web.archive.org/web/20140904004108/https://developer.apple.com/library/mac/documentation/developertools/conceptual/MachORuntime/Reference/reference.html |archive-date=September 4, 2014}}</ref>
| [[NeXTSTEP]], [[macOS]], [[iOS]], [[iPadOS]], [[watchOS]], [[tvOS]], [[visionOS]]
| style="text-align: center;" | none
| {{Yes}} by file or subfile of a [[Fat binary#NeXT's/Apple's multi-architecture binaries|multi-architecture binary]]
| {{Some}} <small>(limited to max. 256 sections)</small>
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}} ([[Fat binary#NeXT's/Apple's multi-architecture binaries|multi-architecture binary]])
| {{No}}
|-
! scope="row" | [[OS/360 Object File Format|OS/360]]
| [[OS/360 and successors]], and [[VS/9]], mainframe operating systems
| style="text-align: center;" | none
| {{No}}
Line 50 ⟶ 105:
| {{No}}
| {{No}}
| {{Yes}}<ref name=aout>{{cite web|url=http://www.freebsd.org/cgi/man.cgi?query=a.out&sektion=5 |title=a.out(5) - FreeBSD Man Pages |publisher=Freebsd.org |date=10 June 2010 |
| {{Yes}}<ref name=aout />
| {{Some|Extension}}
Line 93 ⟶ 148:
| {{Yes}}
| {{No}}
| {{No}}
|-
Line 147 ⟶ 176:
| {{No}}
|-
! scope="row" | [[Preferred Executable Format|PEF]]<ref name="apple-pef">{{cite web|
| [[Classic Mac OS|"classic" Mac OS]], [[BeOS]] <small>(PPC only)</small>
| style="text-align: center;" | none
Line 225 ⟶ 254:
| {{No}}
|-
! scope="row" | [[COM file
| [[DOS]], [[OS/2]], [[Windows]] <small>(except for 64-bit editions)</small>, [[Concurrent CP/M-86]] <small>([[Basic Disk Operating System|BDOS]] 3.1 only)</small>, [[Concurrent DOS]], [[Concurrent DOS 286]], [[FlexOS]], [[Concurrent DOS 386]], [[Multiuser DOS]], [[Datapac System Manager|System Manager]], [[REAL/32]], [[DOS Plus]]
| style="text-align: center;" | <code>[[COM file|.COM]]</code>
Line 243 ⟶ 272:
| {{No}} <small>([[Intel x86|x86]] only)</small>
| {{Yes}}
| {{Some|Extension}} <small>(Novell/Caldera [[VERSION.EXE|VERSION]] etc.)</small>
| {{No}}
| {{Some|Extension}}
Line 267 ⟶ 296:
| [[MS-DOS 4.0 (multitasking)]], [[OS/2]], [[Windows]], [[HX DOS Extender]]
| style="text-align: center;" | <code>[[.EXE]]</code>
| {{No}} <small>([[Intel x86|x86]] only)</small>
| {{
| {{
| {{No}}
| {{No}}
| {{Yes}}
| {{No}}
| {{some|Only [[DOS MZ executable|MZ (DOS)]]<ref>[[New_Executable#DOS_stub|DOS stub of New Executable]]</ref>}}
| {{Yes}}
|-
Line 298 ⟶ 327:
| {{No}}
| {{Yes}}
| {{Yes}}<ref>{{cite web |url=http://www.oldlinux.org/Linux.old/study/sabre/os/files/Executables/LX.txt |title=LX - Linear eXecutable Module Format Description |date=3 June 1992 |
| {{No}}
| {{No}}
| {{Yes}}
|-
Line 411 ⟶ 414:
{{notelist|refs=
<ref name=metadata>
:Metadata is casually used to describe the controlling data used in software architectures that are more abstract or configurable. Most executable file formats include what may be termed "metadata" that specifies certain, usually configurable, behavioral [[
:In [[Java (programming language)|Java]], the [[
:In [[
:In the [[.NET
}}
|