Se ti sei mai dilettato in ROM personalizzate o nell’installazione manuale di un aggiornamento del sistema operativo Android, potresti aver incontrato il termine ‘firmware’. Quando si esegue il flash di un aggiornamento del sistema operativo, il software deve essere costruito per il firmware o l’hardware specifico del dispositivo. Questa differenza è parte del motivo per cui ci può volere così tanto tempo per distribuire l’ultima versione di Android a tutti i dispositivi.
Non è immediatamente chiaro, ma c’è una distinzione critica tra firmware e software, il secondo dei quali è probabilmente un termine molto più familiare. In poche parole, il firmware si trova molto vicino all’hardware, mentre il software si trova sopra il firmware. C’è un po’ più di questo, e alcune aree in cui c’è spazio per un po’ di cross-over. Quindi esploriamo firmware e software un po’ più a fondo.
Firmware e software
Sia il firmware che il software sono frammenti di codice in esecuzione sull’hardware all’interno del tuo telefono e di altri gadget. La distinzione chiave è cosa sono progettati per fare, dove sono salvati e quanto sono facili da aggiornare e cambiare.
Il software è generalmente considerato un programma o un pezzo di codice progettato per l’interazione dell’utente. È il “livello superiore” del codice che permette agli utenti di fare ciò di cui hanno bisogno. Questo potrebbe essere un’applicazione sul vostro smartphone, un widget della schermata iniziale, e appena sotto anche il sistema operativo Android stesso. Il software è solitamente scritto in un linguaggio di alto livello, come Java, con molte librerie e funzioni pre-fatte per facilitare lo sviluppo.
Software – applicazioni interattive che vengono eseguite sull’hardware di un dispositivo
Il software gira sulla CPU e su altri processori principali, facendo uso della RAM e della memoria flash per salvare e caricare dati. Un altro punto chiave è che il software può essere cambiato senza dover regolare alcun hardware, rendendolo semplice da aggiornare. Con alcune eccezioni, il software è progettato per essere il più possibile agnostico all’hardware.
Firmware, in confronto, non è progettato per essere direttamente interagito da un utente. Invece, è il “livello più basso” nascosto del codice che gira sul vostro dispositivo. Anche se in senso stretto ci possono essere diversi livelli di firmware, proprio come possiamo considerare diversi livelli di software. Piuttosto che essere eseguito sulla CPU principale, il firmware spesso viene eseguito su processori più piccoli dedicati a pezzi di hardware. Per esempio, questo potrebbe includere un controller di memoria per un’unità di memoria flash. Il firmware è tipicamente scritto in un linguaggio di basso livello, come il C, con poco supporto di librerie poiché il codice è altamente personalizzato per i singoli dispositivi.
Firmware – codice di basso livello che controlla e configura l’hardware specifico di un dispositivo
Firmware è il codice che configura come l’hardware dovrebbe funzionare e fornisce le sue funzioni di base. È la spina dorsale essenziale che assicura il funzionamento dell’hardware e può essere accessibile da un software di livello superiore. L’hardware che esegue il proprio firmware include chip di memoria flash, CPU e display. Può essere un po’ più complicato aggiornare il firmware, dato che il software che gira sopra dipende da esso. Questo è il motivo per cui non è necessario riavviare il telefono dopo l’aggiornamento di un’applicazione, ma sarà necessario quando si installa un importante aggiornamento della versione di Android.
Mantenere il tuo smartphone in funzione
La battaglia tra firmware e software si svolge all’interno del tuo smartphone. Infatti, i due sono essenziali per mantenere tutto in funzione senza problemi. Non interagirete mai direttamente con il firmware, ma esso svolge una serie di funzioni importanti.
Il firmware all’interno del vostro smartphone include il codice che gira all’interno del modulo della fotocamera. Questo gestisce la raccolta delle immagini e la prima elaborazione, prima di passare i dati all’ISP e ad altri componenti di elaborazione. Allo stesso modo, anche il display avrà il suo piccolo microprocessore, completo di firmware, per gestire i dati del colore, la luminosità, la gamma e altre impostazioni. Anche la CPU ha il proprio firmware sotto forma di un kernel di basso livello per ottimizzare la programmazione delle attività, la velocità dell’orologio e il consumo di energia.
Il software degli smartphone comprende il sistema operativo Android e poi le applicazioni in esecuzione su di esso. Quindi tutte le vostre applicazioni sono software, compresi Facebook, Chrome, Gmail e il Play Store.
Come potete vedere, interagirete regolarmente con, aggiornare, aggiungere ed eliminare software dal vostro dispositivo. Il firmware rimane saldamente in background.