Si parla spesso di software e di firmware perché sono vocaboli che entrano in gioco molto frequentemente nel lessico informatico. Ad esempio si citano gli aggiornamenti del firmware di un dispositivo e le funzionalità software dello stesso e molte persone si chiedono se non siano addirittura sinonimi. La risposta è ovviamente no, perché anche se condividono alcune fondamenta, questi due termini vanno a descrivere e definire due aspetti molto differenti.

Facciamo dunque un po’ di chiarezza attorno alla differenza tra firwmare e software di un dispositivo, scoprendo nel dettaglio tutte le caratteristiche e cercando di rispondere in modo semplice a tutte le domande più comuni.

Che cos’è un firmware

Firmare codice c

Può capitare di entrare in contatto con la parola firmware molto spesso quando si agisce su un apparecchio digitale come uno smartphone oppure un tablet. Si può “flashare la Rom” di un sistema operativo oppure si riceve l’ultimo update ad esempio per Android. In questo caso si parla proprio di firmware.

Il firmware non è progettato per entrare in diretto contatto con l’utente. È qualcosa di nascosto e, a livello di programmazione di codice, qualcosa di livello meno elaborato rispetto a un software. Di solito, viene gestito non necessariamente dal processore principale, ma da uno secondario oppure da un controller di memoria su una penna USB. Il firmware può essere scritto ad esempio in linguaggio C con una piccola libreria a supporto visto che tutto è tagliato su misura per il dispositivo stesso.

Ok, ma in parole povere, che cosa fa il firmware? Configura e gestisce le funzioni basiche dell’hardware affinché possa compiere le funzioni essenziali e fondamentali. La sua è una base molto importante, perché permette a software scritto e programmato in codice più elaborato di poter funzionare. Nella sua natura più semplice, il firmware è essenziale così come tutto ciò che è più celato alla vista eppure si presenta ovunque. Può istruire il modulo fotografico, lo schermo (c’è un firmware apposito su un eventuale microprocessore dedicato) o ancora il singolo processore, magari destinato a un uso specifico come il risparmio della batteria.

Il processo di aggiornamento è qualcosa di molto più impegnativo rispetto a un software, per questo motivo viene richiesto un riavvio del sistema, mentre con una normale app non è necessario.

Che cos’è un software

Java

Mantenendo gli esempi del paragrafo dedicato al firmware, siamo nuovamente di fronte a una serie di codici che agiscono su parte hardware, con la differenza che questa volta si dedicano all’interazione con l’utente con un livello di elaborazione molto più alto e complesso. Un software è un’applicazione così come un gioco ma anche un widget e tutto ciò che di aggiuntivo si può poggiare su Android per offrire funzionalità extra.

A livello di linguaggio si passa da un più comune C a un più raffinato Java con tante librerie e funzioni. Il software funziona agendo sul processore principale o secondari, sfrutta memoria RAM e spazio di archiviazione per salvare dati, oltre che per installare se stessa. A differenza del firmware, inoltre, l’aggiornamento è qualcosa di semplice e piuttosto pratico, che non richiede il riavvio del dispositivo e che può richiedere solamente qualche minuto.

Perché sono entrambi importanti

Va da sé che sono entrambi molto importanti a loro modo. I software sono la manifestazione più vistosa e apprezzabile di un codice perché possono divertirci con i videogames, possono intrattenerci con la multimedialità, possono proteggerci con gli antivirus, possono immortalare i nostri ricordi con le app fotocamera e possono anche salvare il tutto con il cloud. Soprattutto, hanno una natura più volatile e possono essere installati, modificati e cancellati senza troppa fatica e sforzo.

Se i software sono più decorativi e meno indispensabili, ma ugualmente necessari, il firmware è come l’acciaio annegato nel cemento armato che non si vede ma fa da sostegno al tutto e che rimane lì, saldo, irremovibile, certo aggiornabile, ma non eliminabile.

Come detto, entrambi servono. Senza i vari firmware un dispositivo non può semplicemente funzionare perché gli mancano le fondamenta e non può auto-sostenersi. Ogni componente è preso dal mano dal proprio firmware. Allo stesso modo, però, senza i software uno smartphone è vuoto perché ha tutto ciò che serve per funzionare come hardware e firmware ma non sa come sfruttare questo potenziale.

Insomma, il firmware è legato in una stretta relazione con l’hardware e il software gli si “siede” sopra per garantirci sempre più funzionalità, sicurezza e intrattenimento.