Si tratta, probabilmente, di una delle peggiori previsioni mai fatte in tutta la storia dell'umanità. Quanto meno, la peggiore per quanto riguarda la storia dell'informatica. A metà degli anni '40 Thomas Watson, allora presidente di IBM, si lasciò andare ad un pronostico piuttosto pessimistico: nel futuro ci sarebbe stato bisogno di cinque, sei computer al massimo. A settant'anni circa da quella previsione un po' avventata, ci si può rendere conto di quanto fosse errata: i computer – in ogni forma – fanno parte della nostra quotidianità e non è affatto raro che una singola persona ne possieda anche due o tre.
Ad onor del vero, bisogna dire che il computer cui si riferiva Thomas Watson poco ha a che fare con gli odierni sistemi informatici: se negli anni '40 del secolo scorso erano degli enormi mainframe creati per enti (e scopi) militari o governativi, oggi si potrebbero avere non poche difficoltà anche a riconoscere un computer. Data la loro grande utilità, sono incorporati in ogni dispositivo elettronico digitale: dal forno a microonde agli orologi digitali.
Per capire come sia possibile una tale flessibilità è necessario, dunque, spiegare cosa sia un computer e come funziona.
Cos'è un computer
Dispositivo elettronico che processa informazioni. Se volessimo dare una definizione breve e, allo stesso tempo esaustiva, di cosa sia un computer, le cinque parole che danno inizio a questo paragrafo potrebbero essere più che sufficienti. Un computer, infatti, altro non fa che acquisire dei dati grezzi; conservarli in memoria fino a quando non è pronto a trattarli; elaborarli per qualche frazione di secondo seguendo un algoritmo preciso e, infine, restituirli elaborati ad una periferica. Tutte le parti chiamate in causa in questo processo, ovviamente, hanno un nome: i dati vengono acquisiti tramite periferiche di input e sono raccolti all'interno di memorie di lavoro (memoria RAM) o di stoccaggio (gli hard disk o altri dispositivi di memoria) in attesa che il processore (o CPU) li elabori e li consegni alle periferiche di output.
In ognuna di queste quattro categorie possono rientrare i dispositivi più disparati. Tra le periferiche di input troviamo mouse e tastiera, scanner, penna grafica e microfono; tra i dispositivi di memoria possiamo trovare i già citati banchi di memoria ad accesso casuale (RAM) e hard disk, ma anche chiavette USB, hard disk rimovibili e schede di memoria Flash; l'elaborazione può essere affidata alla già citata CPU o al SoC; tra le periferiche di output, infine, troviamo i monitor, le stampanti, i proiettori, casse stereo e molto altro ancora.
La nascita del computer moderno
I nomi scelti per le varie operazioni e per gli esecutori di queste operazioni sono tutt'altro che casuali, ma fanno riferimento alla cosiddetta “Architettura di Von Neumann”, dall'omonimo matematico, fisico e informatico statunitense di origine ungherese che la teorizza nel 1945.
Nel quadro teorico di John Von Neumann, un calcolatore – o computer – si compone di cinque parti logiche che ne determinano il funzionamento: input, control, processing, storage e output. Ovviamente non c'è una corrispondenza uno a uno tra le funzioni logiche e le varie componenti hardware del computer: ad ogni funzione logica, infatti, possono corrispondere più dispositivi e componenti.
L'organizzazione logica del computer
-
Input. I computer odierni sono dotati di una lunga serie di dispositivi di input che permettono di “rifornire” il computer con dati provenienti dall'esterno. Tastiera, mouse, tavolette grafiche, touchpad, scanner, microfono, chiavetta USB, lettore DVD, router e modem, tanto per fare una breve lista. Questi dispositivi, in gergo tecnico, sono chiamati periferiche di input, una locuzione che indica tutti quei componenti hardware, interni o esterni, che aggiungono funzionalità e capacità al sistema informatico preso nella sua versione standard. Ognuna delle periferiche di input è progettata in modo che possa inviare dati al sistema e fornire nuovo “materiale grezzo” su cui lavorare: un'operazione oggi apparentemente banale, ma rivoluzionaria a metà anni '40, quando Von Neumann teorizza ed elabora il suo sistema informatico
-
Control. L'unità di controllo è una sottosezione della CPU e svolge uno dei compiti più importanti all'interno dell'architettura di Von Neumann. Sovrintende, infatti, allo scambio di informazioni che avviene tra le componenti hardware del sistema informatico (processore, RAM, disco rigido e varie periferiche), controllando il flusso del traffico dati nel bus di sistema e indicando anche come rispondere alle richieste che arrivano dai programmi. Nel ruolo di controllo svolge un ruolo determinante la scheda madre: offre alloggio alla CPU (e, di conseguenza, all'unità di controllo) e alle altre componenti del computer, mettendo loro a disposizione il canale di comunicazione grazie al quale scambiare dati, informazioni e istruzioni
-
Processing. Ad occuparsi dell'elaborazione dei dati – e quindi del loro trattamento – è l'ALU (acronimo di Arithmetic and logic unit, “unità logico-aritmetica”) un'altra componente del processore che, come dice il nome, è deputata a svolgere operazioni matematiche (addizione, sottrazione, moltiplicazione e divisione) e alcune operazioni logiche. Il processore, inoltre, può decidere di spostare i dati da un'unità di memoria all'altra (dalla RAM all'hard disk, ad esempio) e di saltare da un'istruzione o un'operazione all'altra
-
Storage. Anche se la parola storage è quasi esclusivamente associata con il disco rigido, ma un sistema informatico presente altre tre tipologie di memoria. Oltre l'hard disk, che resta il dispositivo di archiviazione più capiente e al tempo stesso il più economico, troviamo registri e cache, entrambe alloggiate all'interno della CPU, e la RAM, la memoria di lavoro a supporto dell'attività di elaborazione del processore e dell'unità logico-aritmetica
-
Output. Le periferiche di output sono quei dispositivi che rendono fruibili e accessibili all'utente i dati elaborati in fase di processing e ospitate all'interno di una delle unità di storage del sistema informatico. Fanno parte di questa categoria i monitor e i proiettori video, le stampanti, le casse acustiche
Come funziona un computer
Tutte le componenti hardware elencate e tutte le varie fasi logiche avrebbero ben poco valore, però, se non fossero supportati da strumenti adeguati in grado di fornire le istruzioni da eseguire sui dati acquisiti grazie alle periferiche di input e non solo. Ci si riferisce a quel set di istruzioni e algoritmi (conosciuti con il nome programmi informatici o software) che permette al computer di funzionare ed eseguire particolari compiti.
A seconda dello scopo per cui sono creati, i programmi si dividono in software di sistema, software applicativi, software dannoso (malware). Tra i programmi di sistema troviamo quelli necessari al funzionamento del sistema informatico stesso: BIOS, sistema operativo, driver e utility che favoriscono l'esecuzione dei programmi e mantengono “l'ordine” all'interno del sistema. I programmi applicativi, invece, dotano il sistema informatico di funzionalità speciali o di intrattenimento che vanno al di là di quelle base messe a disposizione del sistema operativo.
BIOS e sistema operativo, in particolare, sono le due componenti fondamentali che permettono alle componenti hardware di funzionare propriamente. Il BIOS (acronimo di Basic input-output system) sovrintende alla fase di accensione del computer e carica in memoria tutti i driver e i programmi necessari affinché il sistema operativo possa essere avviato senza problemi di sorta. Il sistema operativo è, invece, una collezione di programmi che gestiscono le risorse del computer e forniscono agli altri software installati nel computer una base sulla quale operare.
In particolare, il sistema operativo è responsabile dell'esecuzione di diverse operazioni:
-
Gestione dei processi. I dati sono suddivisi in piccoli pacchetti, in modo che possano essere digeriti ed eseguiti dalla CPU
-
Gestione della memoria. Coordina il flusso dati in ingresso e in uscita dalla memoria RAM, decidendo quando sia il caso di attivare la memoria virtuale
-
Gestione dei dispositivi. Fornisce un'interfaccia software che permette all'utente di interagire con ognuna delle componenti che formano il PC
-
Gestione dello storage. Gestisce lo spazio di archiviazione, indirizzando i dati verso i differenti settori del disco rigido e scrivendo la posizione all'interno delle tabelle di allocazione
-
Interfaccia tra le applicazioni. Fornisce un'interfaccia unica che permette ai vari software installati sulla macchina di comunicare tra di loro, di coordinare azioni condivise e scambiare dati tra di loro
-
Interfaccia utente. Fornisce all'utente un'interfaccia grafica che permetta di accedere a tutte le funzionalità del sistema informatico e di sfruttare a pieno le potenzialità della macchina senza la necessità di conoscere linguaggi di programmazione