Un computer è una macchina programmabile, tuttavia non è direttamente utilizzabile da parte degli utente poiché richiederebbe la conoscenza sull'organizzazione fisica della macchina considerata e del suo linguaggio macchina. Il linguaggio di una macchina è diverso tra macchine diverse. E tale linguaggio è estremamente esteso e complesso. Un programma risiede in memoria ed è fatto da una sequenza di bit, l'unico modo per comprenderlo è creare una rappresentazione simbolica delle istruzioni macchina.
Il linguaggio macchina è generalmente identificato con il nome di assembler:
Un programma effettua delle operazioni, ma per farlo deve interagire con i suoi dispositivi di input/output. Il sistema operativo si interpone tra un programma e l'interazione con i dispositivi di una macchina.
L'obiettivo è allontanarsi quanto basta dalla macchina, realizzando una macchina virtuale con cui si possa interagire sfruttando un linguaggio più adatto per l'essere umano. Infatti quello che succede oggi è che l'utente interagisce con tale macchina virtuale, di una più facile comprensione, i comandi inviati dall'utente sono poi tradotti in linguaggio macchina. La macchina virtuale cui ci riferiamo è realizzata mediante software.
Quello che abbiamo è una struttura a strati o a cipolla:
La maggior parte dei moderni computer consiste di 2 o più livelli (nel nostro caso 5):
I livelli che affronteremo in questa trattazione sono il livello 0, 1 e un po' del 3. Il livello 2 è parte del corso di sistemi operativi.
Argomenti del corso:
La struttura di una macchina è basata su un modello sviluppato da un matematico/fisico John Von Neumann che prende proprio il suo nome: Macchina di Von Neumann