Lavoriamo da tanti anni con i calcolatori, ma conosciamo davvero come funzionano? Non dico in profondità, ovviamente (da questo punto di vista, probabilmente, nessuno di noi ne apprezza davvero la complessità), ma per certi versi neppure alcuni aspetti fisici basilari … per non parlare dei vari livelli di software che costituiscono i corrispondenti livelli di astrazione, sui quali si basano, tra l’altro, i possibili concetti di macchine virtuali, per arrivare fino al “cloud”.

Inizieremo il seminario guardando dentro un calcolatore del tipo di quelli che utilizziamo ogni giorno e cercando di riconoscerne le parti e come sono tra loro connesse. Vedremo come sia possibile immaginare la struttura centrale di una “macchina calcolatrice” distinguendo tra CPU, memoria ed infrastruttura di comunicazione, per poi allargare lo sguardo a quello che è necessario o utile che le venga costruito attorno.

Vedremo poi come, a dispetto dell’incredibile complessità di un calcolatore, tutto possa essere visto come composizione di semplicissime astrazioni: le porte logiche.

Infine, vedremo come l’architettura che abbiamo visto, complicatissima da utilizzare in formato nativo, sia in grado di evolvere “accogliendo” opportuni strati di software, dal firmware di partenza al “boot loader”, al sistema operativo (magari passando per un hypervisor, detto anche virtual machine monitor), fino agli strati applicativi.