GNU/Linux >> Linux Esercitazione >  >> Linux

Cos'è POSIX? Perché è importante per gli utenti Linux/UNIX?

Sentirai l'acronimo, o ne leggerai:POSIX, su diverse bacheche online e articoli. I programmatori e gli sviluppatori di sistemi sembrano preoccuparsene di più. Può sembrare misterioso e, sebbene ci siano molte buone fonti sull'argomento, alcuni forum di discussione (la brevità fa parte della loro natura), non entrano nei dettagli su cosa sia e questo può creare confusione. Che cos'è, allora, POSIX, in realtà?

Cos'è POSIX?

POSIX non è in realtà una cosa. Descrive una cosa, proprio come un'etichetta. Immagina una scatola etichettata:POSIX e all'interno della scatola c'è uno standard. Uno standard è costituito da insiemi di regole e istruzioni di cui si occupa POSIX. POSIX è l'abbreviazione di Interfaccia del sistema operativo portatile . È uno standard IEEE 1003.1 che definisce l'interfaccia del linguaggio tra i programmi applicativi (insieme alle shell della riga di comando e alle interfacce di utilità) e il sistema operativo UNIX.

La conformità allo standard garantisce la compatibilità quando i programmi UNIX vengono spostati da una piattaforma UNIX a un'altra. L'attenzione di POSIX è principalmente sulle funzionalità di System V UNIX e BSD UNIX di AT&T.

Uno standard deve essere esplicitato e seguito da regole su come raggiungere l'obiettivo dell'interoperabilità tra i sistemi operativi. POSIX copre cose come:Interfacce di sistema, Comandi e utilità, Accesso ai file di rete, solo per citarne alcuni:in POSIX c'è molto di più di questo.

Perché 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 mainframe.

IBM ha introdotto la famiglia di computer mainframe System/360. Diversi modelli avevano le loro specializzazioni uniche, ma l'hardware era tale da poter utilizzare lo stesso sistema operativo:OS/360.

Non solo il sistema operativo potrebbe essere eseguito su modelli diversi, ma anche le applicazioni potrebbero essere eseguite su di essi. Non solo questo ha mantenuto bassi i costi, ma ha creato sistemi informatici – sistemi di una linea di prodotti che potrebbero funzionare insieme. Oggi è tutto comune:reti e sistemi, ma allora era un grosso problema!

Quando è nato UNIX, più o meno nello stesso periodo, ha anche mostrato risultati promettenti in quanto poteva funzionare su macchine di diversi produttori. Tuttavia, quando UNIX ha iniziato a eseguire il fork in diverse versioni, il porting del codice su queste varianti UNIX è diventato difficile. La promessa della portabilità di 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 varianti più grandi dell'epoca. È importante notare che POSIX non è stato formato per controllare come venivano costruiti i sistemi operativi:qualsiasi azienda era libera di progettare la propria variante UNIX a proprio piacimento. POSIX riguardava solo il modo in cui un'applicazione si interfaccia con il sistema operativo. Nel linguaggio del programmatore, un'interfaccia è il metodo in cui il codice di un programma può comunicare con un altro programma. L'interfaccia prevede 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.

Ad esempio, se voglio leggere un file usando il comando cat, dovrei digitare qualcosa di simile sulla riga di comando:

cat myfile.txt

Senza parlare molto del programmatore, dirò semplicemente che il comando cat effettua una chiamata al sistema operativo per recuperare il file in modo che cat possa leggerlo. cat lo legge e quindi visualizza il contenuto del file sullo schermo. C'è molta interazione tra l'applicazione (cat ) e il sistema operativo. Il modo in cui funziona questa interazione è ciò che interessava a POSIX. Se l'interazione potesse essere la stessa tra le diverse varianti UNIX, la portabilità, indipendentemente dal sistema operativo, dal produttore e dall'hardware, sarebbe riguadagnata.

Le specifiche su come realizzare tutto ciò sono definite nello standard.

La conformità è volontaria

Tutti noi abbiamo almeno visto un messaggio del tipo "per aiuto, digita:xxxxx –help". Questo è comune in Linux e non è conforme a POSIX. POSIX non ha mai richiesto il doppio trattino, si aspettano un trattino. Il doppio trattino viene da GNU, ma non danneggia Linux e aggiunge qualcosa al suo carattere. Allo stesso tempo, Linux è per lo più conforme, specialmente quando si tratta di interfacce di chiamata di sistema. Questo è il motivo per cui siamo in grado di eseguire applicazioni X, GNOME e KDE su Linux, Sys V UNIX e BSD UNIX. Vari comandi, come ls, cat, grep, find, awk e molti altri funzionano allo stesso modo nelle diverse varianti.

