Hva er EXEC-filformatet?
Eksekverbare filer for Unix og Unix-lignende systemer kan lagres med filendelsen .exec. En .exec-fil kan inneholde praktisk talt alle programmer som er kjørbare på et gitt operativsystem - enten en kompilert binærfil (som en ELF-binærfil på Linux/Unix) eller et skript i ren tekst. .exec har sitt motstykke i form av .exe-filer på Windows-systemer.
Som en regel på Unix-systemer blir eksekverbare filer lagret uten filendelse - suffikset .exec brukes for å markere eksekverbare filer i filbehandlere og IDE-er på macOS, Linux eller FreeBSD, for å skille kjørbar utdata fra kildefiler.
Evnen til å kjøre en .exec-fil bestemmes av filens rettighetsbits og dens interne hode (header), ikke filendelsen. Kjernen sjekker «magic bytes» ved posisjon 0: ELF-binærfiler starter med \x7FELF, macOS Mach-O-binærfiler med FEEDFACE, og skript med #! etterfulgt av en bane til en tolk (f.eks. #!/bin/bash for et .sh-skript).
.exec-filer kan kjøres fra kommandolinjen (skallet). På macOS er det eksekveringsbiten (rettighetsattributtet x) som betyr noe - en fil kjører riktig med eller uten .exec-endelsen. Før du kjører en ukjent .exec-fil, bør du bruke kommandoen file for å bekrefte dens faktiske type.
Sikkerhet og trygghet
RISIKO: HIGHEn eksekverbar fil er den filtypen med høyest risiko å kjøre fra en utrygg kilde: en .exec kjører med dine brukerrettigheter og kan lese, endre, kryptere eller slette filene dine og laste ned mer kode. Før du kjører en du ikke har bygget selv: kjør «file fil.exec» for å se hva det er, og hvis det er et tekstskript, les det først. På macOS vil Gatekeeper blokkere usignerte/unotariserte binærfiler som standard - den advarselen er der for din beskyttelse. Bruk aldri blindt «chmod +x» og kjør en fil fra et forum, e-post eller tilfeldig nedlasting. Filendelsen «.exec» gir ingen sikkerhet; stol på kilden, ikke suffikset.
Formatdetaljer
i et nøtteskall- Applikasjon/IDE-eksportmarkør - Enkelte byggverktøy og apper navngir sine produserte kjørbare filer *.exec kun som en etikett; den reelle typen under er fortsatt ELF/Mach-O/skript.
Programmer som åpner EXEC-filer
Tekniske detaljer
dyp spesifikasjon| Koding | Binær (ELF eller Mach-O kompilert kode) eller ren tekst (tolkeskript med shebang) |
| Binærformat på Linux/Unix | ELF (Executable and Linkable Format) - magic bytes 7F 45 4C 46 («\x7FELF») ved posisjon 0 |
| Binærformat på macOS | Mach-O - magic FE ED FA CE (32-bit) eller FE ED FA CF (64-bit); fat/universal-binærfiler bruker CA FE BA BE |
| Skriptmarkør | Shebang (#!) ved posisjon 0 etterfulgt av bane til tolk, f.eks. #!/usr/bin/env python3 - tolkes av kjernen før eksekvering |
| MIME-type | application/x-executable (Linux-binær); application/x-mach-binary (macOS); application/x-shellscript (tekstskript) |
| Eksekveringskontroll | Unix-rettighetsbits - eksekveringsbiten (x) må være satt; selve .exec-endelsen ignoreres av kjernen |
| Målplattform | Linux, macOS, BSD-varianter (FreeBSD, OpenBSD, NetBSD), Solaris og andre Unix-lignende systemer |
| Byterekkefølge | Little-endian for x86-64 og ARM (mest moderne maskinvare); big-endian på eldre RISC Unix-plattformer som SPARC og MIPS |
| Typisk filstørrelse | 1 KB (minimalt skallskript) til titalls MB (statisk lenket kompilert binærfil) |
| Arkitekturkoding | Innebygd i ELF e_machine-feltet (x86-64 = 0x3E, ARM64 = 0xB7, RISC-V = 0xF3) eller Mach-O cputype/cpusubtype-felt |
| Kodeintegritet | Ingen iboende sjekksum i formatet; macOS støtter kodesignering via codesign-verktøyet; Linux støtter seg på eksterne GPG- eller pakkebehandler-signaturer |
| Komprimering | Ikke innebygd i formatet; binærfiler kan være UPX-pakket eller pakket inn i et selvutpakkende skallskript |
| Konvensjon for filendelse | Suffikset .exec er uformelt - de fleste innfødte Unix-eksekverbare filer har ingen filendelse; operativsystemet bruker magic bytes, ikke filnavnet, for å avgjøre hvordan filen skal kjøres |
| Windows-motstykke | .exe (PE/COFF-format) - filendelsen er obligatorisk på Windows, i motsetning til .exec som er valgfri på Unix |
| Inspeksjonskommando | Kommandoen «file» identifiserer den faktiske binærtypen (ELF, Mach-O eller skripttolk) uavhengig av .exec-endelsen |
| Utgitt | N/A (extension-less executables predate the .exec label; concept from early Unix) |
| Siste versjon | N/A - .exec is a convention, not a versioned format |
| Spesifikasjon | refspecs.linuxfoundation.org |
EXEC-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om EXEC-filer.