Differenza tra hardware, software e firmware in informatica

Differenza tra hardware, software e firmware in informatica

Come spiegato nell’articolo Il calcolatore digitale e il linguaggio macchina, i programmi scritti nel linguaggio macchina (livello di un calcolatore possono essere direttamente eseguiti dai circuiti elettronici (livello 0) del calcolatore stesso, senza l’intervento di alcun interprete o Questi circuiti elettronici, insieme a quelli che costituiscono la memoria ed i dispositivi di I/O, costituiscono il cosiddetto hardware del calcolatore.

Il cosiddetto software è invece l’insieme degli algoritmi e delle loro rappresentazioni per il calcolatore, ossia i programmi. Tali programmi  possono essere rappresentati su vari supporti (schede perforate, cassette magnetiche, film fotografici o tanti altri mezzi), ma la vera essenza del software è l’insieme di istruzioni che costituiscono i programmi e non certo i mezzi fisici su cui sono registrati.

Spiegata la differenza esistente tra Hardware e Software, parliamo adesso del Firmware. Una specie di “forma intermedia” tra hardware e software è costituita dal cosiddetto firmware: si tratta del software che viene “incorporato” nei dispositivi elettronici digitali durante la loro costruzione. Si ricorre al firmware quando  si prevede di cambiare i programmi molto raramente o addirittura mai, oppure anche quando è importante che un dato programma non venga perso, ad esempio per cadute di corrente. Nella maggior parte dei calcolatori, i microprogrammi sono firmware.

Differenza tra hardware, software e firmware in informatica - Hardware e Software

Equivalenza tra hardware e software

Il concetto di equivalenza tra hardware e software esprime semplicemente  il fatto che ogni operazione eseguita dal software può essere costruita direttamente nell’hardware, così come ogni istruzione eseguita dall’hardware può essere simulata nel software.

La decisione se mettere certe funzioni nel software o nell’hardware è basilare nel progetto dei calcolatori ed è influenzata da alcuni importanti fattori, come il costo, la velocità, l’affidabilità, la frequenza prevista negli eventuali cambiamenti ed altro ancora.

E’ evidente perciò che, con lo sviluppo delle macchine a più livelli, ogni progettista deve decidere cosa porre ad ogni livello delle proprie macchine; si tratta perciò di una ulteriore generalizzazione del problema di scegliere se implementare una funzione in hardware o in software.

A quest’ultimo proposito, si ritiene interessante elencare alcune funzioni caratteristiche dei moderni calcolatori che vengono eseguite dall’hardware oppure da microprogrammi ma che inizialmente erano programmate esplicitamente a livello  di macchina standard (livello 2).

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *