GNU/Linux >> Linux Esercitazione >  >> Linux

Linux vs. Unix:qual è la differenza?

Se sei uno sviluppatore di software tra i 20 ei 30 anni, sei cresciuto in un mondo dominato da Linux. È stato un attore importante nel data center per decenni e, sebbene sia difficile trovare rapporti definitivi sulla quota di mercato dei sistemi operativi, la quota di Linux di sistemi operativi per data center potrebbe raggiungere il 70%, con le varianti di Windows che trasportano quasi tutta la percentuale rimanente . Gli sviluppatori che utilizzano qualsiasi cloud pubblico principale possono aspettarsi che il sistema di destinazione esegua 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 hai sentito che le persone usano questi termini in modo intercambiabile. O forse hai sentito Linux chiamare un sistema operativo "simile a Unix".

Allora, cos'è questo Unix? Le caricature parlano di "barbe grigie" simili a maghi seduti dietro schermi verdi luminosi, che scrivono codice C e script di shell, alimentati da caffè all'antica. Ma Unix ha una storia molto più ricca oltre a quei programmatori C barbuti degli anni '70. Sebbene abbondano gli articoli che descrivono in dettaglio la storia di Unix e i confronti "Unix vs. Linux", questo articolo offrirà un background di alto livello e un elenco delle principali differenze tra questi mondi complementari.

Gli inizi di Unix

La storia di Unix inizia presso gli AT&T Bell Labs alla fine degli anni '60 con un piccolo team di programmatori che cercano di scrivere un sistema operativo multi-tasking e multiutente per il PDP-7. Due dei membri più importanti di questo team presso la struttura di ricerca dei Bell Labs erano Ken Thompson e Dennis Ritchie. Sebbene molti dei concetti di Unix fossero derivati ​​dal suo predecessore (Multics), la decisione del team Unix all'inizio degli anni '70 di riscrivere questo piccolo sistema operativo nel linguaggio C è ciò che separa Unix da tutti gli altri. A quel tempo, i sistemi operativi erano raramente, se non mai, portatili. Invece, per la natura della loro progettazione e del linguaggio sorgente di basso livello, i sistemi operativi erano strettamente collegati alla piattaforma hardware per la quale erano stati creati. Con il refactoring di Unix sul linguaggio di programmazione C, Unix può ora essere portato su molte architetture hardware.

Oltre a questa nuova portabilità, che ha consentito a Unix di espandersi rapidamente oltre i Bell Labs ad altri usi di ricerca, accademici e persino commerciali, diversi principi chiave di progettazione del sistema operativo erano interessanti per utenti e programmatori. Per prima cosa, la filosofia Unix di Ken Thompson è diventata un potente modello di progettazione e calcolo di software modulari. La filosofia Unix raccomandava di utilizzare in combinazione piccoli programmi appositamente creati per svolgere attività complessive complesse. Poiché Unix è stato progettato attorno a file e pipe, questo modello di "piping" di 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 della sua eredità alla filosofia Unix.

Rapida crescita e concorrenza

Alla fine degli anni '70 e '80, Unix divenne la radice di un albero genealogico che si espanse attraverso la ricerca, il mondo accademico e una crescente attività commerciale di sistemi operativi Unix. Unix non era un software open source e il codice sorgente di Unix era concesso in licenza tramite accordi con il suo proprietario, AT&T. La prima licenza software conosciuta è stata venduta all'Università dell'Illinois nel 1975.

Unix è cresciuto rapidamente nel mondo accademico, con Berkeley che è diventata un importante centro di attività, dato il periodo sabbatico di Ken Thompson negli anni '70. Con tutta l'attività attorno a Unix a Berkeley, è nata una nuova fornitura di software Unix:la Berkeley Software Distribution, o BSD. Inizialmente, BSD non era un'alternativa a Unix di AT&T, ma un componente aggiuntivo con software e funzionalità aggiuntivi. Quando nel 1979 arrivò la 2BSD (la seconda distribuzione di software di Berkeley), Bill Joy, uno studente laureato a 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 esplosero negli anni '80 e '90 con nomi come HP-UX, AIX di IBM, Solaris di Sun, Sequent e Xenix. Man mano che i rami crescevano dalla radice originale, iniziarono le "guerre Unix" e la standardizzazione divenne un nuovo obiettivo per la comunità. Lo standard POSIX è nato nel 1988, così come altri seguiti della standardizzazione tramite The Open Group negli anni '90.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

In questo periodo AT&T e Sun hanno rilasciato System V Release 4 (SVR4), che è stato adottato da molti fornitori commerciali. Separatamente, la famiglia di sistemi operativi BSD è cresciuta nel corso degli anni, portando ad alcune variazioni open source che sono state rilasciate con l'ormai familiare licenza BSD. Ciò includeva FreeBSD, OpenBSD e NetBSD, ciascuno con un mercato target leggermente diverso nel settore dei server Unix. Queste varianti Unix continuano ad avere un certo utilizzo oggi, anche se molte hanno visto la loro quota di mercato dei server ridursi a cifre singole (o inferiori). BSD potrebbe avere la più ampia 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 di 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, passiamo all'ascesa di Linux.

Entra in Linux

