Standard Posix

Standard Posix

Posix: una panoramica

L'interfaccia del sistema operativo portatile (POSIX) è uno standard IEEE che aiuta la compatibilità e la portabilità tra i sistemi operativi. Teoricamente, il codice sorgente conforme a Posix dovrebbe essere perfettamente portatile. Nel mondo reale, la transizione dell'applicazione spesso si imbatte in problemi specifici del sistema. Ma la conformità POSIX rende più semplice le applicazioni di porta, il che può comportare un risparmio di tempo. Quindi gli sviluppatori dovrebbero conoscere i fondamenti di questo standard ampiamente utilizzato.

Storia di Posix

I primi programmatori hanno dovuto riscrivere le proprie applicazioni da zero per ogni nuovo modello di computer. Ma il sistema IBM/360 lo ha cambiato. 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 ha configurato la prima fase per la portabilità dell'applicazione.

Alla fine degli anni '60, l'arrivo di Unix ha aperto nuove possibilità. Bell Labs di AT&T era responsabile dello sviluppo iniziale di questo nuovo sistema operativo. Potrebbe attraversare macchine da più fornitori. Ma Unix ha iniziato a sborsare in vari sapori. Oltre al sistema V di AT&T, c'erano Berkeley Software Distribution (BSD), Xenix e altro ancora. Non è stato facile portare su questi sapori. La promessa della portabilità dell'applicazione ha colpito un bernoccolo. Nei prossimi decenni, l'introduzione di nuovi sistemi operativi renderebbe solo più complesso per le applicazioni portuali su hardware, sistemi operativi e fornitori.

Lo standard POSIX è stato sviluppato negli anni '80 per risolvere il problema della portabilità. Lo standard è stato definito in base al sistema 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 comunque vogliono fintanto che l'interfaccia tra i due è onorata. Poiché Posix è indipendente dall'hardware, dal sistema operativo o dal fornitore, è più facile raggiungere la portabilità dell'applicazione.

Il primo standard Posix è stato rilasciato nel 1988. Formalmente, si chiamava IEEE Standard 1003.1-1988 Interfaccia del sistema operativo portatile per ambienti di computer ". Nel 1990, una versione internazionale dello stesso standard con lievi variazioni è stata rilasciata come tecnologia informatica ISO/IEC 9945-1: 1990 - Interfaccia del sistema operativo portatile (POSIX) - Parte 1: Interfaccia del programma di applicazioni di sistema (API).

Inizialmente, Posix è stato diviso in molteplici standard:

Posix.1: Servizi di base
Posix.1B: Estensioni in tempo reale
Posix.1c: Estensioni di fili
Posix.2: Shell e utility

Dopo il 1997, il gruppo Austin ha portato tutto lo standard sotto un singolo 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 conformi a POSIX sono AIX, HP-UX, Solaris e MacOS (da 10.5 leopardo). D'altra parte, Android, FreeBSD, Distribuzioni Linux, OpenBSD, VMware, ecc., Segui la maggior parte dello standard Posix, ma non sono certificati.

Nozioni di base di Posix

Posix.1-2008 Offerte standard con quattro aree principali:

  1. Volume della definizione di base: Termini, concetti e interfacce generali.
  2. Volume delle interfacce dei sistemi: Definizioni di funzioni di servizio di sistema e subroutine. Inoltre, include la portabilità, la gestione degli errori e il recupero degli errori.
  3. Volume di shell e utility: Definizione di interfacce di qualsiasi applicazione per comandare shell e programmi di utilità comuni.
  4. Volume della logica: Contiene informazioni e cronologia sulle caratteristiche aggiunte o scartate e sui ragionamenti delle decisioni.

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

Alcuni dei principi guida alla base del design di Posix sono:

  • Posix viene creato per semplificare la portabilità dell'applicazione. Quindi non è solo per i sistemi UNIX. Anche i sistemi non unix possono essere conformi a Posix.
  • Lo standard non determina lo sviluppo dell'applicazione o del sistema operativo. Definisce solo il contratto tra di loro.
  • Il codice sorgente dell'applicazione conforme a POSIX dovrebbe essere in grado di eseguire su molti sistemi perché lo standard è definito a livello di codice sorgente. Tuttavia, lo standard non garantisce alcuna portabilità a livello di codice binario o binario. Quindi l'eseguibile binario potrebbe non essere eseguito anche su macchine simili con hardware e sistemi operativi identici. Solo la portabilità del codice sorgente è indirizzata nello standard.
  • Posix è scritto in termini di standard C. Ma gli sviluppatori possono implementarlo in qualsiasi lingua che gli piace.
  • Lo standard si occupa solo di aspetti del sistema operativo che interagisce con le applicazioni.
  • Lo standard è mantenuto succinto in termini di lunghezza e ampia in termini di portata per coprire una vasta gamma di sistemi.
  • Posix è stato progettato per semplificare la portabilità. Quindi risparmierà tempo e denaro a lungo termine. Tuttavia, se le tue applicazioni non sono conformi a POSIX, potrebbe richiedere investimenti significativi per il tempo e le risorse all'inizio.

Sviluppo delle applicazioni Posix

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

Ci sono idee sbagliate nella comunità dello sviluppo che lo standard Posix è 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 nei server, nelle workstation, sui router, sui dispositivi mobili, nei sistemi integrati e altro ancora. Viene utilizzato per macchine UNIX e Linux.

Tuttavia, gli sviluppatori dovrebbero essere consapevoli del fatto che lo standard Posix ha problemi. Puoi segnalare qualsiasi bug che scopri al gruppo Austin e verrà esaminato per la prossima revisione.

Conclusione
Posix potrebbe sembrare scoraggiante all'inizio. Tuttavia, gli sviluppatori di applicazioni dovrebbero conoscere le basi in quanto apparirà di volta in volta come requisito. A causa dell'ampio ambito dello standard, non è possibile diventare un esperto del documento completo. Gli sviluppatori possono contattare le comunità UNIX e Linux per saperne di più. Le comunità possono rispondere alle tue domande e darti un senso migliore di quale parte dello standard sarà rilevante per il tuo progetto.

Ulteriori studi:

  • Documento completo di Posix
  • FAQ POSIX
  • Il gruppo di revisione degli standard comuni di Austin

Riferimenti:

  • FAQ POSIX, gruppo Austin
  • Gruppo Austin
  • Documento 7542098/
  • Concetti di servizi di sistema posix e unix
  • OpenGroup Doc 9699919799
  • Cos'è posix?, Università dell'Indiana
  • Standards Docs @ Open-std.org
  • Bill Gallmeister, Guida alla programmazione Posix
  • Guida ai programmatori di Posix, Donald Lewine
  • Stackoverflow Cos'è posix
  • STORIA DI UNIUX, DARWINSYS.com
  • Austin Open Group, Posix Paper
  • Wikipedia Posix