Cos’è POSIX?

La Portable Operating System Interface for Computing Environments (POSIX®) è un insieme di standard e specifiche che definiscono i modi in cui i programmi per computer interagiscono con un sistema operativo. Le applicazioni conformi a questi standard possono essere portate più facilmente su altre piattaforme che supportano anche le specifiche. Queste specifiche sono state ufficialmente adottate a livello internazionale e sono diventate richieste da alcuni clienti speciali nei settori governativo, della difesa e aerospaziale. Esistono diversi livelli di conformità alla famiglia di standard, che sono stati fortemente influenzati dalla progettazione della piattaforma UNIX®.

Ci sono stati molti tentativi per alleviare le difficoltà di sviluppo di software per più di una piattaforma di computer. Le differenze nella progettazione del sistema operativo, nei linguaggi di programmazione disponibili e nell’hardware creano problemi di compatibilità che non sono facilmente superabili. Esistono molte opinioni diverse su come affrontare al meglio le sfide dell’elaborazione multipiattaforma. POSIX® adotta un approccio basato su regole che governa il modo in cui le applicazioni interagiscono con la loro piattaforma sottostante, oltre a richiedere l’inclusione di alcune utility. Queste regole si applicano sia alle applicazioni che ai sistemi operativi e forniscono un modo standard per la comunicazione tra i due.

L’obiettivo di POSIX® è fornire qualcosa noto come portabilità del codice sorgente. Il codice sorgente, la versione leggibile dall’uomo di un programma informatico utilizzato per creare applicazioni, viene “compilato” in codice macchina che può essere compreso dai microprocessori all’interno di tutti i computer. Processori diversi contengono diversi tipi di codice macchina; ciò significa che un programma non deve essere scritto solo con un sistema operativo in mente, ma con il particolare hardware su cui verrà eseguito il programma. La portabilità del codice sorgente significa che il codice sorgente di un programma può essere compilato per piattaforme diverse con poco o nessun sforzo, rendendo più efficiente il riutilizzo del codice esistente piuttosto che ricreare il programma da zero.

Molte grandi organizzazioni che acquistano un’ampia varietà di hardware e software sono giunte a considerare la famiglia di standard POSIX® come una caratteristica importante o addirittura essenziale per i prodotti che acquistano. L’Istituto degli ingegneri elettrici ed elettronici (IEEE), l’Organizzazione internazionale per la standardizzazione (ISO) e la Commissione elettrotecnica internazionale (IEC) hanno approvato gli standard POSIX® come IEEE 1003 e ISO/IEC 9945. Questa adozione internazionale ha reso gli standard popolari con clienti governativi. Alcuni clienti militari e aerospaziali richiedono gli standard per facilitare l’adattamento delle applicazioni alle piattaforme informatiche specializzate utilizzate in quei campi. La US Navy, ad esempio, ha incorporato gli standard nel suo Open Architecture Computing Environment, un’iniziativa che mira a mantenere l’interoperabilità nel software che alimenta navi da guerra, veicoli aerei senza equipaggio e sommergibili.

POSIX® è una famiglia di standard correlati piuttosto che una singola specifica. Alcuni sono ben supportati mentre altri no. Esistono anche diversi livelli di supporto, con prodotti software “conformi” strettamente aderenti agli standard e prodotti “conformi” che supportano solo alcuni di essi. Molte delle specifiche POSIX® erano basate sui sistemi operativi UNIX®, quindi un certo numero di piattaforme UNIX® e simili a UNIX® supportano gli standard immediatamente. Alcune altre piattaforme supportano IEEE 1003 tramite l’uso di software aggiuntivo.