sei sul sito di Giovanni Fraterno
Si chiama hardware di un elaboratore l’insieme dei
dispositivi meccanici, magnetici, elettrici ed elettronici che lo compongono.
Si chiama software di un elaboratore l’insieme dei comandi e dei programmi
usati per determinare le operazioni che la macchina, o un generico sistema
programmabile, deve svolgere.
In parole povere il software rappresenta quell’insieme di programmi che
sono necessari all’hardware per compiere le azioni.
Il software viene suddiviso:
in software di base e in software applicativo.
Il software
di base è quello che controlla e gestisce direttamente
l’hardware del calcolatore.
L’obiettivo principale del
software di base è facilitare all’utente
l’uso delle diverse parti di un elaboratore.
Appartengono alla categoria
di software di base: il firmware e il sistema operativo.
Con il termine, invece, di software applicativo ci riferiamo a quella miriade
infinita di prodotti che servono all’utente per svolgere e facilitare operazioni specifiche.
I prodotti di videoscrittura, per esempio, sono considerati
software applicativi.
Altri esempi sono i prodotti
per la gestione degli archivi,
quelli per la gestione contabile e quelli per
la gestione grafica.
Nella figura successiva è
riportato uno schema a livelli concentrici
che indica la dipendenza funzionale tra le
parti del calcolatore.
Il
firmware di un elaboratore è l’insieme di
quei programmi già forniti dal produttore al
momento dell’acquisto.
E’
residente in una memoria ROM interna, e parte
al momento dell’accensione della macchina,
fungendo così da collegamento tra l’hardware
e il software vero e proprio.
All’atto
dell’accensione, fatto un controllo su alcuni
circuiti, la macchina va a leggere l’area di memoria
nella quale è depositato il sistema operativo
per predisporsi al normale colloquio con
l’utente.
Questa
operazione di caricamento automatico del sistema
operativo prende il nome di bootstrap.
Il
sistema operativo è il gestore di tutte le risorse
del calcolatore, catalogabili come segue:
-
la memoria centrale
-
il microprocessore
-
i dispositivi di input
e di output
-
i file disposti sulla
memoria di massa.
Il
compito principale del sistema operativo è quello di gestire
l’utilizzo degli elementi di cui sopra
da parte degli utenti e dei loro programmi applicativi.
Un
programma applicativo, prima di poter essere
effettivamente eseguito dalla macchina, deve essere più volte analizzato, e solo dopo si
potrà effettuare la decodifica vera e propria.
Successivamente
è illustrato uno schema che riassume i
livelli che un programma deve attraversare prima di poter effettivamente assumere
una forma comprensibile per l’hardware dell’elaboratore.
Livello 5
Livello del linguaggio orientato al problema
Traduzione
(compilatore o interprete)
Livello 4
Livello del linguaggio assemblatore
Traduzione
(assemblatore)
Livello 3
Livello del sistema operativo
Interpretazione parziale
(sistema operativo)
Livello 2
Livello della macchina convenzionale
Interpretazione
(microprogramma)
Livello 1
Livello della microprogrammazione
Nello schema sopra
riportato sono indicati i livelli
numerati in modo decrescente e la denominazione, dal più esterno, vicino all’utente, fino all’hardware, sotto il livello 1.
Quindi è
indicata l’operazione che viene svolta nel passaggio
da un livello a quello successivo.
Tra parentesi, infine, è
riportato il nome del modulo software che si
occupa di eseguire la suddetta operazione.
Via via che si scende di
livello la struttura diventa sempre più quella caratteristica della macchina.
L’insieme delle istruzioni
appena scritte dal programmatore prende il
nome di programma sorgente, e non è subito interpretabile dalla macchina, ecco
quindi che il programma deve essere trattato in una forma più elementare.
I livelli più bassi servono principalmente per supportare i
moduli che operano ai livelli più alti.
Si badi che è solo al livello 1 che si agisce direttamente
sui circuiti dell’hardware, per cui è solo
questo livello che si può dunque chiamare livello
fisico dell’elaboratore.
Tutti i livelli superiori
perciò non fanno altro che definire una macchina
virtuale, una macchina cioè dotata di un linguaggio,
di una serie di regole e di una sua struttura, una macchina tuttavia soltanto simulata.