Vai al contenuto

Unix: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Contenuto cancellato Contenuto aggiunto
fix
Nel testo originale, sono state apportate alcune modifiche e migliorie per chiarezza e precisione.
Riga 23: Riga 23:
}}
}}


'''Unix''' (registrato ufficialmente come '''UNIX''') è un [[sistema operativo]] [[Portabilità|portabile]] di tipo proprietario per [[computer]] inizialmente sviluppato da un gruppo di ricerca dei laboratori [[AT&T]] e [[Bell Laboratories]], nel quale figurarono sulle prime anche [[Ken Thompson]] e [[Dennis Ritchie]]. Storicamente, è stato il sistema operativo maggiormente utilizzato su sistemi [[mainframe]] a partire dagli [[anni settanta]].
Unix (ufficialmente registrato come UNIX) è un sistema operativo di tipo proprietario e portabile per computer. Originariamente sviluppato da un gruppo di ricerca presso i laboratori AT&T e Bell Laboratories, il team iniziale includeva luminari come Ken Thompson e Dennis Ritchie. Storicamente, Unix è stato ampiamente adottato come sistema operativo principale per sistemi mainframe a partire dagli anni settanta.

Unix si è affermato come uno dei sistemi operativi più influenti e versatili nella storia dell'informatica. La sua architettura modulare e flessibile, insieme alla capacità di funzionare su una vasta gamma di hardware, lo ha reso popolare sia in ambito aziendale che accademico.

Le sue caratteristiche distintive includono un sistema di gestione dei file gerarchico, una shell potente e programmabile e un'ampia gamma di utilità e comandi da riga di comando. Queste caratteristiche hanno reso Unix una scelta ideale per sviluppatori, ricercatori e professionisti dell'informatica in tutto il mondo.

Negli anni, Unix ha dato origine a numerose varianti e sistemi operativi basati su Unix, tra cui Linux e macOS. La sua eredità continua a influenzare la progettazione dei sistemi operativi moderni e rimane un punto di riferimento nella storia dell'informatica.


