Qual è la differenza tra firmware e software?

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.

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 nei primi tempi 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(Application Software) , questa categoria di programmi intuitivi include tutte le app e le utilità utilizzate sul PC, come il browser Web o l'editor di parole. Al di sotto si trova il sistema(System) 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(Foundation Layer) 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(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)(Basic Input Output System (BIOS)) , accessibile anche senza un sistema operativo.

In 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(Firmware Installed) su un dispositivo(Device) ?

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 è archiviato 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(BIOS upgrades to be installed) il flashing del chip.

Firmware vs software: a colpo d'occhio

Firmware Software
Essential code that directly controls the hardware components. Optional programs that utilize firmware to perform complex tasks.
Stored on a dedicated chip on the device. Installed on the hard disk memory.
Comes pre-installed by the manufacturer. Can be installed and configured by the user.
The lowest layer of code that supports operating systems and other software. Higher-level code that relies on the firmware below it for hardware abstraction.
Often the sole controlling program in simple electronic devices. Cannot function without firmware.
Hardware specific. Firmware differs for different processor architectures and cannot be interchanged. Hardware independent. OS functions the same on different processor families, though application software is usually OS specific.
Updated very rarely, if at all. Cannot be uninstalled. Easy to upgrade and remove.

In che modo il firmware è diverso dal software(Firmware Different From Software) ?

Hardware e software sono comunemente chiamati i due componenti di un dispositivo elettronico, ma questo non è il quadro completo. I sistemi(Systems) 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(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(updated (ie. “flashed”) with specialized processes) , a differenza della semplice installazione di pacchetti software.

Tutti i dispositivi elettronici e i componenti periferici sono dotati di un proprio firmware. Fotocamere digitali(Digital) , smartphone, SSD(SSDs) e persino unità USB : se dispone di hardware che deve essere controllato, è presente il firmware integrato per gestirlo.



About the author

Sono un ingegnere del software con oltre 10 anni di esperienza nel lavoro su Apple iOS e dispositivi edge. La mia esperienza nell'ingegneria hardware mi ha appassionato nell'assicurarmi che i dispositivi dei nostri clienti siano il più affidabili e fluidi possibile. Ho scritto codice negli ultimi anni e ho imparato a usare Git, Vim e Node.js.



Related posts