Indice dei contenuti dell'articolo:
Cos’è POSIX (Portable Operating System Interface)?
POSIX (Portable Operating System Interface) è un insieme di interfacce standard del sistema operativo basate sul sistema operativo Unix . Le specifiche POSIX più recenti – IEEE Std 1003.1-2017 – definiscono un’interfaccia e un ambiente standard che possono essere utilizzati da un sistema operativo ( OS ) per fornire l’accesso alle applicazioni conformi a POSIX. Lo standard definisce anche un interprete di comandi ( shell ) e programmi di utilità comuni. POSIX supporta la portabilità delle applicazioni a livello di codice sorgente in modo che le applicazioni possano essere create per essere eseguite su qualsiasi sistema operativo conforme a POSIX.
Una breve storia dello standard POSIX
Le interfacce POSIX sono state originariamente sviluppate sotto gli auspici di IEEE . Tuttavia, lo standard POSIX è ora in fase di sviluppo e manutenzione da parte dell’Austin Common Standards Revision Group, comunemente indicato come Austin Group .
L’Austin Group è un gruppo di lavoro congiunto composto da membri dell’IEEE, dell’Open Group e del Joint Technical Committee 1 dell’International Organization for Standardization ( ISO ) e della International Electrotechnical Commission (IEC). IEEE possiede il marchio POSIX. L’Open Group, proprietario del marchio Unix, è un consorzio globale che sviluppa standard tecnologici.
POSIX è nato dall’esigenza di rendere le applicazioni più portabili su diversi sistemi. Agli albori dell’informatica, i programmatori dovevano riscrivere le proprie applicazioni per ogni modello di computer e sistema operativo. La situazione iniziò a cambiare quando IBM introdusse la sua linea di computer System/360, che potevano eseguire tutti lo stesso sistema operativo, OS/360. Con questi nuovi sistemi, le applicazioni potrebbero essere rese più portatili, risparmiando enormi quantità di tempo di sviluppo.
Quando UNIX è nato, più o meno nello stesso periodo, si è anche mostrato promettente in quanto poteva funzionare su macchine di diversi produttori. Tuttavia, quando UNIX ha iniziato a creare versioni diverse, il porting del codice attraverso queste varianti UNIX è diventato difficile. La promessa della portabilità UNIX stava perdendo terreno.
Per risolvere questo problema di portabilità, POSIX è stata costituita negli anni ’80. Lo standard è stato definito sulla base di System V UNIX e BSD UNIX di AT&T, le due maggiori varianti all’epoca. È importante notare che POSIX non è stato formato per controllare il modo in cui i sistemi operativi sono stati costruiti: qualsiasi azienda era libera di progettare la propria variante UNIX come preferiva. POSIX si occupava solo di come un’applicazione si interfaccia con il sistema operativo. Nel linguaggio dei programmatori, un’interfaccia è il metodo con cui il codice di un programma può comunicare con un altro programma. L’interfaccia si aspetta che il Programma A fornisca un tipo specifico di informazioni al Programma B. Allo stesso modo, il Programma A si aspetta che il Programma B risponda con un tipo specifico di dati.
Cos’è lo standard POSIX?
In una parola: portabilità.
Oltre 60 anni fa, i programmatori dovevano riscrivere completamente il codice se volevano che il loro software funzionasse su più di un sistema. Ciò non accadeva molto spesso a causa delle spese necessarie, ma la portabilità divenne una caratteristica a metà degli anni ’60, non tramite POSIX, ma nell’arena dei mainframe.
Nel corso degli anni, le specifiche POSIX hanno continuato a essere riviste e riorganizzate. Un tempo, ogni standard era chiamato informalmente POSIX, seguito da un decimale e quindi dal numero dello standard. Ad esempio, POSIX.1 era lo standard per un’interfaccia di programmazione dell’applicazione nel linguaggio C e POSIX.2 era la shell standard e l’interfaccia di utilità per il sistema operativo. Questi standard sono stati ufficialmente denominati rispettivamente IEEE Std 1003.1 e IEEE Std 1003.2.
Ci sono stati anche emendamenti allo standard di base, come IEEE Std 1003.1b-1993, che si occupava di estensioni in tempo reale. Tuttavia, tutte le varie specifiche sono state riunite in un unico standard, IEEE Std 1003.1 , che è stato aggiornato l’ultima volta nel 2017 e pubblicato nel 2018. Ufficialmente, si chiama IEEE Std 1003.1-2017. Tuttavia, viene anche indicato come POSIX.1-2017 o, più informalmente, POSIX.1.
Lo standard POSIX ha anche altri nomi. The Open Group lo chiama The Open Group Base Specifications Issue 7, 2018 edition, e ISO/IEC lo chiama ISO/IEC 9945:2009. ISO/IEC ha adottato lo standard nel 2009 e ha aggiunto il Technical Corrigendum 1 alla fine del 2012 e il Technical Corrigendum 2 a marzo 2017, mettendolo alla pari con IEEE Std 1003.1-2017.
Le specifiche POSIX.1-2017 definiscono i servizi fondamentali necessari per creare applicazioni conformi a POSIX. Stabiliscono una semantica e una sintassi standard per aiutare gli sviluppatori a scrivere applicazioni portatili. POSIX.1 è composto dai seguenti quattro volumi:
- Definizioni di base. Fornisce definizioni comuni per le specifiche, incluse informazioni su termini, concetti, sintassi, funzioni di servizio e riga di comando
- Interfacce di sistema. Fornisce dettagli su termini e concetti relativi all’interfaccia e definisce le interfacce funzionali disponibili per le applicazioni che accedono a sistemi conformi a POSIX.
- Shell e utilità. Descrive i comandi e le utilità disponibili per le applicazioni che accedono a sistemi conformi a POSIX, incluso il linguaggio di comando utilizzato in tali sistemi.
- Fondamento logico. Include informazioni storiche sui contenuti dello standard e sul motivo per cui alcune funzionalità sono state aggiunte o rimosse.
POSIX.1 adotta un approccio “scrivi una volta, adotta ovunque” alle specifiche fornendo una serie di servizi fondamentali necessari per creare applicazioni in modo efficiente. Lo standard enfatizza le strutture e le caratteristiche che sono importanti per lo sviluppo delle applicazioni, piuttosto che concentrarsi sulle tecniche necessarie per raggiungere queste capacità. Lo standard POSIX è pensato per essere utilizzato sia dagli integratori di sistema, che dai sistemisti che dagli sviluppatori di applicazioni.
In conclusione
Lo standard POSIX consente agli sviluppatori di creare applicazioni, strumenti e piattaforme su molti sistemi operativi utilizzando gran parte dello stesso codice. Non è affatto un requisito scrivere codice secondo lo standard, ma aiuta, in grande stile, quando vuoi portare il tuo codice su altri sistemi.
Fondamentalmente, POSIX è orientato ai progettisti di sistemi operativi e agli sviluppatori di software, ma come utenti di un sistema, siamo influenzati da POSIX, che ce ne rendiamo conto o meno. È grazie allo standard che siamo in grado di lavorare su un sistema UNIX o Linux e portare quel lavoro su un altro sistema e lavorarci sopra senza intoppi. Come utenti, otteniamo numerosi vantaggi in termini di usabilità e riutilizzo dei dati tra i sistemi.