Unix e Linux: un confronto dei due sistemi operativi
Unix ha contribuito notevolmente allo sviluppo di infrastrutture digitali sin dagli anni ‘60 del secolo scorso, fungendo da fonte d’ispirazione per molti dei suoi successori in termini di innovazioni tecnologiche e di programmazione. Anche Linux fa innegabilmente parte dei discendenti di questo importante modello. Nel nostro confronto tra Linux e Unix approfondiremo particolarmente gli aspetti comuni e le differenze che contraddistinguono questi due sistemi operativi molto popolari.
Cos’è Unix?
Unix è stato uno dei primi sistemi operativi che, dalla sua creazione fino ad oggi, ha dato origine a una vera e propria grande famiglia di sistemi operativi con numerose versioni. Esistono versioni gratuite open source e altre versioni proprietarie che spesso hanno ottenuto una licenza ufficiale della Open Group diventando quindi a pagamento. Unix viene, al giorno d’oggi, installato soprattutto su server e workstation particolarmente performanti. Le caratteristiche più importanti di questo sistema operativo sono:
- Sistema open source fino agli anni ‘80 del secolo scorso, poi proprietario
- Sono disponibili anche versioni open source (per esempio FreeBSD)
- Uno dei primi sistemi operativi basati sul linguaggio di programmazione C
- Indipendente dalla piattaforma hardware e dai tipi di processori (il codice Unix basato su C è portabile e può essere facilmente adattato all’ambiente hardware)
- Multitasking (è possibile eseguire senza problemi più programmi o processi contemporaneamente)
- Sistema multiutente (più utenti possono lavorare sullo stesso sistema, dati e risorse possono essere facilmente resi accessibili o bloccati per altri utenti)
- Adatto per sistemi multiprocessore
- Un kernel centrale del sistema operativo amministra le attività del sistema e dei processi, mentre i software “no kernel” sono organizzati in processi separati
- File system gerarchico (oggi standard, ma innovativo nel 1980)
- Sicuro (i malware per Unix sono davvero pochi, dispone di un ottimo DRM, tecnologie di crittografia e accesso remoto tramite Secure Shell)
- Collegabile in rete (TCP/IP integrato), molte funzioni di rete (come strumenti di rete Unix), molte funzioni come server di rete
- Ampio equipaggiamento di base (importanti strumenti di sviluppo e librerie sono integrati)
- Concetti di programmazione professionali, automatizzazione tramite scripting avanzato
- Incrementata stabilità del sistema grazie, ad esempio, alla protezione della memoria
- Interfaccia di programmazione standardizzata (POSIX)
POSIX (Portable Operating System Interface) definisce un’interfaccia di programmazione standardizzata che consente all’applicazione di collaborare con il sistema operativo Unix. Centrali per lo sviluppo di POSIX sono l’IEEE e la Open Group. POSIX costituisce la base della Single UNIX Specification. Un sistema operativo Unix, che corrisponde alla Single UNIX Specification, può utilizzare il marchio UNIX (UNIX in maiuscolo, talvolta anche con il simbolo ®). Alcune versioni e derivati Unix sono completamente (come AIX di IBM) o parzialmente (come Linux) compatibili con POSIX.
Famiglia Unix (linee principali) | Versioni/derivati |
Derivati UNIX della AT&T / linea System V | AIX (IBM, certificato come UNIX 98 e 03) |
HP-UX (Hewlett Packard, certificato come UNIX 95 e 03) | |
Oracle Solaris (Oracle; certificato come UNIX 95, 98, 03 e V7) | |
Linea BSD (BSD = Berkeley Software Distribution) | FreeBSD (diverse distribuzioni e derivati) |
NetBSD (diverse distribuzioni e derivati) | |
OpenBSD (diverse distribuzioni e derivati) |
Cos’è Linux?
Linux è un sistema operativo che è disponibile gratuitamente in rete e viene sviluppato a livello mondiale da una community open source. Esistono, tuttavia, anche progetti proprietari, soprattutto in ambito commerciale. Come per Unix, anche di Linux esistono diverse versioni (le cosiddette distribuzioni e derivati Linux, ovvero altre versioni di una distribuzione Linux), che ampliano e completano il sistema operativo di base. Spesso vengono sviluppate distribuzioni Linux orientate a un determinato uso. Così troviamo, ad esempio, sistemi desktop o specifiche distribuzioni per server.
Linux viene di frequente equiparato a Unix o definito un sistema operativo unix-like, in parte perché è stato concepito come sistema basato su Unix, contiene funzioni tipiche di Unix e numerose applicazioni Linux sono compatibili anche con l’altro sistema. Linux, tuttavia, non contiene alcun codice proprietario di Unix e non è attualmente certificato dalla Open Group come un sistema UNIX ufficiale.
Le caratteristiche più importanti di Linux sono:
- Sistema open source
- Sviluppo aperto del sistema grazie a una community mondiale di sviluppatori
- Gratuito nella maggior parte dei casi, versioni a pagamento nel settore commerciale
- Le distribuzioni Linux ampliano il kernel Linux con software applicativi
- Adatto per sistemi multiprocessore
- Multitasking (più programmi vengono eseguiti contemporaneamente)
- Sistema multiutente
- Compatibile con diverse CPU e piattaforme hardware (computer desktop, computer superframe e mainframe, server)
- Compatibile con dispositivi mobili ed elettronici di piccole dimensioni (router, dispositivi smart home, Internet of Things)
- Linux è scritto principalmente in C (i programmi in C sono facilmente trasferibili tra diversi sistemi operativi e informatici)
- Ampia scelta di software e interfacce utente
- Ampie funzioni di sicurezza (tecnologie di crittografia, DRM avanzato, Secure Shell per un accesso remoto sicuro)
- Scripting avanzato (ad esempio programmazione e automazione mediante script di shell)
- Interfacce standardizzate (POSIX, Linux Standard Base/LSB)
Linux Standard Base (LSB) definisce importanti standard (ad esempio per interfacce binarie e librerie di programmi) per ottimizzare la compatibilità tra le diverse distribuzioni di Linux.
Popolari distribuzioni e derivati di Linux | Particolarità |
Debian | Distribuzione con un’ampia scelta di software, supporta architetture a 12 processori |
Ubuntu | Derivato Debian per computer domestici |
Linux Mint | Versione di Ubuntu adatta a principianti, offre diversi ambienti desktop |
Knoppix | Prima distribuzione Live popolare (portabile, senza installazione), ampia scelta di software, derivato di Debian |
Gentoo | Distribuzione Linux “source-based” per utenti avanzati, il sistema può essere completamente personalizzato |
Red Hat Enterprise Linux (RHEL) | Popolare distribuzione server di Linux per aziende (al momento leader di mercato nel segmento), ampia compatibilità grazie al sostegno degli sviluppatori indipendenti di software, a pagamento, parte del progetto Fedora |
Fedora | Diretto successore di Red Hat Linux (RHL), specializzato su sistemi server e desktop, sostituisce in gran parte l’ormai obsoleto RHL, concepito per principianti |
openSUSE | Ampia distribuzione Linux, diffusa soprattutto negli USA e in Germania, utilizza l’RPM Packet Manager (sistema libero di gestione dei pacchetti), ha un proprio strumento di configurazione (YaST) |
Unix vs. Linux: confronto tra sistemi di operativi
Età e sviluppo di Unix
Nel confronto diretto tra Unix e Linux possiamo definire tranquillamente Unix come il dinosauro dei due sistemi, infatti il suo sviluppo ha inizio già negli anni ‘60 del secolo scorso grazie a collaboratori di Bell Labs (società madre di AT&T). Dopo la pubblicazione del codice sorgente della versione originaria nel 1969, si svilupparono numerose versioni e successori. Proprio per via di questo percorso di sviluppo così ramificato e confuso, oggi non possiamo parlare di un unico sistema operativo Unix, ma dobbiamo fare riferimento a un vero e proprio universo o famiglia Unix. All’interno di questa famiglia si distinguono chiaramente da diversi anni due linee principali: BSD e System V.
La Berkeley Software Distribution (abbreviata in BSD) è nata nel 1977 come variante del sistema operativo Unix all’università della California di Berkeley. Dalla versione originaria si sono sviluppate nel tempo una serie di derivati Unix. Tra le distribuzioni più note troviamo FreeBSD, OpenBSD e NetBSD, dalle quali sono nati ulteriori progetti BSD. Il software Unix è liberamente fruibile con la licenza BSD. FreeBSD, per motivi legati alla licenza, non contiene più codice originale Unix della linea AT&T.
La famiglia System V è la seconda delle linee di sviluppo principali. Da essa hanno origine i sistemi UNIX ancora oggi commercialmente rilevanti di IBM (AIX), Hewlett Packard (HP-UX) e Oracle (Oracle Solaris). Alla sua pubblicazione nel 1983, System V corrispondeva inizialmente a un derivato Unix ben preciso. Oggi invece, indica un’intera famiglia o classe di derivati Unix che discendono direttamente dalla linea UNIX di AT&T e che sono, in genere, coperti ufficialmente da licenza.
I confini tra le due linee di sviluppo di sistemi Unix sono fluidi e spesso caratterizzati da sovrapposizioni. Il divario tra le due linee di sviluppo principali si riduce sempre di più e le novità tecnologiche vengono spesso adottate dalla linea concorrente. In pratica succede anche che un sistema operativo con elementi BSD venga riconosciuto ufficialmente come UNIX da parte della Open Group (macOS utilizza il codice BSD e dispone, dalla versione Leopard 10.5, anche di una licenza ufficiale UNIX 03).
Età e sviluppo di Linux
Linux è decisamente il sistema più giovane tra i due. Il sistema operativo unix-like è stato pubblicato dal suo sviluppatore Linus Thorvalds nel 1991. All’epoca, lo sviluppatore finlandese mise a disposizione soltanto un nucleo modulare di un sistema operativo (kernel di Linux), che funge da interfaccia centrale e unitaria per gli elementi hardware più disparati e che amministra, ad esempio, processi, archiviazione, funzionalità di multitasking e sicurezza.
Successivamente, nel 1992, il kernel Linux fu distribuito con licenza libera GPL per la community open source. La licenza open source diede il via a uno sviluppo globale che produsse un gran numero di distribuzioni e derivati Linux. Una distribuzione amplia il kernel Linux, ad esempio, con compilatori, librerie e interfacce per l’interazione con l’utente fino a renderlo un sistema operativo a tutti gli effetti. Le versioni Linux più snelle, che vengono utilizzate ad esempio su dispositivi di dimensioni ridotte, hanno invece relativamente meno bisogno di software aggiuntivi.
Una community di sviluppatori molto influente specializzata su Linux è il progetto GNU. Le distribuzioni Linux GNU sono molto diffuse nei settori desktop e server. Lo sviluppo di distribuzioni e derivati all’interno dell’universo Linux è senz’altro avvantaggiato dall’assenza di licenze restrittive, e dunque dalla mancanza dei conseguenti costi e delle lunghe procedure a esse legate. Linux è stato inizialmente sviluppato per i processori hardware x86 di Intel. A oggi è disponibile per oltre 20 tipi di CPU. Linux è inoltre compatibile con i processori ARM per dispositivi piccoli e mobili (smartphone, tablet, media player, minicomputer come Raspberry Pi e diversi dispositivi indossabili).
Unix: diffusione, costi e target
Unix si è diffuso inizialmente soprattutto nelle università e su specifiche workstation. Successivamente, il sistema operativo è stato utilizzato sempre di più su server e in data center. Unix è orientato soprattutto verso una clientela pagante del mondo imprenditoriale e industriale (come fornitori di servizi finanziari, grandi aziende industriali e clienti del settore sanitario). Chi intende utilizzare Unix in modo professionale su server o workstation deve, in genere, acquistare una licenza proprietaria e certificata per una versione UNIX da aziende come IBM (AIX), Oracle (Oracle Solaris) o Hewlett Packard (HP-UX). Questi fornitori offrono un pacchetto completo di hardware e software, spesso ottimizzato per un uso su macchine PA-RISC e Itanium. Il costo delle licenze varia in base al pacchetto richiesto di hardware server e licenze software.
I clienti aziendali e industriali apprezzano soprattutto la stabilità e la sicurezza e preferiscono i sistemi proprietari UNIX in stile AT&T per i settori aziendali più critici. I sistemi Unix continueranno a giocare un ruolo fondamentale in questo segmento, dal momento che le grandi aziende stipulano, nella maggior parte dei casi, contratti di licenza, assistenza e manutenzione a lungo termine con i fornitori. Il passaggio da un sistema Unix completamente personalizzato a un’altra architettura si rivelerebbe, inoltre, molto costosa e non priva di rischi tecnici.
La popolarità generale e la diffusione di Unix continuano, tuttavia, a scendere costantemente da un po’ di tempo. Una causa è sicuramente lo sviluppo tecnico. I moderni sistemi Windows e Linux lavorano tradizionalmente con le architetture x86, leader di mercato e relativamente economiche, che sono caratterizzate da un’evoluzione rapida e dominano ormai il mercato dei server standard. I sistemi server più tradizionali (come Itanium con sistemi UNIX della famiglia System V), invece, non sono caratterizzati da importanti progressi tecnologici e non sono di certo tra le soluzioni più convenienti.
Dato che i sistemi Unix erano, sin dall’inizio, orientati verso settori d’applicazione molto precisi e utenti esperti (professionisti dell’informatica, programmatori, amministratori di sistema), sul mercato di massa di notebook e computer desktop hanno in genere poca rilevanza. Nonostante il calo nella diffusione e l’orientamento verso aree aziendali critiche, non si dovrebbe sottovalutare l’influenza di Unix. Nel nostro confronto tra Unix e Linux si distinguono, in fatto di diffusione, soprattutto i sistemi BSD. Il sistema operativo macOS di Apple utilizza il codice Unix e i derivati gratuiti di Unix, come FreeBSD, sono tra i sistemi operativi più diffusi al di fuori del mercato di computer desktop e notebook. FreeBSD, ad esempio, viene utilizzato sempre più spesso per server di posta elettronica, web server, firewall, server FTP e DNS e viene installato su router e hardware NAS.
Linux: diffusione, costi e target
Grazie ai suoi vantaggi difficili da ignorare, la diffusione di Linux continua a crescere incessantemente. I vantaggi offerti da Linux includono un ampio supporto hardware, la licenza libera, l’accesso facilitato (CD, DVD, download da Internet), la sua natura gratuita anche in caso di installazioni multiple, uno sviluppo rapido, la sua estensibilità e la flessibilità nell’adattamento a hardware, a specifici ambienti d’uso e a diversi requisiti. La compatibilità con POSIX facilita inoltre la migrazione di vecchi sistemi Unix, il che favorisce ulteriormente la diffusione di Linux.
Linux è attualmente molto apprezzato soprattutto nel segmento dei server. Secondo alcune stime, almeno la metà di tutti i server si baserebbe su sistemi operativi Linux. Per il mercato dei server esistono anche delle versioni a pagamento (Red Hat Enterprise Linux) che offrono un’assistenza clienti migliore, ma anche molto costosa. Linux è molto diffuso anche nel segmento dei dispositivi mobili. Il famoso sistema operativo Android di Google è in realtà una distribuzione con un kernel Linux modificato. Dispostivi piccoli (come smartphone, minicomputer e router) sono spesso basati su versioni snelle di Linux (sistemi embedded Linux).
Nel settore desktop, Linux gioca invece un ruolo secondario, anche se ormai figura dal 2009 al terzo posto dei sistemi operativi per computer più popolari al mondo. Questo posizionamento non deve tuttavia ingannare, perché nel luglio del 2020 la quota di mercato delle visualizzazioni di pagina si è attestata appena all’1,9% (il dato è basato sull’utilizzo di Internet tramite computer desktop e notebook, mentre smartphone e tablet non sono stati considerati).
Il conveniente desktop Linux si è comunque affermato in mercati di nicchia (ad esempio presso istituzioni e organizzazioni statali). Nel complesso, Linux rimane ancora la soluzione preferita per appassionati, utenti del computer ambiziosi e professionisti informatici che vogliono, ad esempio, essere indipendenti dai gruppi industriali statunitensi e che hanno familiarità con la riga di comando. Molti utenti sembrano anche temere l’abbandono di Windows o macOS. Altri invece non vogliono investire il tempo necessario per apprendere un nuovo sistema operativo o passare a nuovi programmi applicativi.
Confronto delle caratteristiche e delle funzioni di Linux e Unix
Nel confronto tra Unix e Linux notiamo subito le numerose somiglianze tra i due sistemi operativi. Entrambi sono sistemi multiutente, consentono il multitasking e presentano un’elevata stabilità grazie alla protezione della memoria RAM. Professionisti informatici e amministratori di sistema hanno a disposizione uno scripting avanzato e una riga di comando per la gestione e la programmazione. I sistemi offrono anche una compatibilità reciproca grazie alla specifica POSIX che li accomuna. Questo permette, ad esempio, di scambiare un servizio senza problemi, mentre le migrazioni e la portabilità tra sistemi vengono notevolmente facilitati.
Il lavoro con architetture client-server è particolarmente facile da svolgere con Unix e il numero di servizi disponibili esaudisce tutti i desideri degli informatici e degli amministratori di sistema più esperti. Qualora mancasse qualcosa, è sempre possibile programmare autonomamente l’applicazione. Gli utenti di Linux possono oggi contare su sistemi similmente avanzati, che vengono ottimizzati continuamente con funzioni moderne grazie alla grande community open source dedita allo sviluppo del sistema operativo.
Per quanto riguarda l’arsenale software, entrambi i sistemi si distinguono per un’ampia scelta in termini di servizi e software di base. Le distribuzioni Linux offrono inoltre un sistema di gestione dei pacchetti integrato e semplice da usare, che accede, tramite Internet, a un repository di software con programmi applicativi attuali e verificati. Un cosiddetto pacchetto di manutenzione si occuperà della manutenzione dei pacchetti di programmi di un aggiornamento di repository, che può contenere sia programmi gratuiti che a pagamento. Linux offre inoltre, a differenza di Unix, una scelta più ampia di sistemi operativi e interfacce utente per utenti di computer tradizionali (come gli ambienti desktop KDE e Gnome).
Sicurezza di Unix e Linux
La sicurezza è un aspetto importante nel confronto tra Unix e Linux. Entrambi i sistemi operativi sono considerati particolarmente sicuri. Grazie alla specifica architettura di sistema, è molto difficile danneggiare seriamente questi sistemi. Privilegi e permessi di accesso possono essere definiti in modo molto dettagliato e differenziato e la gestione utenti separa nettamente gli utenti tra di loro. Nel sistema multiutente, ogni utente dispone di una propria area dati cui nessun altro utente può accedere senza autorizzazione. In questo modo si riduce il rischio di una cancellazione involontaria di dati. Gli utenti, inoltre, non hanno accesso a importanti file di sistema. Unix e Linux offrono inoltre la possibilità di un sicuro accesso remoto tramite Secure Shell (SSH). Quasi tutti i sistemi operativi basati su Linux e Unix mettono a disposizione un programma SSH preconfigurato.
Un altro punto a favore per entrambi i sistemi operativi è che il numero di virus e malware specificamente indirizzati a loro è molto ridotto. La ridotta diffusione nel segmento desktop è vantaggiosa in quanto gli hacker si specializzano soprattutto sulle falle di sicurezza di software e hardware molto diffusi (come i programmi Windows). Ciononostante, la crescente diffusione su server, router e dispositivi IoT dei sistemi Linux, li rende sempre più spesso oggetto di attacco da parte di hacker. Le falle di sicurezza del kernel Linux devono perciò essere risolte regolarmente. I server Unix e Linux possono, inoltre, senz’altro diffondere in rete malware per computer Windows.
Confronto dell’uso di Linux e Unix
Per le versioni classiche di Unix per molti anni non esisteva un’interfaccia utente uniforme. Grazie all’X Window System, dalla metà degli anni ‘80 del secolo scorso è stato possibile equipaggiare i singoli servizi con una GUI (Graphical User Interface) e controllarli tramite mouse e tastiera. Considerando però le diverse esecuzioni e l’uso di varie GUI per le singole applicazioni, non era possibile parlare di un concetto operativo unico e trasversale. I sistemi Unix odierni fanno invece riferimento ad ambienti desktop intuitivi come KDE e Gnome.
Queste e altre GUI sono disponibili anche per Linux. La community di programmatori vuole trasformare Linux in una soluzione universale per praticamente tutte le piattaforme esistenti e punta, con una scelta più vasta di interfacce utente facilmente reperibili, a un target più ampio. Per l’ambiente desktop Gnome esiste, ad esempio, un’interfaccia utente che consente di usare Linux quasi come Windows 10.
Per entrambi i sistemi operativi (soprattutto nel caso di Unix), l’uso tramite terminale e riga di comando è molto diffuso. Questo dipende dal fatto che, soprattutto in ambito server, molti compiti amministrativi possono essere eseguiti in modo più efficiente tramite una shell ed essere automatizzati (anche tra diverse macchine in una rete). La shell standard per l’uso tramite riga di comando è denominata per la maggior parte dei sistemi Linux Bash, mentre molti sistemi Unix utilizzano la Bourne Shell.
Unix vs. Linux: vantaggi e svantaggi
Vantaggi di Unix | Vantaggi di Linux |
Ambiente stabile e sofisticato, soprattutto per server e workstation | Sistema operativo versatile, adatto soprattutto per il segmento dei server (disponibili distribuzioni server Linux), molti cloud usano Linux |
Utilizzato per molte piattaforme hardware (portabilità), soluzioni personalizzate con ottima adattabilità all’hardware | Ampio supporto hardware, indipendente dal produttore (vale per CPU, server, workstation, computer, minicomputer) |
I sistemi UNIX a pagamento vengono aggiornati costantemente nel rispetto delle esigenze della clientela | La maggior parte delle distribuzioni sono gratuite (CD/DVD, download da Internet) |
Sicuro (per esempio limitazione dei permessi utente, crittografia) | Sicuro (per esempio limitazione dei permessi utente, crittografia) |
Scripting avanzato (shell) | Scripting avanzato (shell) |
Particolarmente adatto per programmatori e amministratori di sistema | Particolarmente adatto per programmatori e amministratori di sistema, diverse GUI intuitive soprattutto per utenti desktop |
Ampia scelta di programmi e strumenti (spesso già integrati nel sistema operativo) | Ampia scelta di programmi e strumenti (spesso già integrati nel sistema operativo) |
Particolarmente adatto a settori aziendali critici | Aggiornamenti frequenti, risoluzione relativamente rapida delle falle di sicurezza |
Grazie allo standard POSIX, le applicazioni Unix sono compatibili anche con Linux (migrazione possibile) | Grazie allo standard POSIX, le applicazioni Linux sono compatibili anche con Unix (migrazione possibile) |
Requisiti hardware minimi, ottime performance di sistema | |
Disponibili versioni portabili senza installazione (per esempio DVD, chiavetta USB) |
Svantaggi di Unix | Svantaggi di Linux |
Target limitato, si concentra su utenti esperti e professionisti informatici | Studio iniziale necessario per principianti Linux, utenti di altri sistemi devono rinunciare a software abituali |
Molte soluzioni, anche specialistiche, sul mercato dei server sono a pagamento e legate all’hardware del produttore | Nel mercato dei server, i costi per l’assistenza per distribuzioni Linux possono essere più elevati |
Requisiti hardware tendenzialmente più elevati (in particolare per i sistemi commerciali e legati a una licenza) | Linux presenta falle di sicurezza, malware (i server sono più vulnerabili) |
Aggiornamenti non regolari e sviluppo lento | Driver per nuovi hardware (computer, schede grafiche) escono spesso in ritardo |
Numero di utenti in calo, scavalcato in parte da Linux (soprattutto nel mercato dei server) | Sviluppo di Linux frammentato (numerose distribuzioni Linux) |
Praticamente irrilevante sul mercato desktop | Quota di mercato inferiore nel segmento di computer desktop e notebook |