Indice dei contenuti dell'articolo:
Cos’è Unix?
Unix, registrato come UNIX, è un sistema operativo (OS) multiutente e multitasking progettato per flessibilità e adattabilità. Sviluppato originariamente negli anni ’70, Unix è stato uno dei primi sistemi operativi scritti nel linguaggio di programmazione C. Sin dalla sua introduzione, il sistema operativo Unix e le sue derivazioni hanno avuto un profondo effetto sull’industria dei computer e dell’elettronica, offrendo portabilità, stabilità e interoperabilità in una gamma di ambienti eterogenei e tipi di dispositivi.
Storia di Unix
Alla fine degli anni ’60, Bell Labs (poi AT&T), General Electric e il Massachusetts Institute of Technology tentarono di sviluppare un sistema interattivo di condivisione del tempo chiamato Multiplexed Information and Computing Service ( Multics ) che consentisse a più utenti di accedere a un mainframe contemporaneamente.
Deluso dai risultati, Bell Labs si è ritirato dal progetto, ma gli informatici della Bell Ken Thompson e Dennis Ritchie hanno continuato il loro lavoro, che è culminato nello sviluppo del sistema operativo Unix. Come parte di questo sforzo, Thompson e Ritchie hanno reclutato altri ricercatori Bell Labs e insieme hanno costruito una suite di componenti che ha fornito una base per il sistema operativo. I componenti includevano un file system gerarchico, un’interfaccia della riga di comando ( CLI ) e più piccoli programmi di utilità. Il sistema operativo ha anche portato con sé i concetti di processi informatici e file di dispositivo.
Un mese dopo, Thompson ha implementato un sistema operativo self-hosting con un assembler , un editor e una shell. Il nome, pronunciato YEW-nihks , era un gioco di parole basato sul sistema precedente: una versione evirata o eunuco di Multics. Unix era molto più piccolo di quello che gli sviluppatori originali intendevano per Multics ed era un sistema a task singolo. Le capacità multitasking sarebbero arrivate più tardi.
Prima del 1973, Unix era scritto in linguaggio assembler, ma la quarta edizione è stata riscritta in C. Questo era rivoluzionario all’epoca perché si pensava che i sistemi operativi fossero troppo complessi e sofisticati per essere scritti in C, un linguaggio di alto livello. Ciò ha aumentato la portabilità di Unix su più piattaforme di elaborazione.
E’ doveroso menzionare al fine di divulgare e comprendere la genialità di questi pionieri dell’informatica che anche il Linguaggio C alla base della programmazione e dell’informatica stessa sia stato sviluppato da Brian Kernighan e Dennis Ritchie, lo stesso Dennis Ritchie inventore di UNIX. Famoso è il testo “Linguaggio C – Standard ANSI” utilizzato in tutte le accademie universitarie ad indirizzo tecnologico come informatica, ribattezzato “Kernighan & Ritchie” o più semplicemente “K&R”.
Alla fine degli anni ’70 e all’inizio degli anni ’80, Unix ha accumulato un forte seguito nel mondo accademico, che ha portato le startup commerciali, come Solaris Technologies e Sequent, ad adottarlo su scala più ampia. Tra il 1977 e il 1995, il Computer Systems Research Group dell’Università della California, Berkeley, ha sviluppato Berkeley Software Distribution ( BSD ), una delle prime distribuzioni Unix e la base per molti altri spin-off Unix.
Più nello specifico ecco alcune tappe fondamentali dei vari UNIX:
Unix V6, rilasciato nel 1975, divenne molto popolare. Unix V6 era gratuito ed era distribuito con il suo codice sorgente.
Nel 1983, AT&T ha rilasciato Unix System V che era una versione commerciale.
Nel frattempo, l’Università della California a Berkeley ha avviato lo sviluppo della propria versione di Unix. Berkeley è stata anche coinvolta nell’inclusione del protocollo di rete TCP/IP (Transmission Control Protocol/Internet Protocol).
Le seguenti furono le principali pietre miliari nella storia di UNIX all’inizio degli anni ’80
• AT&T stava sviluppando il suo System V Unix.
• Berkeley ha preso l’iniziativa del proprio Unix BSD (Berkeley Software Distribution) Unix.
• Sun Microsystems ha sviluppato il proprio Unix basato su BSD chiamato SunOS e successivamente è stato rinominato Sun Solaris.
• Microsoft e l’operazione Santa Cruz (SCO) erano coinvolti in un’altra versione di UNIX denominata XENIX.
• Hewlett-Packard ha sviluppato HP-UX per le sue workstation.
• DEC ha rilasciato ULTRIX.
• Nel 1986, IBM ha sviluppato AIX (Advanced Interactive eXecutive).
L’avvento di MINIX
L’avvento di MINIX segna una tappa significativa nella storia dei sistemi operativi UNIX-like. MINIX, abbreviazione di “Mini-Unix”, è un sistema operativo progettato e sviluppato da Andrew S. Tanenbaum nel 1987. Tanenbaum, professore di informatica presso la Vrije Universiteit di Amsterdam, creò MINIX come strumento didattico per insegnare i concetti fondamentali dei sistemi operativi. Il suo design modulare e il microkernel lo rendono particolarmente adatto per scopi educativi, poiché semplifica la comprensione del funzionamento interno dei sistemi operativi, rendendo più accessibili concetti complessi.
MINIX non era solo un progetto accademico, ma anche una risposta alla crescente complessità e chiusura dei sistemi operativi commerciali dell’epoca. Tanenbaum desiderava creare un sistema che fosse piccolo, comprensibile e facilmente modificabile dagli studenti. Il codice sorgente di MINIX era liberamente disponibile e accompagnato dal libro “Operating Systems: Design and Implementation”, che forniva una spiegazione dettagliata del codice stesso, rendendolo un prezioso strumento didattico.
Il progetto MINIX ha avuto un impatto duraturo e significativo. Anche se non ha mai raggiunto una diffusione di massa come altri sistemi operativi, ha influenzato profondamente la comunità degli sviluppatori. Uno degli episodi più noti legati a MINIX è l’ispirazione che fornì a Linus Torvalds, il creatore di Linux. Torvalds ha iniziato lo sviluppo di Linux come un’estensione di MINIX, prima di trasformarlo in un sistema operativo completamente indipendente. Questo ha reso MINIX una pietra miliare nella storia dell’informatica, essendo una delle radici dell’intero ecosistema Linux che oggi domina il panorama dei server e dei sistemi embedded.
Oltre alla sua influenza su Linux, MINIX ha continuato a evolversi. Le versioni successive, come MINIX 3, si sono focalizzate sulla robustezza e sull’affidabilità, proponendosi come sistema operativo per dispositivi embedded e server ad alta disponibilità. La comunità di sviluppatori di MINIX è rimasta attiva, continuando a esplorare nuovi modi per migliorare e utilizzare questo piccolo ma potente sistema operativo.
La nascita di Linux o meglio GNU/LINUX
La nascita di Linux, o meglio GNU/Linux, rappresenta uno dei momenti più cruciali nella storia dei sistemi operativi e del software libero. Il progetto Linux iniziò nel 1991, quando Linus Torvalds, uno studente finlandese di informatica presso l’Università di Helsinki, decise di creare un nuovo kernel di sistema operativo come hobby. Insoddisfatto delle limitazioni di MINIX, Torvalds volle sviluppare qualcosa di più potente e flessibile. È importante notare che Linux non è uno UNIX, ma un sistema operativo UNIX-like, ovvero un sistema che si ispira ai principi di UNIX senza essere una sua copia diretta.
Il progetto GNU, avviato da Richard Stallman nel 1983, ebbe un ruolo fondamentale nella creazione di GNU/Linux. Stallman aveva l’obiettivo di creare un sistema operativo completamente libero, simile a Unix, e scelse il nome GNU come gioco di parole: “GNU is Not Unix”. Il progetto GNU aveva sviluppato molti degli strumenti necessari, come compilatori, librerie e shell, ma mancava un kernel funzionante. La combinazione del kernel Linux con i componenti del progetto GNU portò alla creazione di un sistema operativo completo e funzionale: GNU/Linux.
GNU/Linux si basa su principi di libertà e collaborazione. Il codice sorgente è disponibile liberamente, permettendo a chiunque di studiarlo, modificarlo e distribuirlo. Questo approccio ha portato a un rapidissimo sviluppo e a un’ampia diffusione di GNU/Linux. Oggi, GNU/Linux è utilizzato in una vasta gamma di dispositivi, dai server di grandi dimensioni ai computer desktop, fino ai dispositivi mobili e agli embedded systems. È attualmente uno dei sistemi operativi più diffusi al mondo, avendo soppiantato molti sistemi UNIX proprietari grazie alla sua flessibilità, potenza e comunità di supporto.
Uno degli elementi chiave del successo di GNU/Linux è stato il modello di sviluppo aperto e collaborativo. Milioni di sviluppatori e utenti in tutto il mondo hanno contribuito al miglioramento del software, creando una comunità globale di persone dedicate al miglioramento continuo del sistema operativo. Le diverse distribuzioni di GNU/Linux, come Ubuntu, Fedora, Debian e molte altre, offrono soluzioni su misura per vari usi e preferenze, mantenendo sempre i principi di apertura e condivisione alla base del movimento del software libero.
Nel 1991, Linus Torvalds, uno studente dell’Università di Helsinki, ispirandosi a MINIX 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 ha portato alla crescente popolarità dei sistemi simili a Unix.
Oggi, una vasta gamma di moderni server, workstation, dispositivi mobili e sistemi embedded sono gestiti da sistemi operativi basati su Unix, inclusi computer macOS e dispositivi mobili Android che di fatto a tutti gli effetti utilizzano un Kernel Linux.
A cosa serve Unix?
Unix è un sistema operativo modulare composto da una serie di componenti essenziali, tra cui il kernel , la shell, il file system e un insieme 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.
Alla base di UNIX ci sono concetti tecnici e scelte di implementazione che permettono di gestire in maniera molto facile ed elegante l’output di un programma come input per un altro programma e via dicendo.
Tramite questo approccio si possono (tramite la concatenazione di molti comandi specifici) arrivare a produrre risultati ed output per uno scopo prefissato anche molto complesso.
Ad esempio si potrebbe avere la necessità reale (il caso descritto è stata una nostra reale necessità interna) di dover scaricare tutte le distinte PDF di annualità di movimenti da un circuito bancario, convertirle in TXT, esportare alcuni campi come Data, Ragione sociale, Causale, Importo e compilare un file in formato XLS.
Una combo di wget con pdf2txt, AWK permette di gestire elegantemente la necessità e risolvere la problematica.
Unix supporta l’uso di pipe (|), un potente strumento per collegare più comandi per creare flussi di lavoro complessi. Quando due o più comandi vengono collegati insieme, 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.
Gli utenti interagiscono con l’ambiente Unix attraverso 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 utilità disponibili. Ciascuna 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 forniscono un modo per perfezionare il comportamento dell’utilità. Ad esempio, un utente potrebbe immettere il comando rm OldFIle.txt . Il comando chiama l’ utilità rm , che elimina i file in una directory. Il comando include anche l’argomento OldFIle.txt , che è il file da eliminare. Quando l’utente immette questo comando nella shell, il kernel esegue il programma rm ed elimina il file specificato.
I concetti Unix sono stati influenti per una serie di motivi, inclusi i seguenti:
- Unix è stata una forza trainante dietro lo sviluppo di Internet e la trasformazione dell’informatica in un paradigma incentrato sulla rete.
- Gli sviluppatori Unix sono accreditati per aver introdotto modularità e riusabilità nella pratica dell’ingegneria del software e incitando al movimento degli strumenti software.
- Gli sviluppatori Unix hanno anche creato una serie di regole culturali per lo sviluppo del software , denominata filosofia Unix , che è stata molto influente per la comunità IT.
Tipi di Unix
Unix è diventato il primo sistema operativo che può essere migliorato o potenziato da chiunque, in parte perché è stato scritto in linguaggio C e ha abbracciato molte idee popolari. Tuttavia, il suo successo iniziale ha portato a più varianti che mancavano di compatibilità e interoperabilità. Per affrontare questi problemi, un certo numero di fornitori e individui si sono riuniti negli anni ’80 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 ad evolversi, con l’aggiunta di nuove varianti, alcune proprietarie e altre open source. Gran parte del progresso è stato il risultato di aziende, università e individui che hanno contribuito con estensioni e nuove idee.
La licenza Unix dipende dalla variante specifica. Alcune varianti di Unix sono di proprietà e sono dotate di un canone di licenza, come IBM Advanced Interactive eXecutive (AIX) o Oracle Solaris, e altre varianti sono gratuite e open source, inclusi Linux, FreeBSD e OpenBSD. Il marchio UNIX è ora di proprietà di The Open Group , un’organizzazione di standard del settore che certifica e marchia le implementazioni UNIX.
Ad essere comunque molto precisi Linux non è Unix, ma è un sistema operativo simile a Unix. Il sistema Linux è derivato da Unix ed è una continuazione delle basi del design Unix. Le distribuzioni Linux sono l’esempio più famoso e più sano dei derivati
Sistemi operativi simili a UNIX o definiti UNIX Like
Il termine UNIX Like è spesso usato per descrivere le diverse varianti di Unix, ma non esiste una definizione chiara di cosa significhi questo termine. In generale, può fare riferimento a qualsiasi sistema operativo che ha qualche relazione con Unix, non importa quanto distante, comprese le variazioni gratuite e open source. Alcuni sviluppatori di software affermano che esistono tre tipi di sistemi simili a Unix:
- Sistemi operativi storicamente collegati alla base di codice originale di Bell Labs, come i sistemi BSD sviluppati dai ricercatori di Berkeley.
- Sistemi simili a Unix con marchio e marchio che soddisfano SUS, come HP-UX e IBM AIX. L’Open Group ha stabilito che questi sistemi possono utilizzare il nome Unix.
- Sistemi funzionali simili a Unix, 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 accesso e della riga di comando.
Il lento declino di UNIX.
Il declino di Unix è “più un artefatto della mancanza di attrattiva di marketing che della mancanza di qualsiasi presenza“, afferma Joshua Greenbaum, analista principale di Enterprise Applications Consulting . “Nessuno commercializza più Unix, è una specie di termine morto. È ancora in circolazione, semplicemente non è costruito attorno alla strategia di nessuno per l’innovazione di fascia alta. Non c’è futuro, e non è perché c’è qualcosa di intrinsecamente sbagliato in esso, è solo che qualsiasi cosa innovativa andrà nel cloud”.
“Il mercato UNIX è in inesorabile declino“, afferma Daniel Bowers, direttore della ricerca per le infrastrutture e le operazioni di Gartner . “Solo 1 server su 85 distribuito quest’anno utilizza Solaris, HP-UX o AIX. La maggior parte delle applicazioni su Unix che possono essere facilmente trasferite su Linux o Windows sono già state spostate“.
La maggior parte di ciò che rimane oggi su Unix sono carichi di lavoro personalizzati e mission-critical in settori quali i servizi finanziari e l’assistenza sanitaria. Poiché queste app sono costose e rischiose da migrare o riscrivere, Bowers prevede un declino a coda lunga in Unix che potrebbe durare 20 anni. “Come sistema operativo praticabile, ha almeno 10 anni perché c’è questa lunga coda. Anche tra 20 anni, le persone vorranno ancora gestirlo“, afferma.
Gartner non tiene traccia della base di installazione, ma solo di nuove vendite e la tendenza è in calo. Nel primo trimestre del 2014, le vendite di Unix sono state pari a 1,6 miliardi di dollari. Entro il primo trimestre del 2018, le vendite erano di 593 milioni di dollari. In termini di unità, le vendite di Unix sono basse, ma sono quasi sempre sotto forma di server di fascia alta e pesantemente allestiti che sono molto più grandi del tipico server x86 a due socket.
Qual è il futuro di Unix?
Unix e le sue varianti continuano a funzionare su un’ampia gamma di sistemi, incluse workstation, server e supercomputer. Linux, in particolare, ha preso il comando nelle implementazioni simili a Unix, guadagnando una forte presenza nei data center e sulle piattaforme cloud . Inoltre, il sistema operativo ora funziona su tutti i 500 migliori supercomputer del mondo. Linux è disponibile sia come software gratuito che come software proprietario commerciale.
Sebbene Linux rimanga forte, in particolare per i server aziendali, Unix stesso ha visto un calo nell’utilizzo, in parte a causa della migrazione da piattaforme di computer con set di istruzioni ridotte ad alternative basate su x86, che possono eseguire più carichi di lavoro e fornire prestazioni più elevate a un costo inferiore.
Gli esperti prevedono che molte organizzazioni continueranno a utilizzare Unix per carichi di lavoro mission-critical, ma diminuiranno la loro dipendenza dal sistema grazie alla modernizzazione dell’IT e alle strategie di consolidamento. Tuttavia, Unix è ancora il sistema preferito per molti casi d’uso, come il supporto delle applicazioni del data center, la sicurezza del cloud e il software specifico per il verticale.
Le vendite future di server Unix dovrebbero diminuire, ma le applicazioni nel settore finanziario, governativo e delle telecomunicazioni dovrebbero continuare a guidare l’uso di Unix. Alla fine, Unix potrebbe essere abbandonato completamente, ma prima che ciò accada sarà necessario un lungo e lento declino.