24 Settembre 2022

Che cos’è UNIX?

Spieghiamo cosa sia UNIX e la storia di UNIX arricchita da aneddoti e importanti precisazioni.

UNIX

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.

Ken Thompson Dennis Ritchie

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”.

Libro Linguaggio C Seconda Edizione - Kernighan & Ritchie

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).

UNIX Milestone

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.

Andrew_S_Tanenbaum

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.

Linux Torvlads Linux

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.

Pipe Unix

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.

Unix supporta più shell, incluse sh, csh, ksh, tcsh e bash. Una distribuzione Unix in genere designa una shell predefinita, ma gli utenti possono scegliere da una qualsiasi delle shell supportate. Gli utenti possono anche personalizzare l’ambiente della shell oppure possono scrivere i propri script di shell .Un’altra importante caratteristica 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 principale in alto. I file vengono quindi assegnati a directory specifiche e accessibili tramite la struttura delle directory. I precedenti sistemi operativi dividevano un dispositivo di archiviazione in sezioni in base a un numero fisso di livelli.Unix tratta tutti i tipi di file come semplici array di byte, risultando 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 tra processi come file.

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 Unix diretti.BSD (Berkley Software Distribution) è anche un esempio di un derivato di Unix.

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:

  1. Sistemi operativi storicamente collegati alla base di codice originale di Bell Labs, come i sistemi BSD sviluppati dai ricercatori di Berkeley.
  2. 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.
  3. 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.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

Torna in alto