Di norma, la conformità è un passo volontario. Quando il codice è conforme, è più facile passare a un altro sistema; sarebbe necessaria una piccola riscrittura del codice, se del caso. Quando il codice può funzionare su sistemi diversi, il suo utilizzo si espande. Le persone che utilizzano altri sistemi possono trarre vantaggio dall'uso del programma. Per il programmatore in erba, imparare a scrivere programmi conformi a POSIX può solo aiutare la loro carriera. Per quei lettori interessati alla sfera della conformità Linux, è possibile trovare molte buone informazioni su:Linux Standard Base.

Ma non sono un programmatore o un progettista di sistema...

Molte persone che lavorano sui computer non sono programmatori o progettisti di sistemi operativi. Sono gli impiegati di trascrizione medica, i segretari che scrivono lettere, elenchi di attività, promemoria dettati e così via. Altri tabulano numeri, raccolgono e massaggiano dati, gestiscono negozi online, scrivono libri e articoli (e alcuni di noi li leggono). In quasi tutti i lavori, probabilmente c'è un computer nelle vicinanze.

POSIX colpisce anche questi utenti, che lo sappiano o meno. Gli utenti non devono rispettare lo standard, ma si aspettano che i loro computer funzionino. Quando i sistemi operativi e i programmi sono conformi allo standard POSIX, ottengono il vantaggio dell'interoperabilità. Saranno in grado di spostarsi da un sistema all'altro con la ragionevole aspettativa che le macchine funzioneranno in modo molto simile a un altro. I loro dati saranno comunque accessibili e potranno comunque modificarli.

POSIX, così come altri standard, sono in continua evoluzione. Man mano che la tecnologia cresce, cresce anche lo standard. Gli standard sono in realtà un sistema concordato utilizzato da persone, produttori, organizzazioni, ecc. per eseguire attività in modo efficiente. I dispositivi di un produttore possono funzionare con il dispositivo di un altro produttore. Pensaci:il tuo auricolare Bluetooth può essere utilizzato su un iPhone Apple così come su un telefono Android. La nostra TV può collegarsi e trasmettere in streaming video e programmi da diverse reti, come Amazon Prime, BritBox, Hulu, solo per citarne alcuni. Ora possiamo persino monitorare la frequenza cardiaca con i nostri telefoni. Tutto ciò è reso possibile, in gran parte in parte, dalla conformità agli standard.

Vantaggi in abbondanza. Mi piace.

E allora la X?

Lo ammetto, non ho mai detto a cosa servisse la "X" in POSIX. Opensource.com ha un eccellente articolo in cui Richard Stallman spiega cosa significa la "X" in POSIX. Eccolo, nelle sue parole:

L'IEEE aveva finito di sviluppare la specifica ma non aveva un nome conciso per essa. Il titolo diceva qualcosa come "interfaccia del sistema operativo portatile", anche se non ricordo le parole esatte. Il comitato ha messo "IEEEIX" come nome conciso. Non pensavo fosse una buona scelta. È brutto da pronunciare - suonerebbe come un grido di terrore, "Ayeee!" - quindi mi aspettavo che la gente chiamasse invece la specifica "Unix".

Dal momento che GNU non è Unix, ed era destinato a sostituire Unix, non volevo che le persone chiamassero GNU un "sistema Unix". Pertanto, ho proposto un nome conciso che le persone potrebbero effettivamente usare. Non avendo particolari ispirazioni, ho generato un nome in modo poco intelligente:ho preso le iniziali di “sistema operativo portatile” e ho aggiunto “ix”. L'IEEE lo ha adottato con entusiasmo.

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 trasferire il tuo codice su altri sistemi.

Fondamentalmente, POSIX è rivolto ai progettisti di sistemi operativi e agli sviluppatori di software, ma in quanto utenti di un sistema, siamo influenzati da POSIX indipendentemente dal fatto che ce ne rendiamo conto o meno. È grazie allo standard che siamo in grado di lavorare su un sistema UNIX o Linux e trasferire quel lavoro su un altro sistema e lavorarci sopra senza intoppi. Come utenti, otteniamo numerosi vantaggi in termini di usabilità e riutilizzo dei dati su tutti i sistemi.

Articolo originale


Linux
  1. Che cos'è esattamente Posix?

  2. Perché Unix Time inizia al 1970-01-01?

  3. Cos'è umask in UNIX/Linux

  4. Cosa significa carico medio su Unix/Linux?

  5. Su Linux/Unix, .tar.gz rispetto a .zip è importante?

Storia di Unix e Linux

Che cos'è il comando Grep in Linux? Perché viene utilizzato e come funziona?

Che cos'è il file system Linux? Guida facile

Perché il mio sistema Linux balbetta a meno che non elimini continuamente le cache?

Perché Linux è simile a Unix se il suo kernel è monolitico?

Cosa fa esattamente init?