Unix è un sistema operativo sviluppato originariamente dai Bell Laboratories negli anni '60 e '70. È noto per essere il primo sistema operativo portabile, multiutente e multitasking, implementato con il linguaggio di programmazione C. UNIX è stato progettato per gestire file come semplici sequenze di byte e utilizza un file system gerarchico; inoltre gestisce dispositivi e comunicazioni interprocesso come se fossero file.[1]
Storia
La storia del sistema operativo UNIX inizia nei laboratori Bell di AT&T negli anni '60. Gli informatici statunitensi Ken Thompson e Dennis Ritchie sono stati tra i principali sviluppatori che hanno lavorato su questo progetto. UNIX è nato come un’evoluzione del progetto Multics, che era troppo complesso e pertanto fu abbandonato.
Nel 1969, Thompson scrisse la prima versione di UNIX su un computer Digital Equipment CorporationPDP-7. Successivamente, Ritchie riscrisse gran parte del sistema operativo in linguaggio C, rendendolo più portabile e flessibile. Questa riscrittura ha permesso a UNIX di essere eseguito su diverse piattaforme hardware, un fattore chiave per la sua diffusione.
Negli anni '70, UNIX fu adottato da molte università e istituti di ricerca, contribuendo alla sua evoluzione e miglioramento. La versione 7 di UNIX, rilasciata nel 1979, è stata una delle versioni più influenti, introducendo molte delle caratteristiche che sono ancora presenti nei sistemi operativi moderni.
Negli anni '80, UNIX ha visto una commercializzazione significativa con la nascita di diverse varianti come BSD (Berkeley Software Distribution) e System V. Queste varianti hanno portato a una frammentazione del mercato, ma anche a una grande innovazione.[2]
Descrizione
Il sistema operativo Unix può essere riassunto in base alle seguenti caratteristiche:
Multiutente: Permette a più utenti di interagire contemporaneamente con il sistema da terminali diversi, evitando interferenze tra le attività degli utenti. Ogni utente è identificato univocamente da un nome logico (username) e suddiviso in gruppi, ciascuno identificato da un nome (groupname). Il sistema definisce anche un utente root, che rappresenta l’amministratore di sistema e non ha limitazioni nell’accesso alle risorse.
Multiprogrammato (multitasking): Il kernel supporta l’esecuzione contemporanea di più processi gestiti tramite divisione di tempo (timesharing).
Gestione della memoria virtuale: Utilizza paginazione e segmentazione per consentire a ogni processo di indirizzare un’area di memoria potenzialmente superiore alla memoria centrale disponibile.
Portabile: Grazie all’uso del linguaggio C, Unix è altamente portabile e disponibile su una vasta gamma di architetture hardware.
Aperto: Le versioni più recenti si sono uniformate allo standard POSIX. Unix implementa anche molti dei servizi e protocolli di comunicazione più diffusi su Internet, facilitando l’integrazione dei sistemi Unix in una rete.
Ambiente di sviluppo per programmi in C: Mantiene uno stretto legame con il linguaggio di programmazione C, offrendo un ricco insieme di strumenti per lo sviluppo di applicazioni in C, tra cui il compilatore cc.
(EN) Dennis M. Ritchie e Ken Thompson, The UNIX Time-Sharing System (PDF), in The Bell System Technical Journal, vol.57(6), 1978. URL consultato il 17 aprile 2018 (archiviato dall'url originale il 10 dicembre 2005).
NMI Club (a cura di), No SCOpyright. Il caso SCO contro Linux, Antonella Beccaria, Francesco Marchetti-Stasi, Bernardo Parrella, Emmanuele Somma, Viterbo, Stampa Alternativa, 2004, ISBN88-7226-806-0. URL consultato il 3 luglio 2010 (archiviato dall'url originale il 12 ottobre 2007).