Una introduzione
Siamo abituati, oggi, ad utilizzare le macchine (computer, smarphone, ecc.) che ci capitano sotto le mani con un naturalezza ed una semplicità tali che, probabilmente, non ci rendiamo conto della eventuale complessità dell'oggetto con cui interagiamo.
Far scorrere le dita su di uno schermo multi-touch e vedere immagini, cartelle, testi, filmati che si aprono in finestre, ordinare tutto con un semplice gesto, spedire filmati per posta ad un amico e riceverne, ci sembrano operazioni facili e naturali, legate al nostro modo di manipolare gli oggetti reali. Quasi non facciamo più distinzione tra gesti della realtà virtuale e gesti della realtà quotidiana. Tutta questa "naturalezza" nello gestire le nostre operazioni "virtuali", se provassimo a pensarle nel mondo di dieci anni indietro, ci apparirebbero impossibili o, al limite, scene di un film di fantascienza.
Tutto questo, se da un lato ci semplifica enormemente la vita (digitale) dall'altro ci nasconde cosa c'è realmente "sotto il cofano". La storia delle macchne da calcolo è stata, sin dall'inizio, una continua evoluzione per cercare di rendere il rapporto uomo-macchina il più semplice possibile e di cercare di riprodurre, nell'azione di "comando", la gestualità e le modalità tipiche umane.
![]() |
Mouse seriale |
Da una parte si è cercato di elaborare e produrre periferiche che ci permettessero di comunicare dati e comandi in modo semplice, dall'altra si sono sviluppati software sempre più complessi che permettessero agli elaboratori di gestire tali periferiche.
Ciò si è tradotto in un aumento esponenziale della complessità generale dei sistemi di elaborazione. Un "telefonino" dei nostri giorni è immensamente più complesso di un elaboratore degli albori dell'era informatica. Complessità a parte, sotto il cofano sono, comunque, rimasti gli stessi elementi che hanno caratterizzato i primi calcolatori. (più o meno) :-)
Un po' di teoria spiegata in modo semplice
Gli elementi costitutivi dell'hardware sono, essenzialmente, i seguenti:
- una C.P.U. (Central Process Unit), cioè una Unità Centrale di Processo, definita genericamente anche "processore" o "microprocessore". Cioè l'elemento fisico che serve ad elaborare e gestire i dati.
- un BUS, cioè una connessione che consente ai dati di transitare tra diversi componenti, quali chip, schede, periferiche, ecc. In sostanza, un insieme di collegamenti fisici (cavi, piste di circuiti stampati, ecc.) che possono essere utilizzati in comune da più elementi hardware per comunicare.
- "tutto il resto del mondo", cioè l'insieme di componenti aggiuntivi deputati a scopi specifici, le eventuali periferiche, gli operatori umani, altri elaboratori.
Per far funzionare il tutto, o meglio, per poter gestire il tutto è necessario che vi sia un "ente" (deformazione mia di origine "filosofica" :-) ) deputato allo scopo. Tale "ente" non è altro che quello che chiamiamo "software" o, più precisamente, "software di sistema". Il software di sistema, in sintesi, comanda e gestisce il flusso delle informazioni, ordina alla C.P.U. di elaborare i dati, gli dice dove indirizzarli attraverso il BUS, mette in attesa il sistema di ricevere risposte e di elaborare una "risposta" quando necessita, immagazzina i dati sotto forma di file all'interno di specifici "contenitori virtuali" (directory) attraverso un sistema di regole codificate (file system) in unità di memoria di massa (floppy, dischi rigidi, memorie flash, ecc.). Deve essere in grado di visualizzare in tempo reale l'attività di alto livello gestendo le schede grafiche e, conseguentemente attraverso di esse, il monitor. Questo "ente"o "software di sistema" ha un nome specifico: Sistema Operativo.
![]() |
Dettaglio schema del Kernel Linux |
Se vogliamo dare una definizione canonica e più tecnica diciamo che con il termine "Sistema Operativo" si intende, sostanzialmente: "un software (definito genericamentecome "software di sistema") che gestisce e controlla l'insieme del traffico dei dati all'interno del calcolatore e tra questo e tutte le periferiche che sono collegate con esso. Fornisce, inoltre, un'interfaccia che permette l'invio di comandi da parte dell'operatore al computer stesso."
Il Sistema Operativo, in sintesi, si pone come un intermediario tra hardware e software di sistema e tra questo e il software applicativo che viene pilotato dall'utente che interagisce con la macchina.
Esempi di sistemi operativi,sono:
DOS (Disk Operating System)
UNIX
CP/M
Windows (Windows + DOS)
MacOS
Le componenti principali di un Sistema Operativo sono:
- Il Kernel (il nucleo)
- Il File System (per la gestione dei file, delle directory, ecc.)
- La shell (interfaccia utente per dare i comandi)
![]() |
File System di Linux |
Quindi, secondo quanto descritto sopra, sembrerebbe che "alla base" stessa di "elaboratore" ci siano, fondamentalemnte, due componenti generali:
- l'hardware
- il sistema operativo.
Ma non è stato sempre così, nel prossimo articolo vedremo perché...
Commenti
Posta un commento