La maggior parte dei computer "consumer" oggi esistenti al mondo funziona con un sistema operativo di Microsoft, soprattutto Windows 10, oppure è un Mac di Apple con sistema operativo macOS. Questo porta quasi tutti a pensare che non esistano altri sistemi operativi o, se esistono, siano irrilevanti nel mondo dell'informatica.
Naturalmente non è così, perché c'è una grossa fetta di computer "non consumer" (in particolare moltissimi dei server su cui si regge l'intero Web) che funzionano grazie a Linux.
Quest'ultimo sistema operativo, poi, viene considerato dalla maggior parte degli utenti di Windows o macOS equivalente a Unix: i due termini vengono usati come se fossero sinonimi. Solo i più ferrati, invece, sanno che Unix è diverso da Linux e che si tratta di due sistemi operativi differenti. Anche se Linux può essere considerato un sistema "Unix-Like", cioè simile a Unix. A dirla tutta, infine, sarebbe più corretto parlare al plurale: di Unix, come anche di Linux, ce ne sono parecchi.
Insomma, l'universo dei sistemi operativi è molto più ricco di stelle di quanto l'utente comune di un computer domestico potrebbe pensare e ogni stella brilla di luce propria, in una sua galassia lontana dalle altre. Ma se le stelle di Windows e macOS sono ormai conosciute ai più, quelle di Unix e Linux non lo sono affatto. Un ripasso di storia può aiutarci a capire perché Unix non è Linux e quali sono le differenze tra Unix e Linux.
La storia di Unix
Unix è uno dei sistemi operativi più longevi della storia dell'informatica: la sua prima versione completa risale al 1969, quando il ricercatore dei Bell Laboratories di AT&T Ken Thompson la realizzò insieme ai colleghi. All'epoca si chiamava Unics (Uniplexed Information and Computing Service), ma ben presto fu registrato il nome commerciale di UNIX.
La prima versione di Unix fu scritta in linguaggio assembly e poteva girare solo sul minicomputer PDP-7 di DEC che, a differenza di quanto si potrebbe pensare leggendo il nome, era grande come un armadio. Nel 1972 fu inventato il linguaggio di programmazione C, facilmente trasportabile su piattaforme hardware diverse, e i creatori di Unix lo scelsero come base per le successive versioni del sistema operativo che, in questo modo, fu portato anche su altri computer.
Unix non era open source, ma AT&T decise inizialmente di non chiedere alcuna royalty sul suo utilizzo per poi guadagnare sui servizi ad esso collegati. In questo modo Unix si diffuse e si sviluppò notevolmente negli Stati Uniti, dove AT&T era anche monopolista nel settore delle linee telefoniche. Unix diventò a pagamento solo nel 1984, quando con la liberalizzazione dei mercati americani AT&T fu smembrata in sette società più piccole.
Da un solo Unix, a questo punto, si passò a tanti Unix sviluppati da diverse società e università. Il più famoso è BSD: Barkley Software Distribution. Da BSD nacquero presto diversi sitemi "Unix-Like", come FreeBSD, distribuiti con la formula dell'open source mentre, parallelamente, altre aziende continuavano a sviluppare sistemi operativi Unix a pagamento.
La storia di Linux
Bisogna attendere il 1991 per vedere la prima versione di Linux, un sistema operativo Unix-Like sviluppato dal programmatore finlandese Linus Torvalds con una idea in testa: creare un OS che girasse bene sull'architettura i386 a 32 bit sviluppata da Intel e AMD a partire dal 1985, che all'epoca iniziava ad avere una diffusione molto ampia.
Linux alla sua nascita si basa sul kernel di Unix, cioè sul suo cuore pulsante (il kernel è quella parte del sistema operativo che gestisce la comunicazione tra le applicazioni e l'hardware) e su parti di codice di Minix, un sistema operativo con architettura "microkernel" simile a Unix ma di libero uso solo per scopi didattici.
Ben presto Torvalds decise di abbandonare quelle parti di Linux derivanti da Minix che impedivano l'uso e lo sviluppo libero del sistema operativo, per passare invece a un codice derivante da GNU (altro sistema Unix-Like, ma open source, sviluppato nel 1984 da Richard Stallman). A partire dal 1996 il logo ufficiale di Linux è il famoso pinguino e, nella seconda metà degli anni '90, sono arrivate le prime interfacce grafiche per Linux come GNOME e KDE.
Unix e Linux: le differenze
Quando si tratta di Linux si parla sempre di "distribuzioni", perché dentro un sistema operativo Linux completo ci sono parti diverse, sviluppate da diversi gruppi o aziende (come Canonical e Red Hat) sempre con licenza open source. I diversi sistemi Unix, invece, sono prodotti commerciali a pagamento, sviluppati da aziende che mantengono tutti i diritti sul codice.
Esistono anche delle versioni open source di Unix (come FreeBSD, OpenBSD e DragonBSD) che sono un mix tra il nucleo originale di Unix e nuovo codice sviluppato con licenza open source.
Nella pratica un sistema Unix commerciale è sempre conforme agli standard Single Unix Specification (SUS) e Portable Operating System Interface for Unix (POSIX), quindi in teoria è compatibile con tutti i tipi di hardware per i quali lo sviluppatore dichiara esplicitamente la compatibilità. Linux e i sistemi Unix-Like "liberi", invece, non sempre lo sono e per assistenza si deve fare di solito riferimento alla community che ha partecipato allo sviluppo.
Linux, poi, è un marchio registrato da Linus Torvalds e gestito dalla Linux Fountation, quindi non è possibile appropriarsi del nome, del logo e del marchio, ma il codice è "copyleft" ed è disponibile a tutti. Unix è un marchio registrato attualmente detenuto da Open Group, un consorzio di aziende che ha tra i suoi sponsor anche IBM, Hawlett Packard, Huawei, Oracle e Philips e che stabilisce lo standard SUX al quale devono essere conformi tutti i sistemi Unix. Il codice di Unix, nelle sue versioni commerciali, è sempre protetto da copyright.
Usare Unix è come usare Linux?
Dal punto delle differenze nell'utilizzo pratico, i sistemi Unix e Linux si assomigliano. Si vede che sono parenti, per così dire. Finché vengono usati da riga di comando, ad esempio, i set di istruzioni disponibili sono molto molto simili. Portare su Linux una app sviluppata per Unix, poi, è relativamente semplice.
Le differenze tra Unix e Linux si vedono invece quando li si usa tramite l'interfaccia grafica. Già le diverse distribuzioni di Linux hanno interfacce diverse, quindi è logico che alcune di esse possano essere abbastanza lontane da quella di un sistema Unix commerciale conforme agli standard gestiti da Open Group.
macOS è Unix o Linux?
Infine, spesso si sente dire che macOS è un sistema operativo derivato da Unix o da Linux. In realtà, vista la storia di questi due sistemi operativi, entrambe le affermazioni sono errate. macOS non è Unix ma è Unix-Like, per la precisione è un membro della famiglia dei sistemi derivati da BSD (l'Unix dell'università di Berkley).
Va detto, però, che macOS è un sistema operativo conforme allo standard POSIX e che è basato su quasi interamente su codice sviluppato da Apple, che ne detiene ogni diritto. Dentro macOS sopravvivono ancora delle parti di codice libero, che derivano da Darwin, un altro sistema operativo della famiglia BSD, questa volta con licenza open source: la Apple Public Source License (APSL).