Porovnání formátů spustitelných souborů - Comparison of executable file formats
Toto je srovnání binárních spustitelný formáty souborů který po načtení vhodným spustitelným souborem nakladač, mohou být přímo prováděny CPU, než aby byly interpretovány softwarem. Kromě binárního kódu aplikace mohou spustitelné soubory obsahovat záhlaví a tabulky s informacemi o přemístění a opravách a také různé druhy meta dat. Mezi uvedenými formáty jsou ty, které se nejčastěji používají PE (na Microsoft Windows ), ELF (na Linux a většina ostatních verzí Unix ), Mach-O (na Operační Systém Mac a iOS ) a MZ (na DOS ).
Název formátu | Operační systém | Přípona názvu souboru | Explicitní deklarace procesoru | Libovolný sekce | Metadata[A] | Digitální podpis | Řetězcový stůl | Tabulka symbolů | 64-bit | Tlusté binární soubory | Může obsahovat ikona |
---|---|---|---|---|---|---|---|---|---|---|---|
OS / 360 | OS / 360 a jeho nástupci, a VS / 9, sálové operační systémy | žádný | Ne | Ne | Ne | Ne | Ne | Ano | Ano | Ne | Ne |
GOFF | IBM MVS a z / OS sálové operační systémy | žádný | Ne | Ne | Ano | Ne | Ano | Ano | Ano | Ne | Ne |
a.out | Unixový | žádný | Ne | Ne | Ne | Ne | Ano[1] | Ano[1] | Rozšíření | Ne | Ne |
COFF | Unixový | žádný | Ano podle souboru | Ano | Ne | Ne | Ano | Ano | Rozšíření | Ne | Ne |
ECOFF | Ultrix, Tru64 UNIX, IRIX | žádný | Ano podle souboru | Ano | Ne | Ne | Ano | Ano | Ano | Ne | Ne |
XCOFF | IBM AIX, BeOS, „klasický“ Mac OS | žádný | Ano podle souboru | Ano | Ne | Ne | Ano | Ano[2] | Ano | Ne | Ne |
ELF | Unixový, OpenVMS, BeOS od R4 dále, Haiku | žádný | Ano podle souboru | Ano | Ano | Ano[3] | Ano | Ano[4] | Ano | Rozšíření[5] | Rozšíření[6] |
Mach-O[7] | Další krok, Operační Systém Mac, iOS, watchOS, tvOS | žádný | Ano podle sekce | Nějaký (omezeno na max. 256 sekcí) | Ano | Ano | Ano | Ano | Ano | Ano | Ne |
SOM | HP-UX, MPE / ix | ? | Neznámý | Neznámý | Ne | Ne | Neznámý | Ano | Ne | Neznámý | Ne |
Amiga Hunk | AmigaOS | žádný | Ne | Ano | Ano | Ne | Ne | Ano | Ne | Ano | Ne |
PEF[8] | „klasický“ Mac OS, BeOS (Pouze PPC) | žádný | Ano podle souboru | Ne | Ne | Ne | Ano | Ano | Ne | Ne | Ne |
CMD | CP / M-86, MP / M-86, Souběžné CP / M-86, Osobní CP / M-86, S5-DOS, Souběžný DOS, Souběžný DOS 286, FlexOS, S5-DOS / ST, S5-DOS / MT, Souběžný DOS 386, Multiuser DOS, Správce systému, SKUTEČNÉ / 32, DOS Plus | .CMD | Ne (x86 pouze) | Ano | Ne | Ne | Rozšíření | Rozšíření | Ne | Ne | Ne |
FlexOS 186 | FlexOS 186, FlexOS 286, S5-DOS / ST, S5-DOS / MT, 4680 OS, FlexOS 386, 4690 OS | .186 | Ne (186 /188 a vyšší) | Ano | Ne | Ne | Rozšíření | Rozšíření | Ne | Ne | Ne |
FlexOS 286 | FlexOS 286, S5-DOS / ST, S5-DOS / MT, 4680 OS, FlexOS 386, 4690 OS | .286 | Ne (286 a vyšší) | Ano | Ne | Ne | Rozšíření | Rozšíření | Ne | Ne | Ne |
CP / M-68K | CP / M-68K, Souběžný DOS 68K, FlexOS 68K | 0,68 tis | Ne (68000 a vyšší) | Ano | Ne | Ne | Neznámý | Neznámý | Ne | Ne | Ne |
COM (CP / M) | CP / M, MP / M, Souběžné CP / M, Osobní CP / M | .COM | Ne (8080 /Z80 pouze) | Rozšíření (BDOS Pouze 3 a vyšší) | Ne | Ne | Ne | Ne | Ne | Rozšíření | Ne |
COM (DOS) | DOS, OS / 2, Okna (kromě 64bitových vydání), Souběžné CP / M-86 (BDOS Pouze 3.1), Souběžný DOS, Souběžný DOS 286, FlexOS, Souběžný DOS 386, Multiuser DOS, Správce systému, SKUTEČNÉ / 32, DOS Plus | .COM | Ne (x86 pouze) | Ne | Rozšíření (Novell / Caldera VERZE atd.) | Ne | Ne | Ne | Rozšíření | Rozšíření | Ne |
MZ (DOS) | DOS, OS / 2, Okna (kromě 64bitových vydání), Souběžný DOS 286, FlexOS, Souběžný DOS 386, Multiuser DOS, Správce systému, SKUTEČNÉ / 32, DOS Plus | .EXE | Ne (x86 pouze) | Ano | Rozšíření(Novell / Caldera VERZE atd.) | Ne | Rozšíření | Rozšíření | Rozšíření | Ne | Ne |
MZ (GEM) | KLENOT, ViewMAX | .APP / .ACC | Ne (x86 pouze) | Ano | Ne | Ne | Neznámý | Neznámý | Ne | Ne | Neznámý |
NE | MS-DOS 4.0 (multitasking), OS / 2, Okna, HX DOS Extender | .EXE | Neznámý | Neznámý | Neznámý | Ne | Neznámý | Neznámý | Ne | Ne | Ano |
LE, (W3, W4 ) | OS / 2 (Pouze 2.0 a vyšší), někteří DOS extendery | .EXE | Ano podle souboru (286 a vyšší) | Ano | Ano | Ne | Ano | Ano | Ne | Ne | Ano |
LX | OS / 2 (Pouze 2.0 a vyšší), některé 32bitové DOS extendery | .EXE | Ano podle souboru | Ano | Ano | Ne | Ano | Ano[9] | Ne | Ne | Ano |
PE | Okna, ReactOS, HX DOS Extender, BeOS (Pouze R3) | .EXE | Ano podle souboru | Ano | Ano | Ano[10] | Ano | Ano | Ne | Ne | Ano |
PE32 + | Okna (Pouze 64bitové edice) | .EXE | Ano podle souboru | Ano | Ano | Ano | Ano | Ano | Ano | Ano[11] | Ano |
PIM /XIP | PalmDOS (MINIMAX pouze aplikace) | .PIM /.XIP | Ne (x86 pouze) | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne |
DL | MS-DOS Správce systému aplikace (Řada HP LX pouze) | .EXM | Ne (186 /188 a vyšší) | Ano | Ne | Ne | Ne | Ne | Ne | Ne | Ne |
MP | Phar Lap DOS extendery | .EXP | Neznámý (286 a vyšší) | Ano | Ne | Ne | Neznámý | Neznámý | Ne | Ne | Ne |
P2 | Phar Lap 16-bit DOS extendery | .EXP | Neznámý (286 a vyšší) | Ano | Ne | Ne | Neznámý | Neznámý | Ne | Ne | Ne |
P3 | Phar Lap 32-bit DOS extendery | .EXP | Neznámý (386 a vyšší) | Ano | Ne | Ne | Neznámý | Neznámý | Ne | Ne | Ne |
GEOS | PC / GEOS, Soubor Geoworks, NewDeal Office, Soubor pekárny | .GEO | Neznámý (x86 pouze) | Neznámý | Neznámý | Ne | Neznámý | Neznámý | Ne | Ne | Neznámý |
Poznámky
- ^
- Metadata se příležitostně používají k popisu řídících dat používaných v softwarových architekturách, které jsou abstraktnější nebo konfigurovatelnější. Většina formátů spustitelných souborů zahrnuje tzv. Metadata, která specifikují určitá, obvykle konfigurovatelná chování runtime charakteristiky. Je však obtížné, ne-li nemožné přesně rozlišit „metadata“ programu od obecných aspektů výpočetní architektura uloženého programu; pokud to stroj přečte a bude na něj reagovat, je to výpočetní návod a předpona „meta“ má malý význam.
- v Jáva, formát souboru třídy obsahuje metadata používaná Překladač Java a Virtuální stroj Java na dynamicky propojovat třídy a podporovat odraz. The Platforma Java, standardní vydání protože J2SE 5.0 obsahuje a zařízení pro metadata povolit další poznámky, které používá vývojové nástroje.
- v MS-DOS, Soubor COM formát ano ne obvykle obsahují metadata, zatímco EXE soubor a Windows PE formáty ano. Tato metadata mohou zahrnovat společnost, která program zveřejnila, datum vytvoření programu, číslo verze a další.
- V .NET Framework spustitelný formát, jsou zahrnuta další metadata, která umožňují odraz za běhu.
Reference
- ^ A b "a.out (5) - Manuální stránky FreeBSD". Freebsd.org. 10. června 2010. Citováno 9. července 2012.
- ^ "Reference souborů - formát souboru objektu XCOFF". IBM.
- ^ "elfsign - Freecode". Freshmeat.net. Citováno 9. července 2012.
- ^ „(3elf) - rutiny knihovny elfů“. Uw714doc.sco.com. 25. dubna 2004. Citováno 9. července 2012.
- ^ „FatELF: Universal Binaries for Linux“. Icculus.org. Citováno 9. července 2012.
- ^ "ElfIcon: Ikony pro soubory ELF". Compholio.com. Citováno 9. července 2012.
- ^ „Mac OS X ABI Mach-O File Format Reference“. Apple Inc. 4. února 2009. Citováno 9. července 2012.
- ^ "MPW Command Reference - DumpPEF". Apple Inc. Archivováno od originál dne 12. května 2008.
- ^ "LX - Popis formátu lineárního eXecutable modulu". 3. června 1992. Citováno 7. července 2019.
- ^ „Přenosný spustitelný formát podpisu Windows Authenticode“. Microsoft. 29. srpna 2008. Citováno 9. července 2012.
- ^ „Podrobnosti implementace WOW64“. Microsoft. 31. května 2018. Citováno 5. září 2018.