Cos'è il firmware?
Firmware è essenzialmente un software, ma che si interfaccia con l'hardware. Mentre il software che conosciamo è scritto per funzionare su CPU di uso generale, il firmware è scritto per funzionare su processori speciali. Non c'è molta differenza nel firmware che nel software. Mentre nel software si legge da input std (tastiera) e si scrive su output std (schermo), nel firmware forse si legge da un pin (es. livello di tensione) e si scrive su un pin (es. cambiare il livello di tensione). O nel software leggereste da un file di testo e scrivereste su un file di testo, nel firmware leggereste da un blocco di memoria e scrivereste su un blocco di memoria.
Il firmware è solitamente scritto in assembly, C/C++. Una grande differenza nel firmware è che l'esecuzione del programma è altamente deterministica. Il firmware può essere scritto per eseguire solo il vostro programma, nient'altro. Non ci sono compiti in background. Esegue solo il vostro codice e solo il vostro codice. Questo è molto importante per la maggior parte dei firmware, per esempio come nelle automobili, dove hai bisogno di sapere assolutamente che il tuo pezzo di codice viene eseguito quando deve essere eseguito, senza ritardi. Nel firmware potete sapere esattamente quanto tempo ci vorrà per eseguire un particolare compito, di nuovo perché solo il vostro codice è in esecuzione. Potete guardare il disassemblaggio del vostro codice, contare le istruzioni e sapere esattamente quanto tempo ci vorrà per eseguire un particolare compito. Questa è una cosa che non si può fare con il software che gira su una CPU general purpose sopra un sistema operativo. Ci sono naturalmente OS per firmware, RTOS (real-time OS), che in qualche modo si comportano un po' come un normale OS per PC, ma ancora con un overhead molto basso. Ma quando la precisione e la tempistica sono importanti, si scrive un firmware barebone.
Articoli simili
- Cos'è il firmware? So come scrivere i driver, so cosa si fa nello sviluppo dei driver, ma dove sta il bisogno di un firmware?
- Esiste un firmware/ROM di terze parti per il Roku 2? L'attuale firmware e l'app Plex hanno seri problemi con lo streaming HD senza costante buffering.
- Cos'è il firmware in relazione all'hardware e al software?
- Cos'è il firmware e il liveware?