Tecnicamente, il firmware è solo un sottoinsieme del software, poiché quest’ultimo termine include ogni singolo pezzo di codice utile. In pratica, tuttavia, il termine software si riferisce a una classe di programmi molto diversa.
In generale, firmware è il nome del codice di basso livello che si interfaccia direttamente con l’hardware. Tutti i programmi che funzionano su questo livello comprendono il software. Confuso? Ecco uno sguardo più approfondito.
Sommario
I molti tipi di software
Il problema con il termine software è che è troppo ampio. Qualsiasi insieme di istruzioni in grado di controllare un computer – o qualsiasi altro dispositivo elettronico, se è per questo – può essere considerato un software.
Questo non era un problema agli albori dell’informatica, quando tutti i programmi venivano scritti in assembly e interfacciati direttamente con l’hardware per svolgere qualsiasi attività. Ma al giorno d’oggi un dispositivo informatico funziona su livelli su livelli di codice, con l’utente esposto solo ai programmi in alto.
Denominata software applicativo, questa categoria di programmi intuitivi include tutte le app e le utilità che utilizzi sul tuo PC, come il browser web o l’editor di parole. Al di sotto si trova il sistema operativo, che si occupa di dettagli di basso livello come il rendering di elementi visivi sullo schermo e la gestione dell’input.
La maggior parte delle persone pensa che finisca qui, ma il sistema operativo raramente comunica direttamente con l’hardware. C’è un altro livello sotto il sistema operativo che offre al software di sistema un modo semplice per accedere alle funzioni hardware. E questo è il firmware.
Firmware: il livello base del software
Nella maggior parte dei linguaggi di programmazione di alto livello, fare cose come visualizzare un’immagine sullo schermo è un semplice comando. Eppure, da qualche parte nel computer, c’è un pezzo di codice responsabile della traduzione di quel comando in istruzioni del processore effettive.
Il firmware è il collegamento tra hardware e software, consentendo agli sviluppatori di utilizzare le capacità del dispositivo attraverso un’interfaccia di programmazione semplificata anziché istruzioni specifiche della CPU. Per un computer, questo firmware è il noto BIOS (Basic Input Output System), accessibile anche senza un sistema operativo.
Nei dispositivi elettronici più semplici come un telecomando TV o un router, il firmware funge anche da sistema operativo. Tali macchine non sono pensate per l’installazione di software applicativo di terze parti come un PC e si basano sul firmware per eseguire tutte le attività necessarie.
Come viene installato il firmware su un dispositivo?
Nessun dispositivo elettronico è utilizzabile senza firmware. Questo è il motivo per cui tutti i componenti elettronici sono dotati di firmware preinstallato dal produttore.
Anche sui computer, questo programma è memorizzato su un chip flash specializzato sulla scheda madre, non sul disco rigido. Ciò consente di avviare un computer e configurare le impostazioni hardware senza un sistema operativo installato.
L’aggiornamento del firmware non è né facile né necessario sulla maggior parte dei dispositivi. Essendo il codice di controllo fondamentale per la macchina, incasinarlo può rendere l’hardware inutilizzabile. I computer sono un’eccezione, poiché consentono all’utente di installare gli aggiornamenti del BIOS eseguendo il flashing del chip.
Firmware vs software: in breve
In che modo il firmware è diverso dal software?
Hardware e software sono comunemente chiamati i due componenti di un dispositivo elettronico, ma questo non è il quadro completo. I sistemi operativi e le applicazioni non possono comunicare direttamente con l’hardware, richiedendo uno strato di codice specializzato per colmare il divario.
E quell’elemento di collegamento è il firmware. Consiste in istruzioni specifiche dell’architettura che controllano direttamente l’hardware e, in una semplice elettronica, fungono anche da sistema operativo di base. In altri dispositivi il firmware fornisce invece un’interfaccia astratta al software, consentendo al sistema operativo di utilizzare l’hardware senza preoccuparsi dell’architettura sottostante.
Per la sua natura essenziale, il firmware viene precaricato su un chip flash sulla scheda madre stessa, indipendentemente da qualsiasi software scritto sul disco. Può essere aggiornato (es. “flash”) solo con processi specializzati, a differenza della semplice installazione di pacchetti software.
Tutti i dispositivi elettronici e i componenti periferici sono dotati di un proprio firmware. Fotocamere digitali, smartphone, SSD e persino unità USB: se dispone di hardware che deve essere controllato, è presente il firmware integrato per gestirlo.