Posix

Standard Posix

Standard Posix

POSIX: una panoramica

La Portable Operating System Interface (POSIX) è uno standard IEEE che aiuta la compatibilità e la portabilità tra i sistemi operativi. In teoria, il codice sorgente conforme a POSIX dovrebbe essere facilmente portabile. Nel mondo reale, la transizione delle applicazioni spesso si imbatte in problemi specifici del sistema. Ma la conformità POSIX semplifica il porting di applicazioni che possono comportare un risparmio di tempo. Quindi gli sviluppatori dovrebbero familiarizzare con i fondamenti di questo standard ampiamente utilizzato.

Storia di POSIX

I primi programmatori dovevano riscrivere le loro applicazioni da zero per ogni nuovo modello di computer. Ma l'IBM System/360 ha cambiato questo. Nel 1964 ha introdotto il sistema operativo OS/360. IBM ha iniziato a utilizzare la stessa architettura hardware per consentire ai nuovi modelli di riutilizzare lo stesso sistema operativo. La presenza di un sistema operativo comune su più macchine costituisce la prima fase per la portabilità delle applicazioni.

Alla fine degli anni '60, l'arrivo di UNIX ha aperto nuove possibilità. I Bell Labs di AT&T sono stati responsabili dello sviluppo iniziale di questo nuovo sistema operativo. Potrebbe funzionare su macchine di più fornitori. Ma UNIX ha iniziato a dividersi in vari gusti. Oltre al System V di AT&T, c'erano Berkeley Software Distribution (BSD), Xenix e altro. Non è stato facile trasferire questi gusti. La promessa della portabilità dell'applicazione ha colpito un dosso. Nei prossimi decenni, l'introduzione di nuovi sistemi operativi renderebbe solo più complesso il porting di applicazioni su hardware, sistemi operativi e fornitori.

Lo standard POSIX è stato sviluppato negli anni '80 per risolvere il problema della portabilità. Lo standard è stato definito sulla base di System V e BSD Unix. POSIX non definisce il sistema operativo, definisce solo l'interfaccia tra un'applicazione e un sistema operativo. I programmatori hanno la libertà di scrivere il loro sistema operativo e l'applicazione come vogliono, purché l'interfaccia tra i due sia rispettata. Poiché POSIX è indipendente dall'hardware, dal sistema operativo o dal fornitore, è più facile ottenere la portabilità delle applicazioni.

Il primo standard POSIX è stato rilasciato nel 1988. Formalmente, si chiamava IEEE Standard 1003.1-1988 Interfaccia del sistema operativo portatile per ambienti informatici”. Nel 1990 è stata rilasciata una versione internazionale dello stesso standard con lievi variazioni come ISO/IEC 9945-1:1990 Information technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API).

Inizialmente, POSIX era diviso in più standard:

POSIX.1: Servizi di base
POSIX.1b: Estensioni in tempo reale
POSIX.1c: Estensioni delle discussioni
POSIX.2: Shell e Utilità

Dopo il 1997, il Gruppo Austin ha riunito tutti gli standard sotto un unico ombrello. Da allora, le versioni POSIX.1-2001 (noto anche come IEEE Std 1003.1-2001), POSIX.1-2004 (noto anche come IEEE Std 1003.1-2004) e POSIX.1-2008 (noto anche come IEEE Std 1003.1-2008) sono stati rilasciati.

Esempi di alcuni sistemi compatibili con POSIX sono AIX, HP-UX, Solaris e MacOS (dal 10.5 Leopardo). D'altra parte, Android, FreeBSD, distribuzioni Linux, OpenBSD, VMWare, ecc., seguono la maggior parte dello standard POSIX, ma non sono certificati.

Nozioni di base di POSIX

POSIX.La norma 1-2008 tratta quattro aree principali:

  1. Volume di definizione di base: Termini generali, concetti e interfacce.
  2. Interfacce di sistema Volume: Definizioni delle funzioni e dei sottoprogrammi dei servizi di sistema. Inoltre, include la portabilità, la gestione degli errori e il ripristino degli errori.
  3. Volume di shell e utilità: Definizione delle interfacce di qualsiasi applicazione per comandi shell e comuni programmi di utilità.
  4. Volume della motivazione: Contiene informazioni e cronologia sulle funzionalità aggiunte o eliminate e le motivazioni delle decisioni.

Lo standard non copre interfacce grafiche, interfacce di database, portabilità di oggetti/codice binario, configurazioni di sistema, considerazioni di I/O o disponibilità di risorse.

Alcuni dei principi guida alla base del design POSIX sono:

Sviluppo di applicazioni POSIX

Lo scopo di POSIX era migliorare la portabilità. Quando il tuo codice sorgente segue lo standard, puoi compilare ed eseguire facilmente il codice su una macchina diversa. Tuttavia, se POSIX è definito come un requisito generale per un'applicazione, può causare confusione. Lo standard POSIX completo è di oltre 4000 pagine con più di 1350 interfacce. Non ha senso implementare tutto. Quindi ogni progetto dovrebbe definire gli aspetti di POSIX che soddisferanno requisiti particolari.

Ci sono idee sbagliate nella comunità di sviluppo che lo standard POSIX sia vecchio e irrilevante. Non è vero. POSIX è un documento vivente che viene regolarmente aggiornato dal Gruppo Austin. Chiunque può unirsi al gruppo e partecipare al miglioramento dello standard. Lo standard è utilizzato attivamente negli odierni server, workstation, router, dispositivi mobili, sistemi embedded e altro ancora. Viene utilizzato per macchine UNIX e Linux.

Tuttavia, gli sviluppatori dovrebbero essere consapevoli che lo standard POSIX ha problemi. Puoi segnalare qualsiasi bug che scopri all'Austin Group e verrà esaminato per la prossima revisione.

Conclusione
POSIX potrebbe sembrare scoraggiante all'inizio. Tuttavia, gli sviluppatori di applicazioni dovrebbero familiarizzare con le nozioni di base in quanto di tanto in tanto si presenteranno come requisito. A causa dell'ampia portata dello standard, non è possibile diventare un esperto del documento completo. Gli sviluppatori possono contattare le comunità UNIX e Linux per saperne di più. Le community possono rispondere alle tue domande e darti un'idea migliore di quale parte dello standard sarà rilevante per il tuo progetto.

Ulteriori studi:

Riferimenti:

Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...