¿Qué es el firmware?
El firmware es la programación que se escribe en la memoria no volátil de un dispositivo de hardware. La memoria no volátil es una forma de memoria estática de acceso aleatorio en la que el contenido se guarda cuando un dispositivo de hardware se apaga o pierde su fuente de alimentación externa.
El firmware se instala directamente en una pieza de hardware durante su fabricación. Se utiliza para ejecutar programas de usuario en el dispositivo y puede considerarse como el software que permite que el hardware funcione.
Los fabricantes de hardware utilizan firmware embebido para controlar las funciones de varios dispositivos y sistemas de hardware, de forma parecida a como el sistema operativo (SO) de un ordenador controla el funcionamiento de las aplicaciones de software. El firmware puede escribirse en una memoria de sólo lectura (ROM), en una memoria de sólo lectura programable y borrable (EPROM) o en una memoria flash.
Se dice que el informático estadounidense Ascher Opler acuñó la expresión firmware en un número de 1967 de la publicación Datamation. Usó el término para describir un tipo de microprograma entre hardware y software.
Hoy en día, el firmware embebido está presente en todo tipo de dispositivos, desde los teléfonos inteligentes hasta el Internet de las cosas (IoT). A menudo se incluye en dispositivos que tradicionalmente no se consideran controlados por computadora.
¿Por qué son importantes las actualizaciones de firmware y cómo funcionan?
Las actualizaciones de firmware suelen publicarse para corregir errores, evitar hackeos del firmware, desplegar nuevas funciones, mejorar la seguridad o interactuar con nuevos medios. Las actualizaciones de firmware consisten en un código que indica al hardware cómo comportarse de una forma nueva o modificada.
Algunos ejemplos de actualizaciones de firmware son los siguientes:
- Una grabadora de CD adquiere la capacidad de grabar un nuevo tipo de disco.
- Un router recibe una actualización que mejora su rendimiento y estabilidad.
- Un fabricante de placas base lanza una actualización de la BIOS que permite a la placa base ser compatible con nuevos procesadores. BIOS es el firmware de la placa base.
Algunos dispositivos conectados a Internet comprueban periódicamente si hay nuevo firmware y lo descargan e instalan automáticamente. Otros fabricantes de dispositivos requieren que el usuario visite el sitio web del fabricante para descargar e instalar manualmente las actualizaciones del firmware. Los fabricantes lanzan actualizaciones con regularidad.
La frecuencia de las actualizaciones de firmware varía en función del dispositivo. El firmware de una bombilla inteligente puede no necesitar actualizaciones frecuentes. Sin embargo, es posible que el firmware de un termostato inteligente deba actualizarse periódicamente para seguir siendo compatible con las actualizaciones del sistema operativo de un smartphone. Los teléfonos inteligentes suelen automatizar las actualizaciones de firmware junto con las de software para que el teléfono siga funcionando y los usuarios no tengan que actualizar manualmente las versiones de firmware para que coincidan con las actualizaciones de software. El proceso de actualización remota del firmware mediante la descarga de actualizaciones desde el proveedor de servicios se denomina a veces firmware over the air.
Muchos dispositivos electrónicos también requieren que el dispositivo permanezca encendido mientras se actualiza el firmware para que la actualización no se corrompa. Corromper el firmware de un dispositivo puede dañar algunos aparatos o hacer que funcionen mal.
Tipos de firmware
Existen muchos tipos de firmware específicos para cada tecnología, pero en general todos los firmware pueden clasificarse en tres categorías en función del nivel de integración del hardware.
- Firmware de bajo nivel. El firmware de bajo nivel se considera parte intrínseca del hardware de un dispositivo. Suele almacenarse en chips no volátiles de sólo lectura, como la ROM, y por tanto no puede reescribirse ni actualizarse. Los dispositivos que contienen firmware de bajo nivel tienen memoria programable de un solo uso.
- Firmware de alto nivel. El firmware de alto nivel sí permite actualizaciones y suele ser más complejo que el de bajo nivel. En un ordenador, el firmware de alto nivel reside en chips de memoria flash.
- Firmware de subsistema. El firmware de subsistema suele formar parte de un sistema embebido. Es comparable al firmware de alto nivel en el sentido de que puede actualizarse y es más complejo que el firmware de bajo nivel. Un ejemplo es el subsistema de alimentación de un servidor, que es una pieza de hardware del servidor que funciona de forma semi-independiente del servidor.
Aplicaciones del firmware
El firmware se encuentra en una amplia gama de equipos informáticos, incluidos los dispositivos complejos y los que normalmente no se consideran dispositivos informáticos. Algunas aplicaciones reales del firmware son las siguientes:
- Ordenador personal. El firmware de un ordenador personal — ya sea la BIOS o la interfaz de firmware extensible unificada — viene integrado en un pequeño chip de memoria en la placa base del ordenador. Los periféricos de un ordenador, como las tarjetas gráficas y de vídeo, también contienen firmware.
- Dispositivos de almacenamiento. Las unidades USB, los discos duros y otros dispositivos de almacenamiento portátiles contienen firmware básico que les permite funcionar con un ordenador.
- Dispositivos móviles. Los teléfonos móviles, las tabletas, los ordenadores portátiles y otros dispositivos móviles contienen firmware que permite que el hardware funcione con diversos programas.
- Automóviles. Los automóviles contienen muchos sistemas embebidos, sensores y pequeños ordenadores que contienen firmware que les permite realizar las tareas designadas.
- Electrodomésticos. Los lavavajillas y las lavadoras se encuentran entre los electrodomésticos que contienen firmware. El firmware ayuda a la máquina a comunicarse con la computadora utilizada para configurar los ajustes de la máquina y controlar su funcionamiento.
- Tarjetas inteligentes. Las tarjetas inteligentes tienen instrucciones integradas en un chip que proporciona la funcionalidad básica de la tarjeta, así como autenticación y cifrado.
La diferencia entre firmware y software
Aunque algunos consideran el firmware un tipo de software, existe una distinción entre ambas tecnologías.
Firmware
El firmware es un software que proporciona instrucciones básicas de máquina que permiten que el hardware funcione y se comunique con otro software que se ejecute en un dispositivo. El firmware proporciona un control de bajo nivel para el hardware de un dispositivo. Por esta razón, a veces se le llama «software para hardware». Otra característica distintiva es que el firmware no suele estar diseñado para ser fácil de usar.
Software
El software está diseñado para que los usuarios interactúen con él y realicen tareas específicas. Se sitúa por encima del firmware, abstraído del hardware, y utiliza el firmware para comunicarse con el hardware subyacente. El software es más complejo y no está tan ligado al hardware subyacente.
Ejemplos de software son los programas informáticos, como los sistemas operativos. Las aplicaciones de procesamiento de textos, videoconferencia y música también son ejemplos de software. Un programa de software suele poder cambiarse sin sustituir un componente de hardware, mientras que el firmware a menudo no puede.
El firmware integrado en chips de memoria flash puede actualizarse más fácilmente que el firmware escrito en ROM o EPROM. A medida que la memoria flash desempeña un papel más importante en la empresa, los administradores deben conocer los tipos de flash y sus casos de uso.