Nonostante l'alimentazione più di 90% dei carichi di lavoro cloud di oggi, Unix (e Linux con esso) ha avuto umili origini. Jim Hall discute di come Unix dei Bell Labs negli anni '90 1970 divenne la spina dorsale di molti moderni sistemi operativi.
Le origini di Unix
Agli albori dell'informatica, gli utenti hanno interagito con il computer attraverso una serie di mezzi bizantini. L'ENIAC originale non aveva nemmeno una "interfaccia di programmazione" come ora crediamo; Invece, i programmatori si sono collegati “unità funzionali” separati tramite spine e cavi. Man mano che i computer diventavano più pratici, è diventata una piattaforma per il trading batch, come attraverso pile di schede dati perforate.
Sui sistemi successivi, più “moderno” come il mainframe, l'amministrazione del sistema era ancora complessa. È necessario creare un file specificando la quantità di spazio su disco per allocare più altri attributi. Gli operatori interagivano regolarmente con il sistema utilizzando dispositivi terminali cartacei simili a macchine da scrivere.. E in quei primi giorni, era così che le persone si aspettavano di lavorare con i computer.
A metà e alla fine degli anni '90 1960, el MIT, Bell Labs e GE hanno collaborato a un nuovo sistema chiamato MULTICS, il Servizio Informatica e Informazione Multiplex. MULTICS doveva essere una rivoluzione nell'informatica. Ma attraverso il suo sviluppo, Anche MULTICS è diventato sempre più complesso. Frustrato dal progetto, Bell Labs in pensione, lasciando che altri portino avanti il progetto in seguito, anche quando molto tardi.
Intanto, Ken Thompson è tornato da MULTICS ai Bell Labs per lavorare su altri progetti. Uno sforzo ha coinvolto un'unità disco particolarmente veloce collegata a un minicomputer DEC PDP-7.. Thompson voleva ottenere il massimo dalle prestazioni di questa unità e, per estensione, su qualsiasi dispositivo di archiviazione. Quindi, iniziato a lavorare su un programmatore di dischi.
Quando ci si avvicina a questo progetto, Thompson si rese conto che il suo progetto di prova stava entrando nel territorio del “sistema operativo”. Per le prossime tre settimane, mentre sua moglie era in vacanza per far visita ai suoi genitori, Thompson ha riempito i pezzi mancanti e ha aggiunto un'interfaccia di chiamata esecutiva, un assemblatore, un editor e una shell. E da quei piccoli inizi è nato Unix.
Sviluppo Unix
Durante tutto il suo sviluppo presso i Bell Labs, non c'era un “progettazione principale” che definiva cosa Unix avrebbe dovuto fare o diventare. Anziché, Unix è cresciuto in modo organico poiché diversi utenti avevano bisogno di nuove funzionalità.
Una delle mie prime storie Unix preferite è come i ricercatori Unix sono riusciti a comprare un nuovo sistema informatico per continuare il loro lavoro e allo stesso tempo hanno creato un nuovo comando Unix standard. Il dipartimento dei brevetti ha pianificato l'acquisto di un nuovo sistema informatico dedicato per la scrittura di domande di brevetto per conto di Bell Labs. Il team di Unix ha suggerito al dipartimento dei brevetti di acquistare un nuovo minicomputer DEC PDP-11, e il team Unix installerebbe Unix e scriverebbe software personalizzato per aiutare il dipartimento dei brevetti a scrivere domande di brevetto. Quel nuovo software per scrivere brevetti? Una nuova implementazione del sistema di formattazione dei documenti Roff, esso stesso una derivazione di un precedente programma CTSS chiamato RUNOFF. Oggi, “Nuovo Roff” oh nroff
, è una parte fondamentale di Unix.
Agli stessi comandi Unix venivano dati nomi molto brevi. il ls
, rm
, mv
, e altri comandi Unix standard erano così brevi perché i primi terminali ticker Model 33 utilizzato nei Bell Labs ha richiesto uno sforzo significativo per digitare ogni lettera. Era più facile scrivere rm
di un nome di comando più descrittivo come remove
, oh cp
Quello copy
.
Una delle caratteristiche distintive di Unix, il “tubatura”, che consentiva a un comando di inviare il proprio output a un altro comando per un'ulteriore elaborazione, è stato aggiunto anche su richiesta di un altro ricercatore dei Bell Labs, Douglas McIlroy. Fino ad allora, i comandi agivano su singoli file contemporaneamente. Ma con i tubi, puoi concatenare più comandi per creare risultati più interessanti. Come esempio, il ls
comando elenca i file in una directory, e il wc
comando conta le righe del tuo input. Se colleghi i due comandi insieme come ls|wc
, ottiene il numero di file in una directory.
Altri comandi sono stati aggiunti in modo simile perché qualcuno li ha richiesti. Thompson ha scritto il grep
comando basato su un suggerimento di McIlroy che Unix dovrebbe avere un'utilità per cercare il testo nei file. Thompson ha riutilizzato il codice Unix ed
editor per creare un'utilità per eseguire a “stampa regex globale” di qualsiasi testo che corrisponda a quello dell'utente frase normale. Questo comando “stampa regex globale” veniva semplicemente chiamato grep
, ora un comando Unix standard.
Unix ovunque
Unix ha continuato a crescere, principalmente come ricerca e come piattaforma per progetti all'interno dei Bell Labs fino alla metà degli anni '90. 1980. In quel periodo, un gruppo di diversi fornitori iniziò a commercializzare le proprie versioni di Unix, include HP-UX di Hewlett Packard, IBM AIX, Xenix di Microsoft, SunOS di Sun. (in seguito ribattezzato Solaris), tra gli altri. Sopra 1983, Richard Stallman ha avviato un nuovo progetto per creare una versione software gratuita di Unix, chiamato GNU (un ricorsivo acronimo, cosa significa “GNU non è Unix”).
Ogni distribuzione Unix era leggermente diversa e incompatibile tra loro. Alcuni sono stati derivati dall'originale AT Unix&T Bell Lab, come HP-UX e AIX. Altre versioni di Unix sono state derivate da una popolare variante universitaria dell'Università della California a Berkeley, Richiesta BSD per “Distribuzione del software Berkeley”. Molti dei comandi erano uguali o simili tra le diverse versioni di Unix, ma i dettagli su come gestiva il sistema in generale erano molto diversi. Una differenza fondamentale è stata il modo in cui è stato avviato Unix: A&T “Sistema V” Utilizza Unix livelli di corsa controllato da una centrale /etc/inittab
file, mentre BSD Unix avvia tutto usando eseguire il controllo trattini che iniziano con /etc/rc
testo.
Altri sistemi Unix sono andati e venuti durante i decenni di 1980 e 1990. Steve Jobs, dopo essere stato estromesso dalla carica di CEO di Apple in 1985, fondo NeXT, che ha prodotto la propria variante di Unix, derivato da BSD. NeXT ha portato diverse innovazioni in Unix, incluso un microkernel basato su Mach. Il desktop grafico NeXT, Passo successivo, aggiunto altre nuove idee, come PostScript Display per creare grafica su schermo, un “bacino” delle applicazioni disponibili e in esecuzione, e un livello di applicazione orientato agli oggetti con toolkit.
Sopra 1991, uno studente finlandese di nome Linus Torvalds iniziò a lavorare su un progetto che in seguito divenne il kernel Linux. Il 25 agosto 1991, Torvalds ha pubblicato un breve annuncio su un gruppo di discussione Usenet sul suo progetto di hobby e ha invitato altri a contribuire.. Torvalds ha rilasciato Linux sotto la GNU General Public License, il che significava che chiunque poteva modificare Linux per correggere bug o aggiungere nuove funzionalità. Questo modello di “Open Source” oh “software libero” promosse rapidamente lo sviluppo di nuovi sistemi Linux.
Le comunità sono nate intorno a Linux, trasportare strumenti GNU e altri comandi Unix per l'esecuzione su Linux. Sopra 1992, gli sviluppatori hanno portato il sistema X Window, cosa ha dato a Linux la sua prima interfaccia utente grafica?. Il risultato è ciò a cui pensa la maggior parte delle persone quando diciamo “Linux”, benché Linux in realtà è solo il kernel che esegue tutto.
Unix moderno
Sebbene esistano ancora sistemi Unix proprietari, la maggior parte dei sistemi Unix sono Linux. Almeno sui server web, Linux domina. Linux è anche comune per molti carichi di lavoro aziendali, inclusi server di applicazioni e server di database. Difficile sapere esattamente quanti server Linux stanno eseguendo cose, Ma molte stime suggeriscono che Linux esegue più di due terzi dei server Web e di altre infrastrutture Internet.. Anche Microsoft è compatibile con Linux; la tua piattaforma Azure esegue Linux, allo stesso modo del sottosistema Windows per Linux su desktop Windows.
Sulla scrivania, Linux non ha mai preso piede in modo significativo. Una battuta ricorrente nella comunità Linux è “L'anno prossimo lo sarà Anno desktop Linux. ” Ma Windows regna sovrano sul desktop. Nonostante questo, se stai cercando Unix sul desktop, considera Apple macOS. Sopra 1996, come parte del ritorno di Steve Jobs in Apple come CEO, Apple ha acquistato NeXT e ha utilizzato NeXT come base per il sistema operativo di prossima generazione nei nuovi Mac. MacOS è davvero Unix sotto il cofano; apri una finestra di terminale e puoi trovare una shell Unix con utilità Unix standard. In realtà, macOS è un Unix ufficiale, riconosciuto dall'Open Group.
Dove sta andando Unix adesso?? Non sono più sicuro se “Unix” è l'etichetta corretta. In un'epoca in cui i sistemi Linux sono di gran lunga più numerosi Unix server, potremmo aver superato il punto in cui “Unix” ha molto significato. Non si tratta più di “Unix come piattaforma”, ma di “Linux come piattaforma”. E proprio come Unix è cresciuto oltre il suo design originale, aggiungendo nuove funzionalità dove erano necessarie, Linux continua ad evolversi per soddisfare nuove esigenze. Almeno per il prossimo futuro, riguarda “Linux”, non dare “Unix”.