Cosa è Unix?

GNU/Linux è un sistema operativo Unix-like, ovvero è un sistema che si comporta come Unix, ma non è Unix. Sembra un gioco di parole, ma il problema si annida nella storia stessa di Unix, un sistema operativo nato più di 30 anni fa per uso commerciale e che è stato standardizzato negli anni attraverso le Single UNIX Specification (SUS), una famiglia di standard utilizzati per qualificare quei sistemi operativi che possono definirsi Unix.
Ricostruiamo, a brevi linee, l’albero genealogico di GNU/Linux, partendo dal lontano 1969, dai laboratori Bell della AT&T, nei quali venne sviluppato il primo sistema operativo per il PDP-7, un calcolatore a transistor dell’epoca. Al primo ricercatore, Ken Thompson, si unì ben presto Dennis Ritchie e insieme diedero vita a UNIX, nome suggerito da Brian Kernighan e nel 1973, Thompson riscrisse UNIX utilizzando il nuovo linguaggio C, ideato da Ritchie. In breve, siamo nel 1975, da questa prima versione viene scritto lo UNIX versione 6, il cui utilizzo si espande anche al di fuori dei laboratori Bell. A questo punto inizia un po’ di confusione: essendo un sistema operativo libero, Unix subisce una serie di mutazioni, rinascendo in differenti versioni, riscritte dai produttori di elaboratori per adattarle alle proprie macchine e spesso incompatibili fra di loro.
Non bisogna avere troppa fantasia per immaginare i problemi legati a questo sviluppo incontrollato: programmi scritti per una variante di Unix non era scontato che funzionassero su un’altra versione, amministrare un sistema Unix significava imparare le particolarità legate alla implementazione di ogni singolo produttore. Insomma, non era vita facile per programmatori, amministratori e nemmeno per i produttori che desideravano fornire insieme al proprio Unix un programma creato per qualche altro sistema, sempre chiamato Unix ma incompatibile. Per ovviare al problema, nel 1984 viene fondata X/Open, una società il cui scopo consiste nel definire gli standard dei sistemi aperti. Nel 1987 AT&T, proprietaria del marchio UNIX, costituisce insieme a Sun, UNIX International, organismo deputato alla definizione degli standard Unix. A complicare maggiormente la questione, gli altri produttori di Unix danno vita alla Open Software Foundation, il cui scopo è, neanche a dirlo, la definizione di standard Unix. Facciamo un salto al 1993, quando AT&T trasferisce le attività legate a Unix alla società UNIX Systema Laboratories, che vende a Novell. A sua volta, Novell vende il marchio X/Open e, nel 1995, cede i laboratori di sviluppo Unix, la cui versione viene definita UnixWare, a SCO. Nel 1996, X/Open e Open Software Foundation si fondono, creando The Open Group, il nuovo organismo deputato alla definizione degli standard UNIX, che da questa fusione eredita gli standard creati da X/Open, per primo il 1770, seguito da UNIX 95 e da Single Unix Specification Versione 2, per passare nel 1998 alla creazione di UNIX 98 e nel 2001 a Unix 03.
Per potersi definire Unix, un sistema operativo deve aderire agli standard UNIX definiti da The Open Group, ricevere la certificazione e quindi acqusisce il diritto di utilizzare il marchio UNIX.
Quei sistemi operativi che non aderiscono integralmente alle specifiche definite da The Open Group, o non vogliono investire il denaro necessario a garantirsi l’utilizzo del marchio UNIX, non possono definirsi sistemi operativi Unix, anche nel caso in cui, come per GNU/Linux, l’ambiente agisca proprio come Unix.
Insomma, GNU/Linux non è certificato UNIX e quindi non può essere definito un sistema Unix, non può ustilizzare il lorgo ma agisce come Unix. Un bel gioco di parole per dire che GNU/Linux non può essere chiamato Unix, ma quando ci si lavora sembra proprio di utilizzare Unix.
Alcuni preferiscono definire GNU/Linux un sistema aderente alle specifiche POSIX, Portable Operating System Interface, un insieme di specifiche, elaborate dal PASC (Portable Applications Standard Committee), comitato dello IEEE, Institute of Electrical and Electronics Engineers, emanate nel 1988 nella prima versione.
POSIX, termine coniato da Richard Stallman, è un insieme di API (Application Program Interface), che consentono di definire una interfaccia standard al sistema operativo e all’ambiente, il che si concretizza nello sviluppo di un interprete, ovvero una shell e di un insieme di utility comuni che facilitino la portabilità delle applicazioni a livello di codice sorgente e non di binario.
Ora, se non è possibile definire GNU/Linux un sistema UNIX, data la mancanza di una certificazione ufficiale da parte del The Open Group e se la definizione Unix-like appare abbastanza ambigua, nell’indicare qualcosa che è come qualcos’altro ma non lo è, indicare GNU/Linux come sistema POSIX compliant può far sorgere quantomeno una qualche ilarità. Nessun dubbio, GNU/Linux aderisce alle specifiche, quindi la definizione è calzante. Aggiungiamo, però, che anche altri sistemi operativi, come VMS, MVS, MPE sono sistemi aderenti alle stesse specifiche. Concludiamo che anche Microsoft Windows NT, per esempio, aderisce a POSIX. GNU/Linux e Windows NT possono essere accomunati sotto le stesse specifiche? Si. Quindi, forse meglio lasciare da parte un sistema di classificazione che non fa direttamente riferimento al sistema operativo, per evitare gustosi equivoci.

5 Risposte a “Cosa è Unix?”

  1. dai, Linux è un kernel, non un sistema operativo. Non ci confondiamo 🙂

  2. Ahahahahah, il solito purista. Mi sono lasciato cullare dalla semplicità della sineddoche.
    Ok, ho messo GNU/Linux.

  3. Zitto tu che ti interrogo!

    Ahahahahah, in effetti sfido chiunque a trovare qualcuno, tranne Stefano e pochi altri, che parlano di GNU/Linux invece di Linux. Comunque, ha ragione lui, la dizione corrente e’ errata. E’ corretta GNU/Linux

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.