File eseguibile

Un file eseguibile (o semplicemente un eseguibile), in informatica, indica un file che contiene un programma eseguibile per un computer, ovvero un programma scritto in linguaggio macchina direttamente eseguibile dal processore: si distingue da un file sorgente, che contiene un programma scritto in un linguaggio di programmazione ad alto livello il quale può essere eseguito solo utilizzando un interprete o trasformandolo prima in eseguibile (codice oggetto + librerie) tramite un compilatore, o con una combinazione di questi due strumenti.

Descrizione

In generale, gli eseguibili sono dipendenti dalla piattaforma: per esempio, un file eseguibile per un sistema Microsoft Windows non è direttamente utilizzabile in sistemi Unix o Mac OS (a meno di non usare un software di emulazione).

Questa restrizione è dovuta a tre motivi:

Ogni sistema operativo ha una propria convenzione per distinguere i file eseguibili dai file che contengono dati. Alcuni sistemi utilizzano specifiche estensioni (per esempio ".exe" in MS-DOS e Microsoft Windows); altri fanno riferimento a speciali attributi del file indicati nei suoi permessi (come il permesso "x" di esecuzione dei sistemi Unix e Unix-like) o richiedono uno speciale marcatore in una posizione prestabilita all'interno del file stesso: ancora su Unix, per esempio, congiuntamente al bit "x", viene utilizzato anche il cosiddetto magic number, ovvero uno o più byte con valori prestabiliti collocati all'inizio del file che ne identificano il tipo, come nel caso dello shabang (questa idea è stata estesa ad altri sistemi operativi tra cui AmigaOS dove il magic number viene chiamato "magic cookie" o biscottino magico).

Normalmente, durante l'upload di un file eseguibile in memoria, il codice macchina viene sottoposto a un processo di rilocazione. In altre parole, tutti i riferimenti a indirizzi di memoria presenti nel codice vengono opportunamente traslati in funzione dell'indirizzo di base in cui il programma viene effettivamente caricato. Questo problema è mitigato dall'uso della memoria virtuale; può tuttavia essere necessaria la rilocazione delle librerie dinamiche.

Utilizzo

Viene realizzato in un dato formato, ed ha principalmente due scopi:

  1. ad essere caricato dal sistema operativo, quindi pronto per l'esecuzione;
  2. all'architettura hardware del processore che lo esegue.

Il termine eseguibile viene talvolta utilizzato in senso esteso per riferirsi anche a tutti quei programmi che possono essere eseguiti senza una previa traduzione esplicita (compilazione) in linguaggio macchina.

In questo caso esso potrebbe essere applicato anche a:

Note

  1. 1 2 Entro certi limiti è possibile usarli tramite Wine

Voci correlate

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica