La mejor respuesta
Una ROM / firmware estándar es un software oficial diseñado por el fabricante para un dispositivo en particular.
Una Truly Stock ROM es un tipo que no sufre ningún cambio cosmético / funcional en el código por parte del fabricante del hardware.
Por ejemplo: Android que se ejecuta en Google pixel, teléfonos Nexus.
Una Stock ROM de marca o fabricante es otro tipo en el que un firmware estándar experimenta mejoras de interfaz, modificaciones e instalaciones de aplicaciones específicas del fabricante.
Por ejemplo: Android en ejecución en Samsung (TouchWiz UI + Samsung Apps), Xiaomi (MIUI + apps), HTC (HTC Sense + apps), Asus (ZenUI + apps)…
Por lo general, el firmware de stock se elige más sobre el firmware personalizado porque se someten a múltiples pruebas fases que garantizan una mejor seguridad, estabilidad y un paquete sin errores antes de la implementación ment o lanzamiento.
Respuesta
El firmware es esencialmente software, pero que interactúa con el hardware. Si bien el software que conocemos está escrito para ejecutarse en CPU de uso general, el firmware está escrito para ejecutarse en procesadores especiales. No hay mucha diferencia entre el firmware y el software. Mientras que en el software leerá desde la entrada estándar (teclado) y escribirá en la salida estándar (pantalla), en el firmware tal vez lea desde un pin (por ejemplo, nivel de voltaje) y escriba en un pin (por ejemplo, cambiando el nivel de voltaje). O en el software leería de un archivo de texto y escribiría en un archivo de texto, en el firmware leería de un bloque de memoria y escribiría en un bloque de memoria.
El firmware generalmente se escribe en ensamblador, C / C ++ . Una gran diferencia en el firmware es que la ejecución del programa es muy determinista. El firmware se puede escribir para ejecutar solo su programa, nada más. No hay tareas en segundo plano. Solo ejecuta su código y solo su código. Esto es muy importante para la mayoría de los firmware, por ejemplo, como en los automóviles, donde necesita saber absolutamente que su parte del código se ejecuta cuando debe ejecutarse, sin demora. En el firmware puede saber exactamente cuánto tiempo llevará ejecutar una tarea en particular, nuevamente porque solo se está ejecutando su código. Puede ver el desmontaje de su código, contar las instrucciones y saber exactamente cuánto tiempo tomaría realizar una tarea en particular. Esto es algo que no puede hacer con software que se ejecuta en una CPU de propósito general sobre un sistema operativo. Por supuesto, existen sistemas operativos para firmware, RTOS (sistema operativo en tiempo real), que de alguna manera se comportan un poco como un sistema operativo de PC normal, pero aún con una sobrecarga muy baja. Pero cuando la precisión y el tiempo son importantes, se escribe firmware básico.