Unix vs Linux: la storia di come Unix iniziò e influenzò Linux
Molti dei comandi della seconda edizione di Unix del 1972 sono ancora usati nel Linux di oggi. Scopri come è nato Unix e come è cambiato nel tempo.
Oggi pensiamo a Unix come a Linux e molte persone vedono lo Unix originale attraverso una lente Linux.
Ma Unix ha una lunga storia e l’aspetto di Unix è cambiato nel tempo. Quando parliamo di “com’era nei primi giorni di Unix“, non abbiamo davvero un’idea solida perché il modo in cui lavoriamo è cambiato molto da allora.
Dal prototipo al primo Unix
Dai un’occhiata a come è nato Unix.
Nel 1969, Ken Thompson, ricercatore presso i Bell Labs, stava sperimentando i progetti di sistemi operativi. I Bell Labs avevano un computer PDP-7 con un dispositivo periferico interessante: un’unità disco molto veloce (per l’epoca). Ken Thompson ha sperimentato scrivendo un’interfaccia personalizzata per massimizzare il throughput per l’unità.
Ad un certo punto, Ken Thompson si è reso conto di aver lavorato così tanto sull’interfaccia che era quasi un sistema operativo stesso. Ken Thompson pensava di aver bisogno di altre 3 settimane per trasformarlo in un prototipo di sistema operativo: una settimana ciascuno per scrivere un editor, un assemblatore e un kernel.
Quel prototipo fu l’inizio del sistema Unix.
Quel primo sistema operativo prototipo si è rivelato un’idea piuttosto chiara. E nel corso del tempo, Ken Thompson e altri dei Bell Labs vi hanno aggiunto nuovi programmi, con lo schema di progettazione generale secondo cui ogni programma dovrebbe essere piccolo e fare una cosa davvero bene. Il nuovo sistema è stato soprannominato Unix, un gioco sul nome Multics, un progetto fallito a cui Bell Labs aveva partecipato con MIT e GE alcuni anni prima.
Crescita dei primi Unix
Nel novembre 1971, i Bell Labs raccolsero i programmi e rilasciarono Unix 1st Edition, seguito da Unix 2nd Edition nel luglio 1972.
Queste prime versioni di Unix non sono troppo lontane dai sistemi Linux di oggi.
Molti dei comandi su cui facciamo affidamento ogni giorno in Linux erano già presenti in Unix 2a edizione, inclusi cat
, chdir
(come cd
), chmod
, chown
, cmp
, cp
, date
, df
, du
, echo
, find
, ln
, ls
, man
, mkdir
, mount
, mv
, rm
, rmdir
, sort
, umount
, wc
, e who
. E alcuni altri comandi che esistono ancora ma non vengono utilizzati spesso, come ar
(archivio), dc
(calcolatrice da tavolo), ed
(editor) e sum
(checksum del file). Unix 2nd Edition supportava anche le prime versioni di e-mail e messaggi istantanei, con mail
(e-mail), mesg
e write
(messaggi agli utenti).
I programmatori avevano una varietà di compilatori e strumenti per aiutarli a scrivere nuovi programmi, inclusi as
(assembler), bas
(programmazione BASIC), cc
(compilatore C), db
(debugger), fc
(compilatore FORTRAN), ld
(linker), nm
(elenco nomi), od
(ottale dump), strip
, e un
(trovare simboli non definiti). È possibile riconoscere questi strumenti sui sistemi Linux odierni, anche se potremmo usarne nomi leggermente diversi, ad esempio gcc
per la compilazione di programmi C.
Alcuni comandi Unix hanno cambiato nome nel tempo, ma potresti ancora riconoscere i loro precedenti predecessori in Unix 2nd Edition. Programmi come la sh
shell (che supporta le prime versioni di :
labels, goto
, e if
), check
e salv
(like fsck
), dsw
(like rm -i
), istat
(inode status), m6
(un primo macro processore, il predecessore dell’odierno m4
), e tm
(system time information, simile a uptime
e altri comandi moderni).
Altri comandi erano cimeli del loro tempo, dedicati a sistemi che non esistono più. Ad esempio, il manuale Unix 2nd Edition definisce gli strumenti per comunicare con un mainframe Honeywell 6070, inclusi dpd
(daemon del telefono dati), tss
(sistema di time-sharing di Honeywell 6070) e opr
(file di stampa “offline” su Honeywell 6070).
Elaborazione del testo
Unix divenne rapidamente una piattaforma popolare all’interno dei Bell Labs, quindi Ken Thompson cercò hardware più potente per far funzionare il nuovo sistema. Sfortunatamente, il management non ha voluto investire nella ricerca sui sistemi operativi, essendosi sentito bruciato dal progetto Multics fallito. Ma il piccolo team Unix ha trovato una soluzione alternativa.
L’ufficio brevetti stava per acquistare un nuovo sistema informatico da utilizzare per scrivere domande di brevetto. Tuttavia, il nuovo software non sarebbe pronto subito. Il team Unix ha fatto una controproposta: acquistare un nuovo PDP-11 per i Labs per sviluppare la prossima versione di Unix e, a sua volta, il team Unix avrebbe aggiornato il roff
(sistema di elaborazione del testo) per supportare le funzionalità necessarie per scrivere domande di brevetto.
Ed è per questo che Unix 2nd Edition includeva anche una gamma di strumenti per l’elaborazione e la stampa dei documenti, tra cui nroff
(la “nuova versione di roff”), ov
(pagine stampate sovrapposte), pr
(preprocessore di stampa) e type
(stampa su telescrivente).
Successivamente, quando i Labs hanno acquistato un tipografo, il nroff
programma di composizione è stato aggiornato con nuove funzionalità. troff
(la “versione tipografica di roff”) apparve per la prima volta nella 4a edizione di Unix nel 1973. Altri strumenti di formattazione del testo supportati troff
, come la eqn
generazione di equazioni e tbl
la creazione di tabelle.
Altri strumenti di elaborazione del testo ormai familiari non sarebbero apparsi in Unix fino a revisioni successive. In particolare, la capacità di inviare l’output di un comando in un altro (usando le pipe) non apparve fino alla 3a edizione di Unix nel 1973. Con le pipe arrivarono nuovi programmi che fungevano da filtri, inclusi grep
(Unix 4a edizione, 1973) e tee
(Unix 5a Edizione, 1974). La prima shell Unix era ancora piuttosto primitiva e non sarebbe stata sostituita con una Bourne Shell più ricca di funzionalità fino alla settima edizione di Unix nel 1979.
Radici Unix in Linux
Trovo affascinante questa “archeologia informatica”. Non pensiamo spesso alle origini dei comandi di Linux che usiamo ogni giorno. Questi comandi hanno avuto origine in un’epoca più semplice in cui la memoria del computer veniva misurata in kilobyte, quindi gli strumenti dovevano essere di piccole dimensioni e focalizzati sulla natura.
A dire il vero, Unix di 50 anni fa mancava dell’ampiezza delle opzioni della riga di comando di cui godiamo oggi. Ad esempio, il comando ls
moderno pubblicizza 60 diverse opzioni della riga di comando, mentre ls
della seconda edizione di Unix ne supportava solo 5. Ma si è mostrato chiaramente promettente, anche nei primi giorni, ed è cresciuto rapidamente.
Oggi, ogni sistema Unix può far risalire i suoi antenati allo Unix originale. Ciò include Linux, che utilizza strumenti GNU basati sulla documentazione Unix. Linux è decisamente molto lontano dalle sue radici Unix, supporta architetture moderne e sfoggia una gamma di utili strumenti moderni, ma l’esperienza di base della riga di comando è ancora abbastanza simile a Unix degli anni ’70.
La prossima volta che usi ls
per elencare i file sul tuo server, considera che stai usando un comando di 50 o più anni fa. E sta ancora funzionando.
Fonte: https://www.redhat.com/sysadmin/unix-linux-history
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.