Unix
Cos’è Unix?
Unix, il cui marchio registrato è UNIX, è un sistema operativo (SO) multiutente e multitasking progettato per garantire flessibilità e adattabilità. Sviluppato originariamente negli anni ’70, Unix è stato uno dei primi sistemi operativi a essere scritto in linguaggio di programmazione C. Fin dalla sua introduzione, il sistema operativo Unix e le sue derivate hanno avuto un profondo impatto sull’industria informatica ed elettronica, offrendo portabilità, stabilità e interoperabilità in una vasta gamma di ambienti e tipi di dispositivi eterogenei.
Storia di Unix
Alla fine degli anni ’60, i Bell Labs (in seguito AT&T), la General Electric e il Massachusetts Institute of Technology tentarono di sviluppare un sistema interattivo a condivisione di tempo chiamato Multiplexed Information and Computing Service (Multics), che consentisse a più utenti di accedere simultaneamente a un mainframe.
Deluso dai risultati, i Bell Labs si ritirarono dal progetto, ma gli informatici dei Bell Labs Ken Thompson e Dennis Ritchie continuarono il loro lavoro, che culminò nello sviluppo del sistema operativo Unix. Nell’ambito di questo sforzo, Thompson e Ritchie reclutarono altri ricercatori dei Bell Labs e, insieme, costruirono una suite di componenti che fornirono le basi per il sistema operativo. I componenti includevano un file system gerarchico, un’interfaccia a riga di comando (CLI) e diversi piccoli programmi di utilità. Il sistema operativo portò con sé anche i concetti di processi informatici e file di dispositivo.
Un mese dopo, Thompson implementò un sistema operativo self-hosting dotato di assembler, editor e shell. Il nome, pronunciato YEW-nihks, era un gioco di parole basato sul sistema precedente, una versione evirata o eunuca di Multics. Unix era molto più piccolo di quanto gli sviluppatori originali avessero pensato per Multics, ed era un sistema single-tasking. Le funzionalità multitasking sarebbero arrivate in seguito.
A cosa serve Unix?
Unix è un sistema operativo modulare composto da diversi componenti essenziali, tra cui il kernel, la shell, il file system e un set principale di utilità o programmi.
Il cuore del sistema operativo Unix è il kernel, un programma di controllo principale che fornisce servizi per avviare e terminare i programmi. Gestisce anche operazioni di basso livello, come l’allocazione della memoria, la gestione dei file, la risposta alle chiamate di sistema e la pianificazione delle attività. La pianificazione delle attività è necessaria per evitare conflitti quando più programmi tentano di accedere alla stessa risorsa contemporaneamente.
Gli utenti interagiscono con l’ambiente Unix tramite la shell, una CLI per l’immissione di comandi che vengono passati al kernel per l’esecuzione. Un comando viene utilizzato per richiamare una delle utility disponibili. Ogni utility esegue un’operazione specifica, come la creazione di file, l’eliminazione di directory, il recupero di informazioni di sistema o la configurazione dell’ambiente utente.
Alcuni comandi Unix accettano uno o più argomenti, che consentono di perfezionare il comportamento dell’utility. Ad esempio, un utente potrebbe digitare il comando rm OldFIle.txt. Il comando richiama l’utility rm, che elimina i file in una directory. Il comando include anche l’argomento OldFIle.txt, che indica il file da eliminare. Quando l’utente inserisce questo comando nella shell, il kernel esegue il programma rm ed elimina il file specificato.
Prima del 1973, Unix era scritto in linguaggio assembler, ma la quarta edizione fu riscritta in C. Questa fu una rivoluzione all’epoca, poiché i sistemi operativi erano considerati troppo complessi e sofisticati per essere scritti in C, un linguaggio di alto livello. Ciò aumentò la portabilità di Unix su più piattaforme informatiche.
Tra la fine degli anni ’70 e l’inizio degli anni ’80, Unix ottenne un forte seguito nel mondo accademico, che portò startup commerciali, come Solaris Technologies e Sequent, ad adottarlo su larga scala. Tra il 1977 e il 1995, il Computer Systems Research Group dell’Università della California, Berkeley, sviluppò la Berkeley Software Distribution (BSD), una delle prime distribuzioni Unix e la base per diverse altre derivate di Unix.
Nel 1991, Linus Torvalds, studente dell’Università di Helsinki, creò un sistema operativo basato su Unix per il suo PC. In seguito avrebbe chiamato il suo progetto Linux e lo avrebbe reso disponibile come download gratuito, il che avrebbe portato alla crescente popolarità dei sistemi simili a Unix. Oggi, una varietà di server, workstation, dispositivi mobili e sistemi embedded moderni sono basati su sistemi operativi basati su Unix, inclusi i computer macOS e i dispositivi mobili Android.
Unix supporta diverse shell, tra cui sh, csh, ksh, tcsh e bash. Una distribuzione Unix in genere designa una shell predefinita, ma gli utenti possono scegliere tra tutte quelle supportate. Gli utenti possono anche personalizzare l’ambiente della shell o scrivere i propri script di shell.
Inoltre, la shell Unix supporta l’uso delle pipe (|), un potente strumento per collegare più comandi e creare flussi di lavoro complessi. Quando due o più comandi vengono collegati tramite pipe, l’output del primo comando viene utilizzato come input per il secondo comando, l’output del secondo comando viene utilizzato come input per il terzo comando e così via.
Un’altra importante funzionalità di Unix è il file system, che fornisce una struttura gerarchica per lavorare con i file. Il file system organizza le directory in un albero invertito con la directory radice in cima. I file vengono quindi assegnati a directory specifiche e vi si accede tramite la struttura delle directory. I sistemi operativi precedenti dividevano un dispositivo di archiviazione in sezioni con un numero fisso di livelli.
Unix tratta tutti i tipi di file come semplici array di byte, il che si traduce in un modello di file molto più semplice rispetto a quelli di altri sistemi operativi. Unix tratta anche i dispositivi e alcuni tipi di comunicazione interprocesso come file.
I concetti di Unix hanno avuto influenza per una serie di motivi, tra cui i seguenti:
- Unix è stato una forza trainante per lo sviluppo di Internet e la trasformazione dell’informatica in un paradigma incentrato sulla rete.
- Agli sviluppatori Unix viene attribuito il merito di aver introdotto la modularità e la riusabilità nella pratica dell’ingegneria del software e di aver dato impulso al movimento degli strumenti software.
- Gli sviluppatori Unix hanno anche creato un insieme di regole culturali per lo sviluppo del software, note come filosofia Unix, che hanno avuto una grande influenza sulla comunità IT.
Tipi di Unix
Unix è diventato il primo sistema operativo che poteva essere migliorato o potenziato da chiunque, in parte perché era scritto in linguaggio C e abbracciava molte idee popolari. Tuttavia, il suo successo iniziale ha portato a molteplici varianti prive di compatibilità e interoperabilità. Per affrontare questi problemi, negli anni ’80 diversi produttori e singoli utenti si unirono per standardizzare il sistema operativo, prima creando lo standard Portable Operating System Interface e poi definendo la Single UNIX Specification (SUS).
Da allora, Unix ha continuato a evolversi, con l’aggiunta di nuove varianti, alcune proprietarie e altre open source. Gran parte del progresso è stato il risultato del contributo di aziende, università e singoli utenti con estensioni e nuove idee.
Le licenze di Unix dipendono dalla specifica variante. Alcune varianti di Unix sono proprietarie e prevedono un costo di licenza, come IBM Advanced Interactive eXecutive (AIX) o Oracle Solaris, mentre altre varianti sono gratuite e open source, tra cui Linux, FreeBSD e OpenBSD. Il marchio UNIX è ora di proprietà di The Open Group, un’organizzazione per gli standard di settore che certifica e marchia le implementazioni Unix.
Sistemi operativi Unix-like
Il termine “Unix-like” viene spesso utilizzato per descrivere le diverse varianti di Unix, ma non esiste una definizione chiara del suo significato. In generale, può riferirsi a qualsiasi sistema operativo che abbia una qualche relazione con Unix, indipendentemente dalla sua lontananza, incluse le varianti libere e open source. Alcuni sviluppatori di software affermano che esistano tre tipi di sistemi Unix-like:
- Sistemi operativi storicamente collegati al codice sorgente originale dei Bell Labs, come i sistemi BSD sviluppati dai ricercatori di Berkeley.
- Sistemi Unix-like con marchio registrato e brand che soddisfano i requisiti SUS, come HP-UX e IBM AIX. L’Open Group ha stabilito che questi sistemi possono utilizzare il nome Unix.
- Sistemi Unix-like funzionali, come Linux e Minix, che si comportano in modo coerente con le specifiche Unix. Ad esempio, devono disporre di un programma che gestisca le sessioni di login e da riga di comando.
Qual è il futuro di Unix? Unix e le sue varianti continuano a essere eseguiti su un’ampia gamma di sistemi, tra cui workstation, server e supercomputer. Linux, in particolare, ha assunto un ruolo guida nelle implementazioni Unix-like, guadagnando una forte presenza nei data center e sulle piattaforme cloud. Inoltre, il sistema operativo ora funziona su tutti i 500 supercomputer più importanti al mondo. Linux è disponibile sia come software libero che come software commerciale proprietario.
Sebbene Linux rimanga una piattaforma solida, in particolare per i server aziendali, Unix stesso ha registrato un calo di utilizzo, in parte a causa della migrazione da piattaforme informatiche con set di istruzioni ridotto ad alternative basate su x86, in grado di gestire più carichi di lavoro e offrire prestazioni più elevate a costi inferiori.
Gli esperti prevedono che molte organizzazioni continueranno a utilizzare Unix per carichi di lavoro mission-critical, ma ridurranno la loro dipendenza dal sistema grazie alle strategie di modernizzazione e consolidamento dell’IT. Tuttavia, Unix è ancora il sistema preferito per molti casi d’uso, come il supporto delle applicazioni per data center, la sicurezza del cloud e il software specifico per settori verticali.
Si prevede che le vendite future di server Unix diminuiranno, ma le applicazioni in ambito finanziario, governativo e delle telecomunicazioni continueranno a trainare l’utilizzo di Unix. Unix potrebbe essere abbandonato completamente, ma sarà probabilmente un lungo e lento declino prima che ciò accada