Migliore risposta
Una ROM / firmware di serie è un software ufficiale progettato dal produttore per un particolare dispositivo.
Una Truly Stock ROM è un tipo che non subisce modifiche estetiche / funzionali nel codice da parte del produttore dellhardware.
Ad esempio: Android in esecuzione su Google pixel, telefoni Nexus.
A Stock ROM con marchio del produttore o delloperatore è un altro tipo a cui un firmware stock viene sottoposto a miglioramenti dellinterfaccia, modifiche e installazioni di applicazioni specifiche del produttore.
Ad esempio: Android in esecuzione su Samsung (TouchWiz UI + Samsung Apps), Xiaomi (MIUI + app), HTC (HTC Sense + app), Asus (ZenUI + app) …
Di solito, il firmware Stock viene scelto di più rispetto al firmware personalizzato perché vengono sottoposti a test multipli fasi che garantiscono una migliore sicurezza, stabilità e un pacchetto privo di bug prima della distribuzione ment o release.
Risposta
Il firmware è essenzialmente software, ma si interfaccia con lhardware. Mentre il software che conosciamo è scritto per funzionare su CPU generiche, il firmware è scritto per funzionare su processori speciali. Non cè molto di diverso nel firmware che nel software. Mentre nel software leggerai dallingresso std (tastiera) e scriverai sulluscita std (schermo), nel firmware potresti leggere da un pin (es. Livello di tensione) e scrivere su un pin (es. Cambiare livello di tensione). Oppure nel software leggerai da un file di testo e scriveresti in un file di testo, nel firmware leggerai da un blocco di memoria e scriveresti su un blocco di memoria.
Il firmware è solitamente scritto in assembly, C / C ++ . Una grande differenza nel firmware è che lesecuzione del programma è altamente deterministica. Il firmware può essere scritto per eseguire solo il tuo programma, nientaltro. Non ci sono attività in background. Esegue solo il tuo codice e solo il tuo codice. Questo è molto importante per la maggior parte dei firmware, ad esempio come nelle automobili, dove devi sapere assolutamente che il tuo pezzo di codice viene eseguito quando dovrebbe essere eseguito, senza indugio. Nel firmware puoi sapere esattamente quanto tempo ci vorrà per eseguire una particolare attività, ancora una volta perché è in esecuzione solo il tuo codice. Puoi guardare lo smontaggio del tuo codice, contare le istruzioni e sapere esattamente quanto tempo ci vorrebbe per svolgere una determinata attività. Questo è qualcosa che non puoi fare con il software in esecuzione su una CPU per scopi generici su un sistema operativo. Ovviamente ci sono sistemi operativi per firmware, RTOS (real-time OS), che in qualche modo si comportano un po come un normale sistema operativo per PC, ma con un overhead molto basso. Ma quando la precisione e la tempistica sono importanti, scrivi firmware barebone.