Hvad er EXEC-filformatet?
Eksekverbare filer til Unix og Unix-lignende systemer kan gemmes med filendelsen .exec. En .exec-fil kan indeholde stort set ethvert program, der kan køres på et givet operativsystem - enten en kompileret binær fil (såsom en ELF binær fil på Linux/Unix) eller et almindeligt tekst-script. .exec har sit modstykke i form af .exe-filer på Windows-systemer.
Som regel på Unix-systemer gemmes eksekverbare filer uden nogen filendelse - .exec-suffikset bruges til at markere eksekverbare filer i filhåndteringsprogrammer og IDE'er på macOS, Linux eller FreeBSD for at skelne det kørbare output fra kildefiler.
Evnen til at eksekvere en .exec-fil bestemmes af filens rettigheds-bits og dens interne header, ikke filendelsen. Kernen tjekker magic bytes ved offset 0: ELF-binære filer starter med \x7FELF, macOS Mach-O-binære filer med FEEDFACE, og scripts med #! efterfulgt af en sti til en fortolker (f.eks. #!/bin/bash for et .sh-script).
.exec-filer kan køres fra kommandolinjen (shell). På macOS er det eksekverings-bitten (x-rettighedsattributten), der betyder noget - en fil kører korrekt med eller uden .exec-filendelsen. Før du kører en ukendt .exec-fil, bør du bruge kommandoen file til at bekræfte dens faktiske type.
Sikkerhed og tryghed
RISIKO: HIGHEn eksekverbar fil er den filtype med højest risiko at køre fra en utroværdig kilde: en .exec kører med dine brugerrettigheder og kan læse, ændre, kryptere eller slette dine filer og downloade mere kode. Før du kører en, du ikke selv har bygget: kør „file file.exec“ for at se, hvad det er, og hvis det er et tekst-script, så læs det først. På macOS vil Gatekeeper som standard blokere usignerede/unotarized binære filer - den advarsel er der for din beskyttelse. Brug aldrig blindt „chmod +x“ og kør en fil fra et forum, en e-mail eller en tilfældig download. Filendelsen „.exec“ giver ingen sikkerhed; stol på kilden, ikke suffikset.
Formatdetaljer
kort fortalt- Applikations/IDE eksport-markør - Visse build-værktøjer og apps navngiver deres producerede kørbare artefakt *.exec udelukkende som en mærkat; den reelle type nedenunder er stadig ELF/Mach-O/script.
Programmer der åbner EXEC-filer
Tekniske detaljer
dyb specifikation| Kodning | Binær (ELF eller Mach-O kompileret kode) eller almindelig tekst (fortolker-script med shebang) |
| Binært format på Linux/Unix | ELF (Executable and Linkable Format) - magic bytes 7F 45 4C 46 („\x7FELF“) ved offset 0 |
| Binært format på macOS | Mach-O - magic FE ED FA CE (32-bit) eller FE ED FA CF (64-bit); fat/universal binære filer bruger CA FE BA BE |
| Script-markør | Shebang (#!) ved byte-offset 0 efterfulgt af sti til fortolker, f.eks. #!/usr/bin/env python3 - fortolkes af kernen før eksekvering |
| MIME-type | application/x-executable (Linux binær); application/x-mach-binary (macOS); application/x-shellscript (tekst-script) |
| Eksekveringskontrol | Unix rettigheds-bits - eksekverings-bitten (x) skal være sat; selve .exec-filendelsen ignoreres af kernen |
| Målplatform | Linux, macOS, BSD-varianter (FreeBSD, OpenBSD, NetBSD), Solaris og andre Unix-lignende systemer |
| Byte-orden | Little-endian for x86-64 og ARM (mest moderne hardware); big-endian på ældre RISC Unix-platforme såsom SPARC og MIPS |
| Typisk filstørrelse | 1 KB (minimalt shell-script) til titusindvis af MB (statisk linket kompileret binær fil) |
| Arkitektur-kodning | Indlejret i ELF e_machine-feltet (x86-64 = 0x3E, ARM64 = 0xB7, RISC-V = 0xF3) eller Mach-O cputype/cpusubtype-felter |
| Kodeintegritet | Ingen iboende tjeksum i formatet; macOS understøtter kodesignering via codesign-værktøjet; Linux afhænger af eksterne GPG- eller pakkehåndterings-signaturer |
| Komprimering | Ikke indbygget i formatet; binære filer kan være UPX-pakkede eller pakket ind i et selvudpakkende shell-script |
| Konvention for filendelse | Suffikset .exec er uformelt - de fleste indfødte Unix-eksekverbare filer har ingen filendelse; operativsystemet bruger magic bytes, ikke filnavnet, til at bestemme, hvordan filen skal køres |
| Windows-modstykke | .exe (PE/COFF-format) - filendelsen er obligatorisk på Windows, i modsætning til .exec som er valgfri på Unix |
| Inspektionskommando | Kommandoen file identificerer den faktiske binære type (ELF, Mach-O eller script-fortolker) uanset .exec-filendelsen |
| Udgivet | N/A (extension-less executables predate the .exec label; concept from early Unix) |
| Seneste version | N/A - .exec is a convention, not a versioned format |
| Specifikation | refspecs.linuxfoundation.org |
EXEC-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om EXEC-filer.