El firmware, también conocido como "software para hardware", es un código de programa insertado en dispositivos de hardware que permite que estos y sus características funcionen correctamente. El firmware se actualiza periódicamente para hacer arreglos comunes, agregar o ampliar característica o aumentar la compatibilidad de un dispositivo con nuevas tecnologías.
Muchos dispositivos dependen del firmware para funcionar, incluidos televisores, cámaras, teléfonos móviles, impresoras, unidades de disco y más. El firmware se encuentra en la memoria no volátil de un dispositivo, donde el contenido se puede almacenar cuando un dispositivo está apagado. El firmware se puede escribir en diferentes tipos de memoria, incluida la memoria de acceso aleatorio (RAM), la memoria de solo lectura (ROM), la memoria de solo lectura programable borrable (EPROM) y la memoria flash.
El firmware ayuda a los dispositivos a realizar sus funciones previstas de varias maneras importantes, incluida la entrega de instrucciones sobre cómo debe iniciarse el dispositivo, cómo debe interactuar con otros dispositivos (como enrutadores de Internet o controles remotos) y cómo debe realizar tareas de entrada y salida críticas. Muchos fabricantes de dispositivos de hardware, como Apple, LG Electronics, Microsoft y otros, incorporan firmware en sus productos para que funcionen de manera similar al sistema operativo (SO) de una computadora.
Según los informes, el término "firmware" fue utilizado por primera vez por el científico estadounidense Ascher Opler en 1967 para describir un programa que, según él, estaba "entre el hardware y el software1." Hoy en día, el firmware es una parte esencial de muchos dispositivos, desde su iPhone, Mac o control remoto de TV, hasta sensores complejos de Internet de las cosas (IoT) en satélites y automóviles sin conductor. Aunque el firmware y el software son similares, existen diferencias importantes que vale la pena considerar al evaluar la idoneidad para una necesidad comercial.
La forma más sencilla de entender la diferencia entre el firmware y el software es en sus propósitos únicos: mientras que el firmware se diseñó para ayudar a los dispositivos a iniciarse y comunicarse entre sí, el software se utiliza principalmente para la interacción. El firmware se utiliza para proporcionar control sobre los dispositivos de consumo, como teléfonos y televisores. Los fabricantes actualizan con frecuencia el firmware para agregar nuevas características, mejorar la seguridad y proteger contra vulnerabilidades. Como sabe cualquier usuario de un teléfono Android o iOS, o incluso de Smart TV y consolas de juegos, las actualizaciones de la versión de firmware deben descargarse e instalarse regularmente o afectarán el rendimiento del dispositivo.
El software, por otro lado, se instala en un dispositivo para mejorar la interacción del usuario con actividades como navegar por Internet, consultar el correo electrónico, procesar textos, ver videos, trasmitir música y más. El software no está tan estrechamente conectado con el hardware como el firmware y necesita firmware para comunicarse con el hardware para el que proporciona funciones.
El firmware es esencial para el correcto funcionamiento de los dispositivos que damos por sentados en nuestra vida laboral y personal, como computadoras personales (PC), teléfonos inteligentes, consolas de juegos y más. La mayoría de los usuarios de estos dispositivos están familiarizados con el firmware a través de frecuentes "actualizaciones de firmware" que son necesarias para mantener sus dispositivos en funcionamiento.
Las actualizaciones de firmware, que consisten en código informático, a menudo se emiten para corregir amenazas de seguridad que pueden afectar el rendimiento de un dispositivo, como errores o hackeos. Pero también se pueden emitir para agregar una nueva característica a un dispositivo, como una forma de interactuar con un nuevo tipo de medio. Algunos ejemplos de actualizaciones de firmware incluyen agregar características de seguridad a un enrutador de Internet, mejorar la función de navegación para una aplicación de transmisión de video y una actualización del sistema operativo (SO) que permite que la placa del sistema de una computadora admita un nuevo tipo de procesador.
Desde hoy, la mayoría de los dispositivos están conectados a Internet, y la descarga de actualizaciones de forma remota o "por aire" se ha convertido en una manera para que los fabricantes emitan actualizaciones de firmware. La mayoría programa la capacidad de actualizar un dispositivo en el firmware y el usuario simplemente recibe una notificación. Otros dispositivos aún requieren que los usuarios visiten el sitio web de un fabricante y descarguen el código necesario. La frecuencia de las actualizaciones de firmware varía según el tipo de dispositivo para el que se diseñó. Los teléfonos inteligentes, por ejemplo, suelen combinar actualizaciones de firmware y software para mantener el teléfono y su sistema operativo subyacente funcionando correctamente.
Debido a que el firmware se usa tanto y es esencial para las funciones de tantos dispositivos importantes, se ha convertido en un objetivo importante para los hackers. Los dispositivos de hardware que dependen del firmware tienen muchas vulnerabilidades porque con frecuencia usan el mismo código. Las computadoras portátiles, por ejemplo, que a menudo contienen información de trabajo confidencial, dependen del firmware para alimentar sus baterías, tarjetas de sonido y video, cámaras web y más, lo que las convierte en objetivos atractivos.
La piratería de firmware a menudo implica el despliegue de malware, código que se ha escrito intencionalmente para dañar el sistema de una computadora o al usuario al adjuntarse al firmware. Los tipos populares de malware incluyen ransomware que retiene los datos de un usuario como rehenes, caballos de Troya que evaden la detección haciéndose pasar por un programa legítimo y spyware que roba información confidencial sobre un usuario. Los hackers rara vez tienen que acceder físicamente a una máquina para explotarla, y pueden obtener acceso de forma remota mediante conexiones Bluetooth o Wi-Fi, cada vez más populares a medida que aumenta la cantidad de dispositivos con conexiones a Internet.
Las características de seguridad de firmware deficientes pueden dar como resultado el robo o el compromiso de datos confidenciales del usuario y que los actores maliciosos obtengan el control remoto de la máquina de un usuario. Por ejemplo, en junio de 2024, Google emitió una advertencia de que un problema con su Pixel Firmware lo hacía vulnerable a los atacantes y que no había una solución conocida para el problema2.
Las empresas, cada vez más conscientes del riesgo de las vulnerabilidades del firmware, están tomando cada vez más medidas para evitar la explotación de sus sistemas debido a los muchos beneficios que ofrece el firmware.
Rendimiento mejorado, sin hardware nuevo: las actualizaciones de firmware permiten que los dispositivos adquieran nuevas capacidades sin cambiar el dispositivo o su arquitectura. Muchas actualizaciones de firmware mejoran los tiempos de ejecución e instrucción del código subyacente de un dispositivo y ayudan a optimizar su rendimiento.
Experiencia mejorada: las actualizaciones de firmware brindan a los usuarios nuevas características, programas informáticos y funciones para actividades en las que confían, como consultar saldos de cuentas, grabar un programa en su Smart TV o saber qué comestibles comprar, conectando su refrigerador inteligente a una aplicación mediante capacidades de IoT.
Resolución de problemas más rápida: las actualizaciones de firmware permiten resolver rápidamente muchos problemas comunes con un dispositivo, incluidos los tiempos de arranque y procesamiento, más funciones multitarea y una mejor compatibilidad con dispositivos externos.
Funciones de los componentes: las actualizaciones de firmware ayudan a garantizar que todos los componentes periféricos de un dispositivo, como los altavoces y micrófonos de un teléfono inteligente, funcionen de la manera en que fueron diseñados, lo que permite que el dispositivo funcione a niveles máximos.
Reducción de los costos de reparación: mantener actualizado el firmware de los dispositivos ayuda a reducir la probabilidad de que los dispositivos se infecten con errores y requieran arreglos o reparaciones costosas de equipamiento en el futuro.
El firmware se instala en un dispositivo mientras se fabrica. Principalmente, facilita las comunicaciones entre el sistema operativo (SO) y el hardware del dispositivo. El firmware contiene muchas instrucciones que son esenciales para que el dispositivo funcione de la forma en que fue diseñado. La unidad central de procesamiento (CPU) de la computadora, el lugar donde la entrada de datos se transforma en salida de información, recupera el firmware de la memoria de una computadora y lo ejecuta.
El firmware se utiliza en muchos dispositivos en los que confiamos todos los días. Quizás su caso de uso más común es la activación de un dispositivo después de un largo período de inactividad. Después de irse a dormir, por ejemplo, y se despierta y mira su teléfono para revisar sus mensajes, y el firmware ayuda a garantizar que su dispositivo se encienda correctamente. Para retener información mientras no se utiliza, un dispositivo almacena firmware en su memoria "no volátil". A medida que ha aumentado la complejidad de las tareas requeridas por el firmware, ha adquirido algunas de las características del hardware informático, a saber, el uso de memoria flash y un sistema básico de entrada/salida o BIOS.
Debido a que muchos dispositivos necesitan retener información mientras están apagados, el firmware generalmente almacena datos en la memoria "no volátil" o "de solo lectura" (ROM) de un sistema, también conocida como memoria flash. Este tipo de memoria se utiliza en una amplia gama de dispositivos portátiles, como unidades flash, teléfonos inteligentes, cámaras digitales, computadoras portátiles y más, y es esencial para las funciones del firmware.
Recientemente, la memoria flash ha adquirido algunas de las mismas capacidades asociadas con las computadoras. Por ejemplo, cuando se inicia una computadora, pasa por una secuencia conocida como sistema básico de entrada/salida o BIOS. El primer firmware que ejecutaba una secuencia de BIOS usaba un chip ROM, ahora los sistemas han pasado a usar memoria flash para BIOS para que los datos puedan reescribirse sin que el chip tenga que quitarse de la placa del sistema y reinsertarse una vez que se haya reprogramado.
Además de los cambios en la forma en que el firmware usa y almacena la memoria, también ha habido avances en los tipos de firmware disponibles para los usuarios. Hoy en día, el firmware se puede clasificar en tres grupos básicos definidos por su arquitectura:
El firmware de bajo nivel es intrínseco al hardware de un dispositivo y se almacena en chips no volátiles de solo lectura, como la ROM, que no se puede actualizar. Los dispositivos que dependen de firmware de bajo nivel utilizan una memoria que solo se puede escribir una vez y nunca reprogramar.
El firmware de alto nivel es un firmware que no se puede actualizar debido a la complejidad de su hardware. En una computadora, el firmware de alto nivel está contenido en chips de memoria flash y es responsable de tareas más avanzadas que el firmware de bajo nivel. El firmware de alto nivel contiene instrucciones importantes sobre cómo funciona un dispositivo y cómo interactúan varios componentes.
El firmware del subsistema está contenido en lo que se conoce como "sistema integrado", una combinación específica de hardware y software diseñada para un propósito o tarea. El firmware del subsistema es similar al firmware de alto nivel en su complejidad y adaptabilidad. Al igual que el firmware de alto nivel, el firmware del subsistema se puede actualizar fácilmente.
El firmware se utiliza en una amplia gama de dispositivos críticos para la transformación digital y, por lo tanto, tiene muchas aplicaciones útiles para la empresa moderna. Algunos de los usos comerciales más comunes del firmware incluyen:
Computadoras personales
Las computadoras personales (PC) dependen del firmware para retener datos críticos mientras están apagadas, así como de las especificaciones de BIOS y de las interfaces de firmware extensibles unificadas (UEFI) para la interfaz de software entre un sistema operativo y el firmware. Por lo general, estas características vienen integradas en un chip de memoria en la placa del sistema de una computadora. Además, los componentes populares de PC, como las tarjetas gráficas y de video, también dependen del firmware para funcionar.
Dispositivos de almacenamiento de datos
Las unidades USB, las unidades de disco duro externas, las unidades flash y otros dispositivos portátiles de almacenamiento de datos requieren firmware para funcionar. El firmware está integrado en los chips de memoria flash en los que confían muchos dispositivos modernos de almacenamiento de datos y se puede actualizar fácilmente a diferencia del firmware contenido en ROM o EPROM.
Teléfonos inteligentes
Los teléfonos inteligentes dependen en gran medida del firmware para funcionar. El firmware no solo ayuda a garantizar que un teléfono inteligente se inicie después de que no lo haya utilizado durante un tiempo, sino que también ayuda a garantizar que los componentes críticos puedan interactuar entre sí de la forma en que fueron diseñados. Por último, en un teléfono inteligente, los arreglos, las características de seguridad y las capacidades dependen de las actualizaciones regulares de firmware descargadas de Internet para funcionar correctamente.
Automóviles
Muchos automóviles diseñados en los últimos diez años contienen computadoras que dependen del firmware para realizar tareas críticas. Se utilizan diferentes tipos de firmware en varios sistemas automotrices, incluidas las unidades de control del motor (ECU) que optimizan el rendimiento del motor y la eficiencia del combustible, y los cada vez más complejos sistemas de información y entretenimiento (infoentretenimiento) que ayudan con la navegación y las cámaras conectadas a muchos automóviles.
Dispositivos de Internet de las cosas (IoT)
El Internet de las cosas (IoT) se refiere a una red de dispositivos físicos, vehículos y otros objetos físicos que están integrados con sensores, software y conectividad de red integrados, lo que les permite recopilar y compartir datos. El firmware es esencial para muchos casos de uso de la tecnología IoT, como electrodomésticos inteligentes, automóviles sin conductor, ciudades y fábricas más inteligentes y muchos más. En un dispositivo IoT, como un sensor que transmite datos a través de Internet, el firmware contiene instrucciones críticas almacenadas permanentemente en el hardware que permiten que el dispositivo se encienda y apague, recopilar, analizar y transmitir datos y más.
1. Firmware (enlace externo a ibm.com), Wikipedia
2. Google Warns of Pixel Firmware Security Flaw Exploited as Zero-Day (enlace externo a ibm.com), The Hacker News, 13 de junio de 2024
IBM Cloud Infrastructure Center es una plataforma de software compatible con OpenStack para gestionar la infraestructura de nubes privadas en IBM zSystems e IBM LinuxONE.
Descubra los servidores, el almacenamiento y el software diseñados para la nube híbrida y su estrategia de IA.
Encuentre una solución de infraestructura en la nube que sea adecuada para las necesidades de su negocio y escale los recursos bajo demanda.