Quello che oggi chiamiamo sistema operativo Linux è in realtà la combinazione di due sforzi dei primi anni '90. Richard Stallman stava cercando di creare un'alternativa veramente gratuita e open source al sistema proprietario Unix. Stava lavorando alle utilità e ai programmi sotto il nome GNU, un acronimo ricorsivo che significa "GNU's not Unix!" Sebbene fosse in corso un progetto del kernel, si è rivelato difficile e senza un kernel il sogno del sistema operativo gratuito e open source non poteva essere realizzato. È stato il lavoro di Linus Torvald, la produzione di un kernel funzionante e funzionante che ha chiamato Linux, a dare vita all'intero sistema operativo. Dato che Linus utilizzava diversi strumenti GNU (ad es. GNU Compiler Collection o GCC), l'unione degli strumenti GNU e del kernel Linux era una combinazione perfetta.

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 con la licenza BSD open source. La prima popolarità di distribuzioni come Slackware e poi Red Hat ha dato all '"utente comune di PC" degli anni '90 l'accesso al sistema operativo Linux e, con esso, a molte delle funzionalità e utilità del sistema Unix proprietario che utilizzavano nella loro vita lavorativa o accademica.

A causa della posizione gratuita e open source di tutti i componenti Linux, chiunque potrebbe 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 oltre ai componenti gratuiti e open source, sono diventate praticabili poiché molte aziende, inclusa IBM, sono migrate da Unix proprietario all'offerta di soluzioni middleware e software su Linux. Red Hat ha creato un modello di supporto commerciale attorno a Red Hat Enterprise Linux, così come il provider tedesco SUSE con SUSE Linux Enterprise Server (SLES).

Confronto tra Unix e Linux

Finora, abbiamo esaminato la storia di Unix e l'ascesa di Linux e le basi GNU/Free Software Foundation di un'alternativa gratuita e open source a Unix. Esaminiamo le differenze tra questi due sistemi operativi che condividono gran parte della stessa eredità e molti degli stessi obiettivi.

Dal punto di vista dell'esperienza utente, non molto è diverso! Gran parte dell'attrattiva di Linux era la disponibilità del sistema operativo in molte architetture hardware (incluso il moderno PC) e la capacità di utilizzare strumenti familiari agli amministratori di sistema Unix e agli utenti.

A causa degli standard POSIX e della conformità, il software scritto su Unix potrebbe essere compilato per un sistema operativo Linux con una quantità solitamente limitata di sforzi di porting. Gli script della shell possono essere usati direttamente su Linux in molti casi. Sebbene alcuni strumenti avessero 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 di sviluppo rivolta 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 tramite strumenti come Homebrew.

Le restanti differenze tra Linux e Unix sono principalmente legate al modello di licenza:open source vs. software proprietario con 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 dispositivo per un dispositivo hardware specifico e aspettarsi che, entro limiti ragionevoli, funzionerà sulla maggior parte delle distribuzioni. A causa dei rami commerciali e accademici dell'albero Unix, un fornitore potrebbe dover scrivere driver diversi per varianti di Unix e avere licenze e altri problemi relativi all'accesso a un SDK o a un modello di distribuzione per il software come driver di dispositivo binario in molti Varianti Unix.

Poiché entrambe le comunità sono maturate nell'ultimo decennio, molti dei progressi di Linux sono stati adottati nel mondo Unix. Molte utilità GNU sono state rese disponibili come componenti aggiuntivi per sistemi Unix in cui gli sviluppatori desideravano funzionalità da programmi GNU che non fanno parte di Unix. Ad esempio, AIX di IBM offriva un AIX Toolbox 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 i sistemi AIX basati su Linux e Unix .

Unix proprietario è ancora vivo e vegeto e, con molti dei principali fornitori che promettono supporto per le loro versioni attuali fino al 2020, è ovvio che Unix sarà disponibile nel prossimo futuro. Inoltre, il ramo BSD dell'albero Unix è open source e NetBSD, OpenBSD e FreeBSD hanno tutte solide basi di utenti e comunità open source che potrebbero non essere visibili o attive come Linux, ma resistono nei recenti rapporti di condivisione del server , con numeri molto al di sopra dei numeri Unix proprietari in aree come il servizio web.

Laddove Linux ha mostrato un vantaggio significativo rispetto a Unix proprietario è nella sua disponibilità su un vasto numero di piattaforme e dispositivi hardware. Il Raspberry Pi, popolare tra hobbisti e appassionati, è basato su Linux e ha aperto le porte a un'intera gamma di dispositivi IoT che eseguono Linux. Abbiamo già menzionato dispositivi Android, automobili (con Automotive Grade Linux) e smart TV, dove Linux ha un'ampia quota di mercato. Ogni provider di servizi cloud del pianeta offre server virtuali che eseguono Linux e molti degli stack nativi cloud più popolari di oggi sono basati su Linux, sia che si parli di runtime di container o Kubernetes o di 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 avessi 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à annunciate più di recente come il porting di Docker per Windows, incluso il supporto per LCOW (Linux containers su 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 a maggio 2018 ed è stato aggiornato dall'editore.


Linux
  1. Cosa rende Linux il sistema operativo sostenibile

  2. Cosa rende speciale la comunità Linux?

  3. Qual è la differenza tra "trova" e "trova" in Linux?

  4. Cos'è il messaggio Hai una nuova posta in Linux/UNIX?

  5. Qual è la differenza tra Unix, Linux, BSD e GNU?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Rsync e BTRFS in Linux?

iptables vs nftables:qual è la differenza?

Percorso assoluto vs relativo in Linux:qual è la differenza?

Linux vs Unix

Qual è il comando kill in Linux?