== Storia ==
== Storia ==
Unix è stato originariamente concepito presso i Bell Laboratories<ref>{{Cita pubblicazione|data=2023-08-26|titolo=Bell Laboratories|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Bell_Laboratories&oldid=135140683}}</ref> (AT&T<ref>{{Cita web|url=https://it.wikipedia.org/wiki/AT%26T|titolo=AT&T}}</ref> Corp.). Il primo sistema operativo che può essere considerato il precursore di "Unix" fu ideato da Ken Thompson<ref>{{Cita pubblicazione|data=2023-03-31|titolo=Ken Thompson|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Ken_Thompson&oldid=132770992}}</ref> nel 1969<ref>{{Cita pubblicazione|data=2023-10-03|titolo=1969|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=1969&oldid=135788888}}</ref>. La motivazione dietro la sua creazione era quella di eseguire un programma denominato "Space Travel<ref>{{Cita pubblicazione|data=2023-06-13|titolo=Space Travel|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Space_Travel&oldid=133953831}}</ref>". Questo software simulava con precisione i movimenti celesti, compresi quelli del Sole e dei pianeti, insieme al percorso di una navicella spaziale capace di atterrare in varie località.
Unix è stato progettato nei [[Bell Laboratories]] ([[AT&T]] Corp.). Il primo sistema operativo che può definirsi a tutti gli effetti come "Unix" fu sviluppato da [[Ken Thompson]] nel [[1969]] per poter eseguire un programma chiamato "[[Space Travel]]", che simulava i movimenti del Sole e dei pianeti, così come il movimento di una navicella spaziale che poteva atterrare in diversi luoghi<ref>Hahn Harley, ''Guida a Unix'', Mc-Graw Hill, 1996. ISBN 88-386-0872-5.</ref>.

Questa pionieristica creazione rappresentò un passo significativo nella storia dei sistemi operativi e pose le basi per lo sviluppo del sistema Unix che oggi conosciamo. La sua versatilità e la capacità di eseguire un'ampia gamma di applicazioni hanno reso Unix uno dei sistemi operativi più influenti nella storia dell'informatica.


=== I Bell Laboratories ([[Anni 1960|anni sessanta]]) ===
=== I Bell Laboratories ([[Anni 1960|anni sessanta]]) ===
[[File:Unix timeline.it.svg|miniatura|upright=1.2|Evoluzione di Unix nel tempo.]]
[[File:Unix timeline.it.svg|miniatura|upright=1.2|Evoluzione di Unix nel tempo.]]


Lo sviluppo di Unix si deve in parte a un progetto precedente, [[Multics]], abbandonato ben presto dalla direzione dei [[Bell Laboratories]] perché ritenuto troppo complesso.
Lo sviluppo di Unix ha le sue radici in un progetto precedente, noto come Multics, che fu tuttavia abbandonato dai Bell Laboratories a causa della sua eccessiva complessità.


Multics nacque con presupposti molto avanzati per l'epoca: in particolare, era un sistema operativo in grado di supportare l'esecuzione di applicazioni in [[timesharing]]. Si scelse di svilupparlo internamente, dato lo scarso supporto che il sistema operativo montato sui computer Bell dava a questo aspetto. Il sistema operativo era [[BESYS]], e si trattava più che altro di una semplice estensione dell'hardware. BESYS richiedeva un massiccio intervento da parte degli operatori: ogni sequenza di operazioni doveva essere caricata manualmente, con grande spreco di tempo.
Multics era all'avanguardia per il suo tempo, essendo un sistema operativo progettato per il supporto del timesharing, consentendo l'esecuzione di applicazioni condivise. La decisione di sviluppare Multics all'interno dei laboratori era motivata dalla mancanza di supporto da parte del sistema operativo preesistente sui computer Bell, noto come BESYS, il quale era essenzialmente un'estensione dell'hardware. BESYS richiedeva un intervento manuale massiccio da parte degli operatori, che dovevano caricare manualmente ogni sequenza di operazioni, comportando un notevole spreco di tempo.


Fu con l'intento di automatizzare queste operazioni (timesharing) che nacque Multics (''Multiplexed Information and Computing Service''). Il progetto si rivelò però troppo complesso, specie per i ricercatori abituati ai sistemi operativi classici e perfettamente lineari. Fu ben presto abbandonato a favore di un altro sistema nettamente più semplice, ma anche molto più modesto: [[GECOS]].
L'obiettivo alla base della creazione di Multics era l'automatizzazione di queste operazioni di timesharing<ref>{{Cita pubblicazione|data=2020-05-07|titolo=Time-sharing|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Time-sharing&oldid=112829907}}</ref>. Tuttavia, il progetto si rivelò estremamente complesso, specialmente per i ricercatori abituati ai sistemi operativi tradizionali e lineari. Di conseguenza, Multics fu presto abbandonato in favore di un sistema molto più semplice ma altrettanto modesto chiamato GECOS.


Alcuni ricercatori non ritennero corretta la decisione presa e decisero nonostante tutto di continuare lo sviluppo del progetto. Furono in particolare [[Ken Thompson]], [[Dennis Ritchie]], Joe Ossanna e Douglas McIlroy<ref>{{Cita web |url=https://www.bell-labs.com/usr/dmr/www/hist.pdf |titolo=The Evolution of the Unix Time-sharing System* |autore=Dennis Ritchie |data=ottobre 1984 |lingua=en |p=11 |citazione=This paper presents a brief history of the early development of the Unix operating system. |accesso=13 aprile 2017}}</ref> a non arrendersi: fu grazie ai loro sforzi che, su un [[minicomputer]] [[PDP-7]], nacque la prima versione di Unics (''Uniplexed Information and Computing Service''), scritta totalmente in assembly<ref>{{Cita web |url=http://www.linfo.org/pdp-7.html |titolo=The PDP-7 and the Birth of UNIX |autore=The Linux Information Project |data=27 settembre 2007 |lingua=en |citazione=In 1969 Ken Thompson wrote the first version of UNIX in assembly language using an otherwise little-used PDP-7 at Bell Labs.. |accesso=14 aprile 2017}}</ref>. In seguito il nome cambiò definitivamente in Unix<ref>{{Cita web|url=https://www.linuxjournal.com/article/7035|titolo=Interview with Brian Kernighan|autore=Aleksey Dolya|sito=Linux Journal|data=29 luglio 2003|lingua=en|citazione=I suggested Unics for Ken's new system, because it was small and had at most one of anything.|accesso=13 aprile 2017}}</ref> per esplicita proposta di [[Brian Kernighan]] e con l'appoggio di Dennis Ritchie. Il nome Unix stava a sottolineare la semplicità del progetto rispetto alla mal gestita complessità di Multics. Lo sviluppo seguì [[Filosofia di Unix|la filosofia di sviluppo Unix]], proposta nel 1969 da Ken Thompson e oggetto di successive interpretazioni ed elaborazioni, riassumibile dalla massima:
Nonostante la decisione di abbandonare Multics<ref>{{Cita pubblicazione|data=2023-10-03|titolo=Multics|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Multics&oldid=135801490}}</ref>, alcuni ricercatori decisero di continuare lo sviluppo del progetto. Ken Thompson, Dennis Ritchie, Joe Ossanna e Douglas McIlroy<ref>{{Cita pubblicazione|data=2023-09-17|titolo=Douglas McIlroy|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Douglas_McIlroy&oldid=135510230}}</ref> furono tra coloro che non si arresero. Con il loro impegno, nacque la prima versione di Unics (Uniplexed Information and Computing Service) su un minicomputer PDP-7, scritta completamente in linguaggio assembly. Successivamente, il nome fu modificato definitivamente in Unix, su suggerimento di Brian Kernighan e con il sostegno di Dennis Ritchie. Il nome Unix sottolineava l'approccio semplice del progetto rispetto alla complessità di Multics.


{{citazione|Scrivete programmi che facciano una cosa e che la facciano bene. Scrivete programmi che funzionino insieme. Scrivete programmi che gestiscano flussi di testo, perché quella è un'interfaccia universale.|Peter H. Salus, ''A Quarter Century of Unix''|Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.<ref>{{cita libro|lingua=en|titolo=A Quarter Century of Unix|autore=Peter H. Salus|editore=Addison-Wesley|data=31 maggio 1994|isbn=0-201-54777-5}}</ref>|lingua=en}}
L'evoluzione di Unix seguì la filosofia di sviluppo proposta da Ken Thompson nel 1969, che può essere riassunta dalla massima: "Scrivere programmi che facciano una cosa e la facciano bene. Scrivere programmi che lavorino insieme. Scrivere programmi per gestire flussi di testo, perché questa è un'interfaccia universale."


L'introduzione del linguaggio di programmazione C<ref>{{Cita pubblicazione|data=2023-09-23|titolo=C (linguaggio di programmazione)|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=C_(linguaggio_di_programmazione)&oldid=135626371}}</ref> è stata una fase cruciale nella storia di Unix. Sviluppato da Thompson e Ritchie<ref>{{Cita pubblicazione|data=2023-03-31|titolo=Dennis Ritchie|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Dennis_Ritchie&oldid=132770995}}</ref> tra il 1969 e il 1973<ref>{{Cita pubblicazione|data=2023-10-03|titolo=1973|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=1973&oldid=135788892}}</ref>, il linguaggio C ha consentito di portare il kernel di Unix su piattaforme diverse da quella originale (PDP-7<ref>{{Cita pubblicazione|data=2019-05-03|titolo=PDP-7|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=PDP-7&oldid=104597347}}</ref>), rappresentando il primo software in grado di funzionare in ambienti molto diversi. Unix è stato arricchito da un insieme di applicazioni standard per la gestione di file e utenti, molte delle quali sono ancora in uso nei moderni sistemi operativi.
=== Invenzione del linguaggio C ===
L'invenzione del [[linguaggio di programmazione]] [[C (linguaggio)|C]] costituisce una fase importante nella storia di Unix. Il [[C (linguaggio)|C]], sviluppato da [[Ken Thompson|Thompson]] e [[Dennis Ritchie|Ritchie]] tra il [[1969]] e il [[1973]], ha permesso di portare il [[kernel]] su piattaforme diverse dall'originario [[PDP-7]], costituendo di fatto il primo [[software]] della storia ad essere in grado di funzionare in ambienti totalmente diversi. Assieme al [[kernel]], ossia il nucleo del sistema operativo, Unix è stato corredato di una serie di applicazioni standard per la gestione dei file e degli utenti, che ancora oggi continuano ad essere usati nei sistemi operativi moderni.


=== Prime applicazioni in azienda ([[Anni 1970|anni settanta]]) ===
=== Prime applicazioni in azienda ([[Anni 1970|anni settanta]]) ===
[[File:IBM_704_mainframe.gif|thumb|Esempio di [[mainframe]]]]
[[File:IBM_704_mainframe.gif|thumb|Esempio di [[mainframe]]]]


I [[Bell Laboratories]] erano di proprietà dell'[[AT&T]], società che gestiva le comunicazioni telefoniche negli [[Stati Uniti d'America|Stati Uniti]], la quale deteneva i diritti di Unix. Proprio in quel periodo, all'inizio degli [[Anni 1970|anni settanta]], il sistema telefonico statunitense stava subendo una piccola rivoluzione interna: l'utilizzo di mini-computer per la gestione del traffico voce e dati. Questi erano dotati di software minimale, che permetteva operazioni di manutenzione piuttosto limitate. Ben presto, si scoprì come Unix, grazie alla sua concezione moderna e alla sua versatilità, permettesse ai mini-computer di fare operazioni molto più complesse. Per la prima volta, le operazioni di manutenzione potevano essere gestite a distanza in modo centralizzato, senza inviare tecnici sul posto per investigare e risolvere ogni guasto.
I Bell Laboratories erano una divisione dell'AT&T, l'azienda responsabile delle telecomunicazioni negli Stati Uniti, e detenevano i diritti su Unix. Nei primi anni settanta, negli Stati Uniti, si stava verificando una trasformazione nel sistema telefonico nazionale. Si stava passando all'uso di mini-computer per gestire il traffico di voce e dati. Questi mini-computer erano dotati di un software minimale che limitava le operazioni di manutenzione.

Tuttavia, si scoprì presto che Unix, grazie alla sua moderna architettura e alla sua versatilità, poteva consentire ai mini-computer di eseguire operazioni molto più complesse. Questa fu la prima volta in cui le operazioni di manutenzione poterono essere gestite centralmente e a distanza, senza la necessità di inviare tecnici in loco per affrontare e risolvere ogni problema.

Unix rappresentò un passo significativo nell'evoluzione della gestione dei sistemi informatici, contribuendo a rendere più efficienti le operazioni di manutenzione e a consentire un controllo centralizzato delle risorse informatiche.


=== Sviluppo ad opera del mondo universitario ([[Anni 1980|anni ottanta]] e [[Anni 1990|novanta]]) ===
=== Sviluppo ad opera del mondo universitario ([[Anni 1980|anni ottanta]] e [[Anni 1990|novanta]]) ===
[[File:HP-HP9000-715-100-Workstation_03.jpg|thumb|[[Unix System V]]]]
[[File:HP-HP9000-715-100-Workstation_03.jpg|thumb|[[Unix System V]]]]


[[AT&T]] non volle avere alcuna [[royalty]] sull'utilizzo e la modifica di Unix. Ciò non a fini di beneficenza, come si potrebbe erroneamente pensare, ma per un fatto "politico": in quanto monopolista, [[AT&T]] aveva una gamma di servizi da offrire al mercato limitati per legge e Unix non costituiva un affare direttamente collegato alle telecomunicazioni, anche se sotto certi aspetti lo era. Al centro di forti critiche per via della sua posizione dominante, [[AT&T]] permise che il codice sorgente di Unix venisse distribuito gratuitamente per fini di studio alle università di tutto il mondo.
AT&T scelse di non richiedere royalty per l'uso e la modifica di Unix, ma questa decisione non fu dettata da motivi di beneficenza, bensì da considerazioni di natura politica. Essendo un monopolista nel settore delle telecomunicazioni, AT&T era soggetta a leggi che limitavano la gamma di servizi che poteva offrire. Nonostante Unix non fosse direttamente correlato alle telecomunicazioni, aveva alcune implicazioni in questo ambito. In un contesto in cui AT&T era oggetto di intense critiche per la sua posizione dominante, l'azienda decise di permettere la distribuzione gratuita del codice sorgente di Unix alle università di tutto il mondo, a fini di studio.

Ottenere una copia di Unix era relativamente semplice e poco costoso; bastava coprire le spese di spedizione del supporto. Questo portò rapidamente alla formazione di una comunità globale di università che si concentravano sullo sviluppo di nuovi componenti e applicazioni per Unix, seguendo i principi dell'open source moderno. Questo processo portò alla creazione delle prime sette versioni di Unix durante gli anni '70.

Unix divenne un potente catalizzatore per l'evoluzione dell'informatica. In effetti, si può sostenere che lo sviluppo congiunto di Unix abbia contribuito a definire per la prima volta l'informatica come scienza a sé stante. Unix ha avuto numerose conseguenze positive nell'ambito scientifico:

1. Ha creato un ambiente comune in cui i ricercatori potevano condurre esperimenti e condividere le risorse.


2. Ha promosso il riutilizzo e il miglioramento del software sviluppato.
Ottenere una copia del sistema operativo era piuttosto semplice e davvero poco costoso: bastava pagare le spese di spedizione del supporto. In breve tempo, si formò una comunità mondiale a livello universitario incentrata sullo sviluppo di nuove componenti e applicazioni per Unix, seguendo le linee guida dell'[[open source]] moderno. Grazie a questo processo, nel corso degli [[Anni 1970|anni settanta]], videro la luce le prime sette versioni del sistema operativo.


3. Ha segnato il passaggio da un modello di lavoro isolato in laboratorio a una collaborazione comunitaria, consentendo a chiunque di contribuire.
Unix costituì un forte aggregatore per la nascente scienza dell'informazione. Di fatto, si può addirittura affermare che fu il suo sviluppo congiunto a definire per la prima volta l'idea di [[informatica]] come scienza. Unix ha prodotto inoltre una serie di conseguenze altamente desiderabili in ambito scientifico:
# la creazione di un ambiente comune all'interno del quale i ricercatori potevano verificare e controllare gli esperimenti;
# i lavori prodotti si potevano riutilizzare e migliorare;
# avvenne il passaggio definitivo dal laboratorio isolato a un ambiente di lavoro comunitario, dove tutti potevano contribuire.


Per risolvere i problemi di condivisione del codice, si introdusse per la prima volta la copia di file tra sistemi dislocati in parti diverse del mondo attraverso la linea telefonica. Il sistema venne chiamato [[UUCP]] (Unix to Unix Copy) e nonostante venisse ben presto surclassato dalla nascente [[ARPANET]] (in seguito [[Internet]]), costituì un esempio dell'ambiente vivace e produttivo che si era costruito attorno a Unix.
Per affrontare le sfide legate alla condivisione del codice, fu introdotto il sistema di copia di file tra sistemi situati in diverse parti del mondo tramite la linea telefonica, noto come UUCP <ref>{{Cita pubblicazione|data=2019-08-01|titolo=UUCP|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=UUCP&oldid=106912078}}</ref>(Unix to Unix Copy). Sebbene fosse successivamente superato dall'ascesa di ARPANET<ref>{{Cita pubblicazione|data=2023-06-19|titolo=ARPANET|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=ARPANET&oldid=134054145}}</ref> (che sarebbe diventata Internet<ref>{{Cita pubblicazione|data=2023-09-13|titolo=Internet|rivista=Wikipedia|lingua=it|accesso=2023-10-04|url=https://it.wikipedia.org/w/index.php?title=Internet&oldid=135436419}}</ref>), UUCP rappresentò un esempio del vivace e produttivo ecosistema che si era sviluppato intorno a Unix.


=== La commercializzazione ===
=== La commercializzazione ===

Versione delle 18:49, 4 ott 2023

Disambiguazione – Se stai cercando la famiglia di sistemi di tipo Unix, vedi Unix-like.
Unix
sistema operativo
Logo
Logo
SviluppatoreBell Laboratories
ProprietarioThe Open Group
FamigliaUnix-like
Release inizialeUnix Version 1 (1969)
Release correnteUNIX System V Release 4 (1989)
Tipo di kernelKernel monolitico
Tipo licenzaSoftware proprietario
LicenzaAll'inizio nessuna, dopodiché diverse. Alcune parti sono Software proprietario altre free o open-source.
Stadio di sviluppoTerminato. Sono disponibili, comunque, diverse implementazioni derivate.
PredecessoreMultics
SuccessoreBSD, GNU, kernel Linux, Solaris, AIX, HP-UX, macOS, Tru64 UNIX, SCO UnixWare, Xenix e altri.
Sito webopengroup.org/unix

Unix (ufficialmente registrato come UNIX) è un sistema operativo di tipo proprietario e portabile per computer. Originariamente sviluppato da un gruppo di ricerca presso i laboratori AT&T e Bell Laboratories, il team iniziale includeva luminari come Ken Thompson e Dennis Ritchie. Storicamente, Unix è stato ampiamente adottato come sistema operativo principale per sistemi mainframe a partire dagli anni settanta.

Unix si è affermato come uno dei sistemi operativi più influenti e versatili nella storia dell'informatica. La sua architettura modulare e flessibile, insieme alla capacità di funzionare su una vasta gamma di hardware, lo ha reso popolare sia in ambito aziendale che accademico.

Le sue caratteristiche distintive includono un sistema di gestione dei file gerarchico, una shell potente e programmabile e un'ampia gamma di utilità e comandi da riga di comando. Queste caratteristiche hanno reso Unix una scelta ideale per sviluppatori, ricercatori e professionisti dell'informatica in tutto il mondo.

Negli anni, Unix ha dato origine a numerose varianti e sistemi operativi basati su Unix, tra cui Linux e macOS. La sua eredità continua a influenzare la progettazione dei sistemi operativi moderni e rimane un punto di riferimento nella storia dell'informatica.

Storia

Unix è stato originariamente concepito presso i Bell Laboratories[1] (AT&T[2] Corp.). Il primo sistema operativo che può essere considerato il precursore di "Unix" fu ideato da Ken Thompson[3] nel 1969[4]. La motivazione dietro la sua creazione era quella di eseguire un programma denominato "Space Travel[5]". Questo software simulava con precisione i movimenti celesti, compresi quelli del Sole e dei pianeti, insieme al percorso di una navicella spaziale capace di atterrare in varie località.

Questa pionieristica creazione rappresentò un passo significativo nella storia dei sistemi operativi e pose le basi per lo sviluppo del sistema Unix che oggi conosciamo. La sua versatilità e la capacità di eseguire un'ampia gamma di applicazioni hanno reso Unix uno dei sistemi operativi più influenti nella storia dell'informatica.

I Bell Laboratories (anni sessanta)

Evoluzione di Unix nel tempo.

Lo sviluppo di Unix ha le sue radici in un progetto precedente, noto come Multics, che fu tuttavia abbandonato dai Bell Laboratories a causa della sua eccessiva complessità.

Multics era all'avanguardia per il suo tempo, essendo un sistema operativo progettato per il supporto del timesharing, consentendo l'esecuzione di applicazioni condivise. La decisione di sviluppare Multics all'interno dei laboratori era motivata dalla mancanza di supporto da parte del sistema operativo preesistente sui computer Bell, noto come BESYS, il quale era essenzialmente un'estensione dell'hardware. BESYS richiedeva un intervento manuale massiccio da parte degli operatori, che dovevano caricare manualmente ogni sequenza di operazioni, comportando un notevole spreco di tempo.

L'obiettivo alla base della creazione di Multics era l'automatizzazione di queste operazioni di timesharing[6]. Tuttavia, il progetto si rivelò estremamente complesso, specialmente per i ricercatori abituati ai sistemi operativi tradizionali e lineari. Di conseguenza, Multics fu presto abbandonato in favore di un sistema molto più semplice ma altrettanto modesto chiamato GECOS.

Nonostante la decisione di abbandonare Multics[7], alcuni ricercatori decisero di continuare lo sviluppo del progetto. Ken Thompson, Dennis Ritchie, Joe Ossanna e Douglas McIlroy[8] furono tra coloro che non si arresero. Con il loro impegno, nacque la prima versione di Unics (Uniplexed Information and Computing Service) su un minicomputer PDP-7, scritta completamente in linguaggio assembly. Successivamente, il nome fu modificato definitivamente in Unix, su suggerimento di Brian Kernighan e con il sostegno di Dennis Ritchie. Il nome Unix sottolineava l'approccio semplice del progetto rispetto alla complessità di Multics.

L'evoluzione di Unix seguì la filosofia di sviluppo proposta da Ken Thompson nel 1969, che può essere riassunta dalla massima: "Scrivere programmi che facciano una cosa e la facciano bene. Scrivere programmi che lavorino insieme. Scrivere programmi per gestire flussi di testo, perché questa è un'interfaccia universale."

L'introduzione del linguaggio di programmazione C[9] è stata una fase cruciale nella storia di Unix. Sviluppato da Thompson e Ritchie[10] tra il 1969 e il 1973[11], il linguaggio C ha consentito di portare il kernel di Unix su piattaforme diverse da quella originale (PDP-7[12]), rappresentando il primo software in grado di funzionare in ambienti molto diversi. Unix è stato arricchito da un insieme di applicazioni standard per la gestione di file e utenti, molte delle quali sono ancora in uso nei moderni sistemi operativi.

Prime applicazioni in azienda (anni settanta)

Esempio di mainframe

I Bell Laboratories erano una divisione dell'AT&T, l'azienda responsabile delle telecomunicazioni negli Stati Uniti, e detenevano i diritti su Unix. Nei primi anni settanta, negli Stati Uniti, si stava verificando una trasformazione nel sistema telefonico nazionale. Si stava passando all'uso di mini-computer per gestire il traffico di voce e dati. Questi mini-computer erano dotati di un software minimale che limitava le operazioni di manutenzione.

Tuttavia, si scoprì presto che Unix, grazie alla sua moderna architettura e alla sua versatilità, poteva consentire ai mini-computer di eseguire operazioni molto più complesse. Questa fu la prima volta in cui le operazioni di manutenzione poterono essere gestite centralmente e a distanza, senza la necessità di inviare tecnici in loco per affrontare e risolvere ogni problema.

Unix rappresentò un passo significativo nell'evoluzione della gestione dei sistemi informatici, contribuendo a rendere più efficienti le operazioni di manutenzione e a consentire un controllo centralizzato delle risorse informatiche.

Sviluppo ad opera del mondo universitario (anni ottanta e novanta)

Unix System V

AT&T scelse di non richiedere royalty per l'uso e la modifica di Unix, ma questa decisione non fu dettata da motivi di beneficenza, bensì da considerazioni di natura politica. Essendo un monopolista nel settore delle telecomunicazioni, AT&T era soggetta a leggi che limitavano la gamma di servizi che poteva offrire. Nonostante Unix non fosse direttamente correlato alle telecomunicazioni, aveva alcune implicazioni in questo ambito. In un contesto in cui AT&T era oggetto di intense critiche per la sua posizione dominante, l'azienda decise di permettere la distribuzione gratuita del codice sorgente di Unix alle università di tutto il mondo, a fini di studio.

Ottenere una copia di Unix era relativamente semplice e poco costoso; bastava coprire le spese di spedizione del supporto. Questo portò rapidamente alla formazione di una comunità globale di università che si concentravano sullo sviluppo di nuovi componenti e applicazioni per Unix, seguendo i principi dell'open source moderno. Questo processo portò alla creazione delle prime sette versioni di Unix durante gli anni '70.

Unix divenne un potente catalizzatore per l'evoluzione dell'informatica. In effetti, si può sostenere che lo sviluppo congiunto di Unix abbia contribuito a definire per la prima volta l'informatica come scienza a sé stante. Unix ha avuto numerose conseguenze positive nell'ambito scientifico:

1. Ha creato un ambiente comune in cui i ricercatori potevano condurre esperimenti e condividere le risorse.

2. Ha promosso il riutilizzo e il miglioramento del software sviluppato.

3. Ha segnato il passaggio da un modello di lavoro isolato in laboratorio a una collaborazione comunitaria, consentendo a chiunque di contribuire.

Per affrontare le sfide legate alla condivisione del codice, fu introdotto il sistema di copia di file tra sistemi situati in diverse parti del mondo tramite la linea telefonica, noto come UUCP [13](Unix to Unix Copy). Sebbene fosse successivamente superato dall'ascesa di ARPANET[14] (che sarebbe diventata Internet[15]), UUCP rappresentò un esempio del vivace e produttivo ecosistema che si era sviluppato intorno a Unix.

La commercializzazione

Logo BSD

Con lo smembramento di AT&T nel 1984 nelle famose 7 baby-bells, società più piccole che operavano a livello locale, la condivisione gratuita di Unix ebbe fine. Solamente alcune Università, come quella di Berkeley in California, continuarono a sviluppare la loro versione derivata da Unix. AT&T aveva dimesso la propria posizione di operatore dominante ed era diventato un carrier per le chiamate tra i vari stati. La commercializzazione di Unix non conosceva più ostacoli e pertanto Unix System III (basato sulla settima versione) fu la prima release ad essere pubblicata dietro corrispettivo di un prezzo e senza codice sorgente. Seguì pochi anni dopo la versione UNIX System V, che includeva il supporto ad altre architetture e l'inserimento dell'editor vi originariamente sviluppato dalla derivazione californiana di Unix, BSD.

Altre società cominciarono a offrire versioni commerciali di Unix. Alcune ottennero un'apposita licenza di utilizzo del codice da parte di AT&T, mentre altre si affidarono al ramo di sviluppo creato dall'Università di Berkeley. Fu appunto da questa derivazione che Bill Joy creò SunOS (ora Solaris e OpenSolaris) e fondò Sun Microsystems nel 1982. Anche Microsoft ebbe la propria versione di Unix, che chiamò XENIX, poi acquisita dalla SCO (Santa Cruz Operation). Si deve proprio alla SCO l'opera per renderla compatibile con i sistemi Intel 386.

Nel 1988, nacque il primo vero standard di Unix, il SVR4 o System V Release 4, che racchiudeva tutte le innovazioni promosse dalle varie società che avevano commercializzato Unix finora come Sun, BSD, SCO e IBM.

Nel 1993, AT&T decise di vendere tutti i diritti di Unix a Novell, con i quali creò UnixWare, un sistema che integrava la tecnologia alla base di NetWare. Poi UnixWare si trovò a dover competere con Microsoft Windows NT, ma essendo mancante di un supporto commerciale valido alla lunga perse la battaglia. Nel 1995, alcuni diritti sullo sviluppo e commercializzazione vennero distribuiti a SCO. Non si conosce di preciso quali diritti siano stati ceduti, e la questione è attualmente alla base dell'odierna causa che contrappone le due società.

La causa di SCO contro Linux (anni duemila)

Lo stesso argomento in dettaglio: Causa legale tra SCO e IBM.
Oracle Solaris

Inizialmente, la SCO supportò Linux con una propria distribuzione e collaborò attivamente nell'intento di rendere più appetibile il suo Unix schiacciato dalla concorrenza Microsoft; accadde, però, che, mentre la SCO perdeva le vendite a causa di un inadeguato supporto commerciale, le piccole ditte di Linux crescevano incredibilmente. La crescita di Linux causò non pochi problemi a SCO, che venne schiacciata dalla forte crescita di Linux da un lato e dalla forza commerciale di Microsoft dall'altro. Decise allora di ricorrere per vie legali contro IBM e altre società che utilizzavano fortemente Linux al centro del proprio business. Le accuse riguardarono presunte violazioni di copyright nel kernel di Linux; ciò significava che alcune parti di Linux, secondo SCO, fossero state copiate dal kernel di Unix, di cui SCO affermava di detenere i diritti.

All'inizio del 2007, SCO fornì i dettagli specifici della presunta violazione di copyright. Diversamente dalle precedenti affermazioni che vedevano SCO proprietaria di 1 milione di righe di codice, specificarono soltanto 326 linee di codice, la maggior parte del quale non era coperto da copyright.[16] Ad agosto 2007, la corte nel caso Novell stabilì, per cominciare, che SCO non possedeva neanche i diritti di copyright su Unix.[17]

Curiosamente anche BSD soffrì di un attacco legale simile (relativamente alla neo-distribuzione BSD/386), ad opera della AT&T. La disputa si concluse nel 1994, largamente a favore di BSD, dove, tra 18000 file, soltanto 3 dovettero essere rimossi dal sistema e 70 modificati in termini di licenza.

Unix e software libero

File:Schermata di macOS Big Sur.png
MacOS, sistema operativo derivato da UNIX

Nel 1983, Richard Stallman lanciò un progetto per creare GNU, un clone di Unix che fosse software libero, ossia garantisse completa libertà di utilizzo e modifica da parte di utenti e sviluppatori, sottraendo così Unix ai produttori di software proprietario. Nel 1991, il lavoro fu completato con la creazione del kernel Linux da parte di Linus Torvalds. Il mondo Unix conobbe così una seconda giovinezza.

Attualmente, i sistemi operativi della famiglia Unix o Unix-like più diffusi sono MacOS su computer Apple, per quanto riguarda l'ambito desktop, mentre GNU/Linux è sicuramente quello dominante in ambito server, anche se c'è una crescente diffusione anche sui netbook e i personal computer. Tra il 2007 e il 2008, diversi costruttori, tra cui Dell, ASUS, Lenovo e Hewlett-Packard, hanno proposto al grande pubblico computer con GNU/Linux preinstallato, aprendo a tale sistema operativo le porte dell'informatica personale. Dal 2009, si stanno diffondendo computer palmari e telefoni cellulari che utilizzano Android, un sistema operativo basato sul kernel Linux e modificato da Google per essere estremamente leggero.

Descrizione

Logo Linux, sistema operativo derivato da UNIX

Il sistema operativo Unix può essere riassunto in base alle seguenti caratteristiche:

  • Multiutente: più utenti possono interagire contemporaneamente (da terminali diversi) con il sistema, che evita interferenze tra le attività dei vari utenti. All'interno del sistema ogni utente è individuato univocamente da un nome logico (lo username). Inoltre, gli utenti sono suddivisi in gruppi, ciascuno individuabile univocamente mediante il suo nome (il groupname). In ogni sistema è definito l'utente root, che rappresenta l'amministratore di sistema, e che, in generale, non ha alcuna limitazione nell'accesso alle risorse del sistema stesso;
  • Multiprogrammato (multitasking): il suo nucleo o kernel può supportare la contemporanea esecuzione di più processi gestiti a divisione di tempo (timesharing);
  • Gestione della memoria virtuale: il sistema di gestione della memoria virtuale in Unix si basa su paginazione e segmentazione. Queste caratteristiche consentono ad ogni processo di indirizzare un'area di memoria di dimensioni eventualmente superiori a quelle della memoria centrale effettivamente disponibile;
  • Portabile: grazie all'impiego del linguaggio C nella realizzazione del sistema, esso gode di un'elevata portabilità, ed è oggi disponibile su una vasta gamma di architetture hardware di processori;
  • Aperto: soprattutto nelle versioni più recenti le caratteristiche di Unix si sono via via uniformate allo standard POSIX. Inoltre, Unix realizza alcuni dei più diffusi servizi e protocolli di comunicazione della rete Internet, rendendo possibile una facile integrazione di sistemi Unix all'interno di una rete;
  • Ambiente di sviluppo per programmi scritti in "C": Unix mantiene tuttora uno stretto legame con il linguaggio di programmazione "C". Questa relazione si manifesta anche nella disponibilità all'interno delle utilità di sistema di un insieme piuttosto ricco di strumenti per lo sviluppo di applicazioni in "C" (tra i quali il compilatore cc).

Specifiche e certificazioni

Schermata di FreeBSD, un distribuzione derivata di Unix

La più importante famiglia di sistemi operativi derivati da Unix, ma non certificati come UNIX, è quella di BSD, di cui fanno parte FreeBSD, NetBSD, OpenBSD, DragonFly BSD e molti altri. Da ricordare che nella famiglia Unix è presente anche MINIX.

C'è una grande differenza tra le diciture "Unix", "Unix-like" e "UNIX":

Galleria d'immagini

Note

  1. ^ Bell Laboratories, in Wikipedia, 26 agosto 2023. URL consultato il 4 ottobre 2023.
  2. ^ AT&T, su it.wikipedia.org.
  3. ^ Ken Thompson, in Wikipedia, 31 marzo 2023. URL consultato il 4 ottobre 2023.
  4. ^ 1969, in Wikipedia, 3 ottobre 2023. URL consultato il 4 ottobre 2023.
  5. ^ Space Travel, in Wikipedia, 13 giugno 2023. URL consultato il 4 ottobre 2023.
  6. ^ Time-sharing, in Wikipedia, 7 maggio 2020. URL consultato il 4 ottobre 2023.
  7. ^ Multics, in Wikipedia, 3 ottobre 2023. URL consultato il 4 ottobre 2023.
  8. ^ Douglas McIlroy, in Wikipedia, 17 settembre 2023. URL consultato il 4 ottobre 2023.
  9. ^ C (linguaggio di programmazione), in Wikipedia, 23 settembre 2023. URL consultato il 4 ottobre 2023.
  10. ^ Dennis Ritchie, in Wikipedia, 31 marzo 2023. URL consultato il 4 ottobre 2023.
  11. ^ 1973, in Wikipedia, 3 ottobre 2023. URL consultato il 4 ottobre 2023.
  12. ^ PDP-7, in Wikipedia, 3 maggio 2019. URL consultato il 4 ottobre 2023.
  13. ^ UUCP, in Wikipedia, 1º agosto 2019. URL consultato il 4 ottobre 2023.
  14. ^ ARPANET, in Wikipedia, 19 giugno 2023. URL consultato il 4 ottobre 2023.
  15. ^ Internet, in Wikipedia, 13 settembre 2023. URL consultato il 4 ottobre 2023.
  16. ^ Report from the Courthouse 7 March, su groklaw.net. URL consultato il 22 dicembre 2009 (archiviato dall'url originale il 7 agosto 2011). Groklaw article
  17. ^ Court Rules: Novell owns the UNIX and UnixWare copyrights, su groklaw.net. Groklaw article

Bibliografia

  • Hahn Harley, Guida a Unix, Mc-Graw Hill, 1996. ISBN 88-386-0872-5.
  • Maurizio Matteuzzi e Paolo Pellizzardi, Ambiente Unix, Gruppo Editoriale Jackson, 1985, ISBN 88-7056-221-2.
  • (EN) Dennis M. Ritchie e Ken Thompson, The UNIX Time-Sharing System (PDF), in The Bell System Technical Journal, vol.57(6), 1978. URL consultato il 17 aprile 2018 (archiviato dall'url originale il 10 dicembre 2005).
  • NMI Club (a cura di), No SCOpyright. Il caso SCO contro Linux, Antonella Beccaria, Francesco Marchetti-Stasi, Bernardo Parrella, Emmanuele Somma, Viterbo, Stampa Alternativa, 2004, ISBN 88-7226-806-0. URL consultato il 3 luglio 2010 (archiviato dall'url originale il 12 ottobre 2007).

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàGND (DE4061835-3 · BNF (FRcb11968227m (data) · J9U (ENHE987007364985605171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica