Se sei uno sviluppatore di software nel vostro 20s o 30s, sei cresciuto in un mondo dominato da Linux. È stato un attore significativo nel data center per decenni, e mentre è difficile trovare rapporti definitivi sulla quota di mercato del sistema operativo, la quota di Linux sui sistemi operativi del data center potrebbe arrivare fino al 70%, con le varianti di Windows che trasportano quasi tutta la percentuale rimanente. Gli sviluppatori che utilizzano qualsiasi grande cloud pubblico possono aspettarsi che il sistema di destinazione verrà eseguito Linux., La prova che Linux è ovunque è cresciuta negli ultimi anni quando si aggiungono sistemi embedded basati su Android e Linux in smartphone, TV, automobili e molti altri dispositivi.
Anche così, la maggior parte degli sviluppatori di software, anche quelli che sono cresciuti durante questa venerabile “rivoluzione Linux” hanno almeno sentito parlare di Unix. Sembra simile a Linux, e probabilmente avete sentito la gente usa questi termini in modo intercambiabile. O forse avete sentito Linux chiamato un sistema operativo” Unix-like”.
Allora, cos’è questo Unix?, Le caricature parlano di “graybeards” simili a maghi seduti dietro schermi verdi luminosi, scrivendo codice C e script di shell, alimentati da caffè vecchio stile e preparato a goccia. Ma Unix ha una storia molto più ricca al di là di quei programmatori C barbuti dal 1970. Mentre articoli che descrivono la storia di Unix e “Unix vs. Linux” confronti abbondano, questo articolo offrirà un background di alto livello e una lista di grandi differenze tra questi mondi complementari.,
Gli inizi di Unix
La storia di Unix inizia a AT&T Bell Labs alla fine degli anni 1960 con un piccolo team di programmatori che cercano di scrivere un sistema operativo multi-tasking e multi-utente per il PDP-7. Due dei membri più importanti di questo team presso la struttura di ricerca Bell Labs erano Ken Thompson e Dennis Ritchie. Mentre molti dei concetti di Unix erano derivati dal suo predecessore (Multics), la decisione del team Unix all’inizio degli anni 1970 di riscrivere questo piccolo sistema operativo in linguaggio C è ciò che separava Unix da tutti gli altri., A quel tempo, i sistemi operativi erano raramente, se mai, portatili. Invece, per natura del loro design e del linguaggio sorgente di basso livello, i sistemi operativi erano strettamente legati alla piattaforma hardware per cui erano stati creati. Refactoring Unix sul linguaggio di programmazione C, Unix potrebbe ora essere portato su molte architetture hardware.
Oltre a questa nuova portabilità, che ha permesso a Unix di espandersi rapidamente oltre i Bell Labs per altri usi di ricerca, accademici e persino commerciali, diversi principi chiave del design del sistema operativo erano attraenti per utenti e programmatori., Per uno, la filosofia Unix di Ken Thompson divenne un potente modello di progettazione e calcolo software modulare. La filosofia Unix raccomandava di utilizzare piccoli programmi appositamente costruiti in combinazione per svolgere compiti complessi. Poiché Unix è stato progettato attorno a file e pipe, questo modello di “piping” input e output di programmi insieme in un insieme lineare di operazioni sull’input è ancora in voga oggi. In effetti, l’attuale modello di cloud serverless computing deve gran parte del suo patrimonio alla filosofia Unix.,
Rapida crescita e concorrenza
Attraverso la fine degli anni ’70 e’ 80, Unix divenne la radice di un albero genealogico che si espanse attraverso la ricerca, il mondo accademico e un crescente business del sistema operativo Unix commerciale. Unix non era un software open source, e il codice sorgente Unix era licenziabile tramite accordi con il suo proprietario, A & T. La prima licenza software conosciuta fu venduta all’Università dell’Illinois nel 1975.
Unix crebbe rapidamente nel mondo accademico, con Berkeley che divenne un importante centro di attività, dato l’anno sabbatico di Ken Thompson negli anni ’70., Con tutta l’attività intorno a Unix a Berkeley, nacque una nuova distribuzione di software Unix: la Berkeley Software Distribution, o BSD. Inizialmente, BSD non era un’alternativa a AT&Unix di T, ma un add-on con software e funzionalità aggiuntive. Quando 2BSD (la seconda distribuzione software di Berkeley) arrivò nel 1979, Bill Joy, uno studente laureato di Berkeley, aveva aggiunto programmi ormai famosi come vi
e la shell C (/bin/csh).,
Oltre a BSD, che divenne uno dei rami più popolari della famiglia Unix, le offerte commerciali di Unix esplose negli anni ’80 e negli anni’ 90 con nomi come HP-UX, IBM AIX, Sun Solaris, Sequent e Xenix. Man mano che i rami crescevano dalla radice originale, iniziarono le “guerre Unix” e la standardizzazione divenne un nuovo focus per la comunità. Lo standard POSIX è nato nel 1988, così come altri follow-on di standardizzazione tramite il Gruppo Open nel 1990.,
In questo periodo A & T e Sun hanno rilasciato System V Release 4 (SVR4), che è stato adottato da molti fornitori commerciali. Separatamente, la famiglia di sistemi operativi BSD era cresciuta nel corso degli anni, portando ad alcune varianti open source che sono state rilasciate sotto l’ormai familiare licenza BSD. Questo includeva FreeBSD, OpenBSD e NetBSD, ognuno con un mercato di riferimento leggermente diverso nell’industria dei server Unix. Queste varianti Unix continuano ad avere un certo utilizzo oggi, anche se molti hanno visto la loro quota di mercato dei server diminuire nelle singole cifre (o inferiore)., BSD può avere la più grande base di installazione di qualsiasi sistema Unix moderno oggi. Inoltre, ogni unità hardware Apple Mac spedita nella storia recente può essere rivendicata da BSD, poiché il suo sistema operativo OS X (ora macOS) è un derivato BSD.
Mentre la storia completa di Unix e delle sue varianti accademiche e commerciali potrebbe richiedere molte più pagine, per il bene del nostro articolo focus, passiamo all’ascesa di Linux.
Inserisci Linux
Quello che noi chiamiamo il sistema operativo Linux oggi è in realtà la combinazione di due sforzi dai primi anni 1990., Richard Stallman stava cercando di creare un’alternativa veramente libera e open source al sistema Unix proprietario. Stava lavorando alle utilità e ai programmi sotto il nome GNU, un acronimo ricorsivo che significa ” GNU non è Unix!”Anche se c’era un progetto kernel in corso, si è rivelato essere difficile andare, e senza un kernel, il sogno del sistema operativo libero e open source non poteva essere realizzato. Fu il lavoro di Linus Torvald-produrre un kernel funzionante e vitale che chiamò Linux-che diede vita al sistema operativo completo. Dato che Linus stava usando diversi strumenti GNU (ad esempio,, la GNU Compiler Collection, o GCC), il matrimonio tra gli strumenti GNU e il kernel Linux era una perfetta corrispondenza.
Le distribuzioni Linux hanno preso vita con i componenti di GNU, il kernel Linux, la GUI X-Windows del MIT e altri componenti BSD che potevano essere utilizzati sotto la licenza BSD open source. La popolarità iniziale di distribuzioni come Slackware e poi Red Hat ha dato al” comune utente PC ” degli anni 1990 l’accesso al sistema operativo Linux e, con esso, molte delle funzionalità e utilità proprietarie del sistema Unix che hanno usato nel loro lavoro o nella vita accademica.,
A causa della posizione libera e open source di tutti i componenti Linux, chiunque poteva creare una distribuzione Linux con un po ‘ di sforzo, e presto il numero totale di distribuzioni raggiunse le centinaia. Naturalmente, molti sviluppatori utilizzano Linux tramite provider cloud o utilizzando distribuzioni gratuite popolari come Fedora, Ubuntu di Canonical, Debian, Arch Linux, Gentoo e molte altre varianti., Le offerte commerciali di Linux, che forniscono supporto ai componenti liberi e open source, sono diventate vitali poiché molte aziende, tra cui IBM, sono migrate da Unix proprietario per offrire soluzioni middleware e software in cima a Linux. Red Hat ha costruito un modello di supporto commerciale attorno a Red Hat Enterprise Linux, così come il fornitore tedesco SUSE con SUSE Linux Enterprise Server (SLES).
Confrontando Unix e Linux
Finora, abbiamo esaminato la storia di Unix e l’ascesa di Linux e la GNU / Free Software Foundation alla base di un’alternativa libera e open source a Unix., Esaminiamo le differenze tra questi due sistemi operativi che condividono gran parte dello stesso patrimonio e molti degli stessi obiettivi.
Dal punto di vista dell’esperienza utente, non molto è diverso! Gran parte dell’attrazione di Linux era la disponibilità del sistema operativo su molte architetture hardware (incluso il moderno PC) e la capacità di utilizzare strumenti familiari agli amministratori e agli utenti di sistema Unix.
A causa degli standard POSIX e della conformità, il software scritto su Unix potrebbe essere compilato per un sistema operativo Linux con una quantità di porting solitamente limitata., Gli script di shell potrebbero essere utilizzati direttamente su Linux in molti casi. Mentre alcuni strumenti avevano opzioni di flag/riga di comando leggermente diverse tra Unix e Linux, molti funzionavano allo stesso modo su entrambi.
Una nota a margine è che la popolarità dell’hardware e del sistema operativo macOS come piattaforma per lo sviluppo che si rivolge principalmente a Linux può essere attribuita al sistema operativo macOS simile a BSD. Molti strumenti e script pensati per un sistema Linux funzionano facilmente all’interno del terminale macOS. Molti componenti software open source disponibili su Linux sono facilmente disponibili attraverso strumenti come Homebrew.,
Le restanti differenze tra Linux e Unix sono principalmente legate al modello di licenza: open source vs. software proprietario, concesso in licenza. Inoltre, la mancanza di un kernel comune all’interno delle distribuzioni Unix ha implicazioni per i fornitori di software e hardware. Per Linux, un fornitore può creare un driver di periferica per un dispositivo hardware specifico e aspettarsi che, entro limiti ragionevoli, opererà nella maggior parte delle distribuzioni., A causa dei rami commerciali e accademici dell’albero Unix, un fornitore potrebbe dover scrivere driver diversi per le varianti di Unix e avere licenze e altre preoccupazioni relative all’accesso a un SDK o un modello di distribuzione per il software come driver di dispositivo binario in molte varianti Unix.
Poiché entrambe le comunità sono maturate nell’ultimo decennio, molti dei progressi in Linux sono stati adottati nel mondo Unix. Molte utility GNU sono state rese disponibili come componenti aggiuntivi per i sistemi Unix in cui gli sviluppatori volevano funzionalità da programmi GNU che non fanno parte di Unix., Ad esempio, AIX di IBM offriva un Toolbox AIX per applicazioni Linux con centinaia di pacchetti software GNU (come Bash, GCC, OpenLDAP e molti altri) che potevano essere aggiunti a un’installazione AIX per facilitare la transizione tra sistemi AIX basati su Linux e Unix.
Unix proprietario è ancora vivo e vegeto e, con molti importanti fornitori che promettono il supporto per le loro versioni attuali fino al 2020, è ovvio che Unix sarà in giro per il prossimo futuro., Inoltre, il ramo BSD dell’albero Unix è open source, e NetBSD, OpenBSD e FreeBSD hanno tutti forti basi di utenti e comunità open source che potrebbero non essere visibili o attive come Linux, ma stanno tenendo le loro proprie nei recenti rapporti di condivisione dei server, con ben al di sopra dei numeri Unix proprietari in aree come il web serving.
Dove Linux ha mostrato un vantaggio significativo rispetto Unix proprietario è nella sua disponibilità su un vasto numero di piattaforme hardware e dispositivi., Il Raspberry Pi, popolare tra hobbisti e appassionati, è Linux-driven e ha aperto la porta per un intero spettro di dispositivi IoT che eseguono Linux. Abbiamo già menzionato dispositivi Android, auto (con Automotive Grade Linux) e smart TV, dove Linux ha una grande quota di mercato. Ogni provider di cloud sul pianeta offre server virtuali che eseguono Linux, e molti dei più popolari stack cloud-native di oggi sono basati su Linux, se si sta parlando di runtime contenitore o Kubernetes o molte delle piattaforme serverless che stanno guadagnando popolarità.,
Una delle rappresentazioni più rivelatrici dell’ascesa di Linux è la trasformazione di Microsoft negli ultimi anni. Se hai detto agli sviluppatori di software un decennio fa che il sistema operativo Windows avrebbe “eseguito Linux” nel 2016, la maggior parte di loro avrebbe riso istericamente. Ma l’esistenza e la popolarità del sottosistema Windows per Linux (WSL), così come le funzionalità più recentemente annunciate come la porta Windows di Docker, incluso il supporto LCOW (Linux containers on Windows), sono la prova dell’impatto che Linux ha avuto—e chiaramente continuerà ad avere—in tutto il mondo del software.,
Questo articolo è stato originariamente pubblicato nel maggio 2018 ed è stato aggiornato dall’editore.