C'è un filo, sottilissimo ma allo stesso modo molto forte, che unisce indissolubilmente sistemi operativi apparentemente molto differenti come Mac OS, Linux e FreeBSD. Un filo che risponde al nome di UNIX, sistema operativo sviluppato nel corso degli anni '60 dal gigante delle telecomunicazioni statunitense AT&T e inizialmente di dominio esclusivo di programmatori di alto livello. Fatta eccezione per Microsoft Windows, la gran parte dei maggiori sistemi operativi in commercio ha nel proprio core molti elementi originari di UNIX.
Cos'è UNIX
UNIX (a volte scritto anche Unix o Unix in maiuscoletto) è un ambiente operativo potente e multiutente ora implementato in una grande varietà di piattaforme. Venne sviluppato all'interno dei Bell Laboratories della AT&T da un gruppo di lavoro composto da Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, Michael Lesk e Joe Ossanna e rilasciato ufficialmente nel 1969 in linguaggio macchina. Nel 1973 venne quasi interamente ricordificato nel linguaggio di programmazione C, così da consentirne una maggiore diffusione.
Anche se oggi è difficile trovare delle macchine – sia personal computer sia server – che presentino una versione di UNIX “pura”, sono molti gli utenti in giro per il mondo che fanno uso di sistemi operativi basati su parti del codice sorgente di UNIX, Mac OS e distribuzioni Linux (come BackTrack, ad esempio) in testa. Anche se le loro interfacce grafiche possono divergere profondamente, alcuni aspetti e applicazioni dei sistemi operativi UNIX-based sono molto simili. Una fra tutte, la Unix shell, l'interfaccia a riga di comando praticamente identica in tutte i vari sistemi operativi.
Caratteristiche di UNIX
Affinché un sistema operativo possa dirsi UNIX o, comunque, UNIX-like deve rispettare delle direttive e delle caratteristiche ben precise.
Prima di tutto deve essere multiutente e permettere l'interazione contemporanea di più utenti. Il sistema, che controlla le attività degli utenti, deve far sì che queste non interferiscano l'una con l'altra. Gli utenti di un sistema sono individuati unicamente grazie ad un nome logico (username). Tra gli utenti, suddivisi in vari gruppi con vari livelli di “competenza”, è definito l'utente root, che ha compiti e funzioni di amministratore del sistema.
Un sistema operativo UNIX è anche multitasking e può sopportare l'esecuzione contemporanea di più di un programma. Per questo motivo deve essere dotato di un sistema di gestione della memoria virtuale che permetta di assegnare ad ogni processo in esecuzione un'area di memoria dalle dimensioni eventualmente maggiori rispetto alla memoria fisica effettivamente disponibile.
Un sistema UNIX, essendo realizzato in C, garantisce un alto grado di portabilità ed è quindi disponibile su un gran numero di piattaforme hardware, anche molto diverse l'una dall'altra. Proprio per questo stretto legame sussistente tra il sistema operativo UNIX e il linguaggio di programmazione C è possibile trovare un ambiente di sviluppo per programmi scritti in C in ogni sistema UNIX-like.
Componenti di UNIX
Ogni sistema operativo UNIX o UNIX-like che si rispetti è composto da vari elementi solitamente distribuiti assieme. Oltre al kernel – fondamentale per il funzionamento del sistema operativo – troviamo ambienti di sviluppo, comandi UNIX, librerie, documenti e il codice sorgente modificabile liberamente da ogni utente.
Tra i comandi UNIX più importanti troviamo quelli della famiglia sh, relativi al terminale a riga di comando che permette l'interazione tra utente e sistema operativo; quelli della famiglia Utilities, il kit di strumenti principale di ogni sistema operativo UNIX; quelli della famiglia Document formatting e utilizzati per l'impaginazione e la formattazione di documenti di testo; quelli della famiglia Graphics utilizzati primariamente per realizzare semplici grafiche vettoriali; quelli della famiglia Communications utilizzati per la comunicazione tra i vari utenti dello stesso sistema informatico.
Le famiglie UNIX
Vista la sua grande diffusione e differenziazione, è possibile suddividere i vari sistemi basati su UNIX in diverse famiglie. Che, come ogni famiglia che si rispetti, si differenzia dall'altra per caratteristiche peculiari e, in alcuni casi, uniche.
La più importante famiglia di sistemi operativi derivati da UNIX ma non certificati come tali è quella dei sistemi operativi BSD (come FreeBSD, NetBSD e OpenBSD). C'è poi la famiglia dei sistemi Unix, della quale fanno parte esclusivamente i sistemi derivati direttamente dallo UNIX sviluppato originariamente da AT&T. La famiglia dei sistemi Unix-like comprende, invece, quei sistemi sviluppati tenendo conto delle direttive descritte nella Single UNIX Specification. Alla famiglia UNIX appartengono, infine, i sistemi operativi certificati dal The Open Group, consorzio di sviluppo composto da IBM, HP e Oracle Corporation.
3 agosto 2013