Si alguna vez te has adentrado en las ROMs personalizadas o en la instalación manual de una actualización del SO de Android, es posible que te hayas encontrado con el término ‘firmware’. Al flashear una actualización del sistema operativo, el software tiene que ser construido para el firmware o hardware específico del dispositivo. Esta diferencia es parte de la razón por la que puede llevar tanto tiempo desplegar la última versión de Android a todos los dispositivos.
No está inmediatamente claro, pero hay una distinción crítica entre el firmware y el software, el último de los cuales es probablemente un término mucho más familiar. En pocas palabras, el firmware se sitúa muy cerca del hardware, mientras que el software se sitúa encima del firmware. Hay algo más que eso, y algunas áreas en las que hay espacio para un pequeño cruce. Así que vamos a profundizar un poco más en la relación entre firmware y software.
Firmware y software
Tanto el firmware como el software son fragmentos de código que se ejecutan en el hardware de tu teléfono y otros aparatos. La distinción clave es para qué están diseñados, dónde se guardan y lo fácil que es actualizarlos y cambiarlos.
El software se considera generalmente un programa o trozo de código diseñado para la interacción con el usuario. Es el «nivel superior» del código que permite a los usuarios lo que necesitan. Esto podría ser una aplicación en su teléfono inteligente, un widget de la pantalla de inicio, y justo debajo de eso incluso el propio sistema operativo Android. El software suele estar escrito en un lenguaje de alto nivel, como Java, con muchas librerías y funciones prefabricadas para facilitar el desarrollo.
Software: aplicaciones interactivas que se ejecutan en el hardware de un dispositivo
El software se ejecuta en la CPU y otros procesadores principales, haciendo uso de la memoria RAM y el almacenamiento flash para guardar y cargar datos. Otro punto clave es que el software puede cambiarse sin tener que ajustar ningún hardware, lo que facilita su actualización. Con algunas excepciones, el software está diseñado para ser lo más agnóstico posible con respecto al hardware.
El firmware, en comparación, no está diseñado para que el usuario interactúe directamente con él. En su lugar, es el «nivel más bajo» oculto de código que se ejecuta en su dispositivo. Aunque estrictamente hablando puede haber diferentes niveles de firmware, al igual que podemos considerar diferentes niveles de software. En lugar de ejecutarse en la CPU principal, el firmware suele ejecutarse en procesadores más pequeños dedicados a piezas de hardware. Por ejemplo, podría tratarse de un controlador de memoria para una unidad de memoria flash. El firmware suele estar escrito en un lenguaje de bajo nivel, como C, con poco apoyo de bibliotecas, ya que el código está muy adaptado a los dispositivos individuales.
Firmware – código de bajo nivel que controla y configura el hardware específico de un dispositivo
El firmware es el código que configura cómo debe funcionar el hardware y proporciona sus funciones básicas. Es la espina dorsal esencial que asegura que el hardware funcione y pueda ser accedido por el software de nivel superior. El hardware que ejecuta su propio firmware incluye chips de memoria flash, CPUs y pantallas. Actualizar el firmware puede ser un poco más complicado, ya que el software que se ejecuta encima depende de él. Por eso no es necesario reiniciar el teléfono después de actualizar una aplicación, pero sí cuando se instala una actualización importante de la versión de Android.
Mantener el smartphone en funcionamiento
La batalla entre el firmware y el software se libra dentro de tu smartphone. De hecho, ambos son esenciales para que todo funcione a la perfección. Nunca vas a interactuar con el firmware directamente, pero realiza una serie de funciones importantes.
El firmware dentro de tu smartphone incluye el código que se ejecuta dentro del módulo de la cámara. Éste se encarga de la recogida de imágenes y del procesamiento inicial, antes de entregar los datos al ISP y a otros componentes de procesamiento. Del mismo modo, la pantalla también tendrá su propio microprocesador, completo con firmware, para manejar los datos de color, el brillo, la gamma y otros ajustes. Incluso la CPU tiene su propio firmware en forma de núcleo de bajo nivel para optimizar la programación de tareas, la velocidad del reloj y el consumo de energía.
El software del smartphone incluye el sistema operativo Android y las aplicaciones que se ejecutan sobre él. Por lo tanto, todas las aplicaciones son software, incluyendo Facebook, Chrome, Gmail y la Play Store.
Como puede ver, interactuará con regularidad, actualizará, añadirá y eliminará software de su dispositivo. El firmware permanece firmemente en segundo plano.