L’articolo che mi accingo a scrivere vuole enfatizzare qualche aspetto di due visioni diverse ed allo stesso tempo simili dell’idea di Sistema Operativo.
É obbligo fare un breve cenno storico riguardo all’evoluzione tecnologica degli elaboratori di calcolo.
La fine degli anni '60 e il decennio successivo sono caratterizzati dalla presenza di sistemi automatici di calcolo in grado di elaborare e produrre dati su carta.
Gli anni '80 sono contraddistinti dalla graduale comparsa di sistemi di elaborazione dotati di memoria, basati su un componente elettronico chiamato processore.
L’evoluzione tecnologica favorisce la nascita dei processori a 32 bit di memoria e successivamente dei processori a 64 bit, la caratteristica saliente che li differenzia sono la quantità di memoria “volatile” la cosiddetta RAM che entrambe le tecnologie riescono a gestire. I primi sono in grado di supportare fino a 4 GiB mentre i secondi sino a 16 EiB. Nel 1985 l’azienda Microsoft acquista DOS il cui acronimo significa Disk Operating System, è il primo sistema operativo in grado di leggere e scrivere dati su un dispostivo hardware. Nasce così MS-DOS.
Il 1993 è caratterizzato dalla presenza di Windows 1.0 con interfaccia grafica, dal 1995 fino ai giorni nostri si susseguono 20 versioni arrivando all’attuale Windows 11. La caratteristica peculiare che le contraddistingue è l’ implementazione della tecnologia NT (New Tecnology) che permette di elaborare più processi alla volta.
A questo punto della narrazione è doveroso fare un inciso e cercare di spiegare il concetto di processo. Dal nostro punto di vista cioè utenti “standard” nell’utilizzo del pc siamo abituati all’ idea di applicazioni es. editor di testo, di calcolo, gestione delle e-mails, browser per la navigazione in Internet e altro come strumenti per soddisfare le nostre esigenze di lavoro o di svago quotidiane ma dal punto di vista del computer le suddette non sono altro che uno o più tasks, processi che il sistema operativo deve gestire in memoria per restituire all’utente un risultato.
Nel 1991 Linus Torvalds, uno studente dell’Università di Helsinki, ispirandosi prima ad Unix, un sistema operativo ideato nel 1970 dalla AT&T Bell labs e a Mimix poi, una versione di Unix pensato per motivi di studio e ricerca, decide di scrivere il suo codice dando così vita a Linux.
Entrambi Sistemi Operativi si basano sulla tecnologia hardware a 32/64 bit.
La domanda che merita risposta ora è: che cosa è un Sistema Operativo e di quali elementi si compone?
Il Sistema Operativo è l’intermediario che pone in relazione l’uomo con la macchina ed è contraddistinto da tre componenti fondamentali:
- Kernel
- File system
- shell
In una accezione astratta si definisce il Kernel il cuore del sistema operativo e lo si può paragonare ad una torre di controllo che si trova negli aeroporti e che gestisce il traffico aereo scandendo modi e tempi di come gli aerei occupano e liberano le piste. Allo stesso modo il Kernel gestisce modalità e tempi di accesso delle applicazioni alla memoria di un sistema, inizializza e termina i processi, elabora le istruzioni impartite dall’utente per eseguire semplici processi ad esempio visualizzare del testo sul monitor.
Il file system non è altro che l’organizzazione di files e directories presenti in un dispositivo di archiviazione.
La Shell è una interfaccia, che permette all’utente di interagire con la macchina fisica per mezzo del sistema operativo ed è stata concepita in due modi distinti, conosciuti rispettivamente come CLI (Command Line Interface) e GUI (Graphical Unit Interface).
Windows e Linux sono due Sistemi Operativi, entrambi dunque hanno le caratteristiche delineate sopra e per questo sono simili; l’elemento che li differenzia è concettuale e riguarda il codice sorgente che è base fondante degli stessi. La visione di Windows si basa sull’inacessibilità del suddetto codice sorgente mentre Linux trae la sua forza mettendolo a disposizione di chiunque volesse modificarlo per attagliarlo alle proprie esigenze.
Due approcci differenti ma, a quanto pare, entrambi vincenti!
Riferimenti: