Il firmware, noto anche come "software per l'hardware", è un codice di programma incorporato nei dispositivi hardware che consente loro e alle loro funzionalità di operare correttamente. Il firmware viene aggiornato regolarmente per applicare correzioni ai problemi comuni, aggiungere o espandere caratteristiche o aumentare la compatibilità del dispositivo con le nuove tecnologie.
Molti dispositivi si basano sul firmware per funzionare, tra cui TV, fotocamere, telefoni cellulari, stampanti, unità disco e molto altro. Il firmware si trova nella memoria non volatile di un dispositivo, dove il contenuto può essere memorizzato quando il dispositivo è spento. Il firmware può essere scritto su diversi tipi di memoria, tra cui memoria ad accesso casuale (RAM), memoria di sola lettura (ROM), memoria di sola lettura programmabile cancellabile (EPROM) e memoria flash.
Il firmware aiuta i dispositivi a svolgere le funzioni previste in diversi modi importanti, tra cui fornire le istruzioni su come il dispositivo deve avviarsi, su come deve interagire con altri dispositivi, come router Internet o telecomandi, e su come deve eseguire attività critiche di input/output (I/O). Molti produttori di dispositivi hardware, come Apple, LG Electronics, Microsoft e altri, incorporano il firmware nei loro prodotti in modo che funzionino in modo simile al sistema operativo (OS) di un computer.
Si pensa che il termine "firmware" sia stato usato per la prima volta dallo scienziato americano Ascher Opler nel 1967, per descrivere un programma che a suo dire era "a metà tra l'hardware e il software 1". Oggi il firmware è una parte essenziale di molti dispositivi, come il iPhone, Mac o il telecomando della TV, fino ai complessi sensori Internet of Things (IoT) sui satelliti e sulle auto a guida autonoma. Sebbene il firmware e il software siano simili, ci sono differenze importanti che vale la pena considerare quando si valuta l'idoneità per un'esigenza aziendale.
Il modo più semplice per capire la differenza tra firmware e software è nei loro scopi unici: mentre il firmware è stato progettato per aiutare i dispositivi ad avviarsi e comunicare tra loro, il software viene utilizzato principalmente per l'interazione. Il firmware viene utilizzato per controllare i dispositivi di largo consumo, come telefoni e TV. I produttori aggiornano frequentemente il firmware per aggiungere nuove caratteristiche, migliorare la sicurezza e proteggere dalle vulnerabilità. Come sa chiunque utilizzi un telefono Android o iOS, o anche una Smart TV o una console di gioco, gli aggiornamenti della versione del firmware devono essere scaricati e installati regolarmente, altrimenti influiscono sulle prestazioni del dispositivo.
Il software è invece installato su un dispositivo per migliorare l'interazione dell'utente con attività come la navigazione in Internet, il controllo delle e-mail, l'elaborazione di testi, la visione di video, lo streaming di musica e molto altro. Il software non è così strettamente connesso all'hardware come il firmware e necessita del firmware per comunicare con l'hardware per cui fornisce le funzioni.
Il firmware è essenziale per il corretto funzionamento dei dispositivi che diamo per scontati nel nostro lavoro e nella vita personale, come personal computer (PC), smartphone, console di gioco e molto altro. La maggior parte degli utenti di questi dispositivi conosce il firmware per i frequenti "aggiornamenti del firmware" necessari per mantenere i propri dispositivi funzionanti.
Gli aggiornamenti del firmware, che consistono in codice informatico, vengono spesso rilasciati per correggere minacce alla sicurezza che possono influire sulle correzioni di un dispositivo, come bug o attacchi informatici. Tuttavia, possono anche essere emessi per aggiungere una nuova caratteristica a un dispositivo, ad esempio un modo per interagire con un nuovo tipo di media. Esempi di aggiornamenti del firmware includono l'aggiunta di caratteristiche di sicurezza a un router Internet, il miglioramento della funzione di navigazione di un'app e un aggiornamento del sistema operativo (OS) che consente a una scheda di sistema del computer di supportare un nuovo tipo di processore.
Poiché attualmente la maggior parte dei dispositivi è connessa a Internet, il download degli aggiornamenti da remoto o "over the air" è diventato un modo per i produttori di rilasciare gli aggiornamenti del firmware. La maggior parte dei programmi consente di aggiornare un dispositivo nel firmware e l'utente riceve semplicemente una notifica. Altri dispositivi richiedono comunque agli utenti di visitare il sito web di un produttore e scaricare il codice necessario. La frequenza degli aggiornamenti del firmware varia a seconda del tipo di dispositivo per cui è stato progettato. Gli smartphone, ad esempio, combinano in genere aggiornamenti firmware e software per mantenere il corretto funzionamento del telefono e del sistema operativo sottostanti.
Poiché il firmware è così ampiamente utilizzato ed è essenziale per le funzioni di molti dispositivi importanti, è diventato un obiettivo significativo per gli hacker. I dispositivi hardware che si basano sul firmware presentano numerose vulnerabilità perché utilizzano spesso lo stesso codice. Ad esempio i laptop, che spesso contengono informazioni di lavoro sensibili, si affidano al firmware per alimentare le batterie, le schede audio e video, le webcam e altro, il che li rende obiettivi interessanti.
L'hacking del firmware spesso comporta la distribuzione di malware, ovvero codice scritto intenzionalmente per danneggiare il sistema o l'utente di un computer collegandosi al firmware. I tipi più diffusi di malware includono il ransomware, che tiene in ostaggio i dati di un utente, i Trojan horse che eludono il rilevamento fingendosi un programma legittimo, e lo spyware, che ruba informazioni sensibili su un utente. Gli hacker raramente devono accedere fisicamente a una macchina per utilizzarla, poiché possono accedervi da remoto utilizzando connessioni Bluetooth o Wi-Fi, sempre più popolari con l'aumentare del numero di dispositivi connessi a Internet.
Le scarse caratteristiche di sicurezza del firmware possono comportare il furto o la compromissione dei dati sensibili degli utenti e l'ottenimento del controllo remoto del computer di un utente. Ad esempio, nel giugno del 2024, Google ha avvertito che un problema con il suo firmware Pixel lo rendeva vulnerabile agli aggressori e che non esisteva una soluzione nota per il problema2.
Le aziende, sempre più consapevoli del rischio di vulnerabilità del firmware, stanno adottando maggiori misure per prevenire l'utilizzo dei loro sistemi grazie ai numerosi benefici offerti dal firmware.
Prestazioni migliorate senza nuovo hardware: gli aggiornamenti del firmware consentono ai dispositivi di acquisire nuove funzionalità senza modificare il dispositivo o la sua architettura. Molti aggiornamenti del firmware migliorano i tempi di esecuzione e di istruzione del codice sottostante di un dispositivo e contribuiscono a ottimizzarne le prestazioni.
Esperienza utente migliorata: gli aggiornamenti del firmware offrono agli utenti nuove caratteristiche, programmi per computer e funzioni per le attività su cui fanno affidamento, come controllare i saldi dei conti, registrare un programma sulla loro Smart TV o sapere quali generi alimentari acquistare, collegando il loro frigorifero smart a un'app tramite funzionalità IoT.
Risoluzione più rapida dei problemi: gli aggiornamenti del firmware consentono di risolvere rapidamente molti problemi comuni con un dispositivo, tra cui tempi di avvio ed elaborazione, più funzioni multitasking e una migliore compatibilità con i dispositivi esterni.
Funzioni dei componenti: gli aggiornamenti del firmware aiutano a garantire che tutti i componenti periferici di un dispositivo, come gli altoparlanti e i microfoni di uno smartphone, funzionino come sono stati progettati, consentendo al dispositivo di funzionare ai massimi livelli.
Costi di riparazione ridotti: mantenere aggiornato il firmware del dispositivo aiuta a ridurre la probabilità che i dispositivi vengano infettati da bug e richiedano correzioni del bug o costose riparazioni delle attrezzature in futuro.
Il firmware viene installato su un dispositivo durante la produzione di quest'ultimo. In primo luogo, facilita le comunicazioni tra il sistema operativo (OS) e l'hardware del dispositivo. Il firmware contiene molte istruzioni essenziali per il funzionamento del dispositivo nel modo in cui è stato progettato. L'unità centrale di elaborazione (CPU) del computer, il luogo in cui l'input viene trasformato in output, recupera il firmware dalla memoria di un computer e lo esegue.
Il firmware viene utilizzato su molti dispositivi su cui facciamo affidamento ogni giorno. Forse il caso d'uso più comune è il risveglio di un dispositivo dopo un lungo periodo di inattività. Dopo che ti sei addormentato, ad esempio, e ti svegli e guardi il telefono per controllare i messaggi, il firmware sta aiutando a garantire che il dispositivo si accenda correttamente. Per conservare le informazioni mentre non vengono utilizzate, un dispositivo memorizza il firmware nella sua memoria "non volatile". Con l'aumentare della complessità delle attività richieste dal firmware, questo ha assunto alcune delle caratteristiche dell'hardware del computer, ovvero l'uso della memoria flash e di un sistema di input/output di base, o BIOS.
Poiché molti dispositivi devono conservare le informazioni quando sono spenti, il firmware di solito memorizza i dati nella memoria "non volatile" o "di sola lettura" (ROM) di un sistema, nota anche come memoria flash. Questo tipo di memoria viene utilizzato in un'ampia gamma di dispositivi portatili come unità flash, smartphone, fotocamere digitali, laptop e altro ed è essenziale per le funzioni del firmware.
Recentemente, la memoria flash ha acquisito alcune delle stesse funzionalità associate ai computer. Ad esempio, quando un computer viene avviato, passa attraverso una sequenza nota come sistema di input/output di base, o BIOS. Il primo firmware che ha eseguito una sequenza BIOS utilizzava un chip ROM, mentre ora i sistemi sono passati a utilizzare la memoria flash per il BIOS, in modo che i dati possano essere riscritti senza che il chip debba essere rimosso dalla scheda di sistema e reinserito una volta riprogrammato.
Oltre ai cambiamenti nel modo in cui il firmware utilizza e conserva la memoria, ci sono stati progressi anche nei tipi di firmware disponibili per gli utenti. Oggi, il firmware può essere classificato in tre gruppi di base, definiti dalla sua architettura:
Il firmware di basso livello è intrinseco all'hardware di un dispositivo e viene memorizzato su chip non volatili di sola lettura, come la ROM, che non possono essere aggiornati. I dispositivi che si affidano al firmware di basso livello utilizzano una memoria che può essere scritta una sola volta e non può essere riprogrammata.
Il firmware di alto livello è un firmware che non può essere aggiornato a causa della complessità del suo hardware. In un computer, il firmware di alto livello è contenuto nei chip di memoria flash ed è responsabile di compiti più avanzati rispetto al firmware di basso livello. Il firmware di alto livello contiene istruzioni importanti sul funzionamento di un dispositivo e sull'interazione dei vari componenti.
Il firmware del sottosistema è contenuto in quello che è noto come "sistema integrato", una combinazione specifica di hardware e software progettata per uno scopo o un'attività. Il firmware del sottosistema è simile al firmware di alto livello per complessità e adattabilità. Come il firmware di alto livello, anche il firmware del sottosistema può essere facilmente aggiornato.
Il firmware è utilizzato in un'ampia gamma di dispositivi critici per la trasformazione digitale e quindi ha molte applicazioni utili per l'azienda moderna. Alcuni degli usi aziendali più comuni del firmware includono:
PC
I personal computer (PC) si affidano al firmware per conservare i dati critici mentre sono spenti, nonché alle specifiche BIOS e Unified Extensible Firmware Interfaces (UEFI) per l'interfaccia software tra un sistema operativo e un firmware. In genere, queste caratteristiche arrivano incorporate in un chip di memoria sulla scheda di sistema di un computer. Inoltre, anche i componenti più diffusi del PC, come le schede grafiche e video, si basano sul firmware per funzionare.
Dispositivi di data storage
Le unità USB, le unità disco rigido esterne, le unità flash e altri dispositivi portatili di data storage necessitano del firmware per funzionare. Il firmware è integrato nei chip di memoria flash su cui si basano molti moderni dispositivi di data storage e può essere aggiornato facilmente, a differenza del firmware contenuto nella ROM o nella EPROM.
Smartphone
Il funzionamento degli smartphone dipende in larga misura dal firmware. Il firmware non solo aiuta a garantire che uno smartphone si avvii dopo che non lo usi per un po', ma aiuta anche a garantire che i componenti critici possano interagire tra loro nel modo in cui sono stati progettati. Infine, in uno smartphone, le correzioni di bug, le caratteristiche di sicurezza e le nuove funzionalità dipendono tutte dai regolari aggiornamenti del firmware scaricati da Internet per poter funzionare correttamente.
Auto
Molte auto progettate negli ultimi dieci anni contengono computer che si affidano al firmware per eseguire attività critiche. Diversi tipi di firmware vengono utilizzati in vari sistemi automobilistici, tra cui le unità di controllo del motore (ECU), che ottimizzano le prestazioni del motore e l'efficienza del carburante, e i sistemi di informazione e intrattenimento sempre più complessi (infotainment) che assistono con la navigazione e le telecamere collegate a molte auto.
dispositivi Internet of Things (IoT)
L'Internet of Things (IoT) si riferisce a una rete di dispositivi fisici, veicoli, apparecchi e altri oggetti fisici incorporati con sensori, software e connettività di rete che consentono di raccogliere e condividere dati. Il firmware è essenziale per molti casi d'uso della tecnologia IoT, come elettrodomestici intelligenti, auto senza conducente, città e fabbriche più intelligenti e molti altri. Su un dispositivo IoT, come un sensore che trasmette dati su Internet, il firmware contiene istruzioni critiche memorizzate permanentemente nell'hardware, che consentono al dispositivo di accendersi e spegnersi, raccogliere, analizzare e trasmettere dati e molto altro.
1. Firmware (link esterno a ibm.com), Wikipedia
2. Google Warns of Pixel Firmware Security Flaw Exploited as Zero-Day (link resides outside ibm.com), The Hacker News, 13 giugno 2024
IBM Cloud Infrastructure Center è una piattaforma software compatibile con OpenStack per gestire l'infrastruttura di cloud privati su IBM zSystems e IBM LinuxONE.
Scopri i server, lo storage e il software progettati per l'hybrid cloud e la strategia AI della tua azienda.
Trova la soluzione di infrastruttura cloud adatta alle esigenze della tua azienda e scala le risorse on-demand.