Che cos'è il formato di file EXEC?
I file eseguibili per Unix e sistemi Unix-like possono essere salvati con l'estensione .exec. Un file .exec può contenere virtualmente qualsiasi programma eseguibile su un determinato sistema operativo - sia un binario compilato (come un binario ELF su Linux/Unix) o uno script interprete in formato testo semplice. .exec ha la sua controparte sotto forma di file .exe sui sistemi Windows.
Come regola sui sistemi Unix, i file eseguibili vengono salvati senza alcuna estensione - il suffisso .exec viene utilizzato per contrassegnare i file eseguibili nei file manager e negli IDE su macOS, Linux o FreeBSD, distinguendo l'output eseguibile dai file sorgente.
La capacità di eseguire un file .exec è determinata dai bit di permesso del file e dalla sua intestazione interna, non dall'estensione. Il kernel controlla i magic bytes all'offset 0: i binari ELF iniziano con \x7FELF, i binari Mach-O di macOS con FEEDFACE, e gli script con #! seguito dal percorso di un interprete (ad es. #!/bin/bash per uno script .sh).
I file .exec possono essere eseguiti dalla riga di comando (shell). Su macOS, ciò che conta è il bit di esecuzione (l'attributo di permesso x) - un file viene eseguito correttamente con o senza l'estensione .exec. Prima di eseguire un file .exec sconosciuto, usa il comando file per confermarne il tipo effettivo.
Sicurezza e incolumità
RISCHIO: HIGHUn eseguibile è il tipo di file a più alto rischio da eseguire se proviene da una fonte non attendibile: un .exec viene eseguito con i tuoi privilegi utente e può leggere, modificare, crittografare o eliminare i tuoi file e scaricare altro codice. Prima di eseguirne uno che non hai creato tu: esegui «file file.exec» per vedere di cosa si tratta e, se è uno script di testo, leggilo prima. Su macOS, Gatekeeper bloccherà i binari non firmati/non notarizzati per impostazione predefinita - quell'avviso è lì per la tua protezione. Non eseguire mai ciecamente «chmod +x» su un file proveniente da un forum, un'email o un download casuale. L'estensione «.exec» non conferisce alcuna sicurezza; fidati della fonte, non del suffisso.
Dettagli del formato
in sintesi- Marcatore di esportazione Applicazione/IDE - Alcuni strumenti di compilazione e app nominano il loro artefatto eseguibile prodotto *.exec puramente come etichetta; il tipo reale sottostante è comunque ELF/Mach-O/script.
Programmi che aprono file EXEC
Dettagli tecnici
specifiche approfondite| Codifica | Binario (codice compilato ELF o Mach-O) o testo semplice (script interprete con shebang) |
| Formato binario su Linux/Unix | ELF (Executable and Linkable Format) - magic bytes 7F 45 4C 46 («\x7FELF») all'offset 0 |
| Formato binario su macOS | Mach-O - magic FE ED FA CE (32-bit) o FE ED FA CF (64-bit); i binari fat/universali usano CA FE BA BE |
| Marcatore script | Shebang (#!) all'offset byte 0 seguito dal percorso dell'interprete, ad es. #!/usr/bin/env python3 - analizzato dal kernel prima dell'esecuzione |
| Tipo MIME | application/x-executable (binario Linux); application/x-mach-binary (macOS); application/x-shellscript (script di testo) |
| Controllo dell'esecuzione | Bit di permesso Unix - il bit eseguibile (x) deve essere impostato; l'estensione .exec stessa viene ignorata dal kernel |
| Piattaforma di destinazione | Linux, macOS, varianti BSD (FreeBSD, OpenBSD, NetBSD), Solaris e altri sistemi Unix-like |
| Ordine dei byte | Little-endian per x86-64 e ARM (hardware più moderno); big-endian su piattaforme Unix RISC legacy come SPARC e MIPS |
| Dimensione tipica del file | 1 KB (script shell minimo) a decine di MB (binario compilato collegato staticamente) |
| Codifica dell'architettura | Incorporata nel campo e_machine di ELF (x86-64 = 0x3E, ARM64 = 0xB7, RISC-V = 0xF3) o nei campi cputype/cpusubtype di Mach-O |
| Integrità del codice | Nessun checksum inerente al formato; macOS supporta la firma del codice tramite lo strumento codesign; Linux si affida a firme GPG esterne o del gestore pacchetti |
| Compressione | Non integrata nel formato; i binari possono essere compressi con UPX o racchiusi in uno script shell autoestraente |
| Convenzione sull'estensione | Il suffisso .exec è informale - la maggior parte degli eseguibili Unix nativi non ha estensione; il sistema operativo usa i magic bytes, non il nome del file, per determinare come eseguire il file |
| Controparte Windows | .exe (formato PE/COFF) - l'estensione è obbligatoria su Windows, a differenza di .exec che è opzionale su Unix |
| Comando di ispezione | Il comando file identifica il tipo di binario effettivo (ELF, Mach-O o interprete di script) indipendentemente dall'estensione .exec |
| Rilasciato | N/A (extension-less executables predate the .exec label; concept from early Unix) |
| Ultima versione | N/A - .exec is a convention, not a versioned format |
| Specifica | refspecs.linuxfoundation.org |
Conversioni EXEC
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file EXEC.