¿Qué es el Firmware y para qué sirve?
¿Qué es el Firmware?
Es un tipo de programa de software que permite controlar y comunicarse con el hardware de un equipo de forma directa. Un ejemplo de firmware podría ser el BIOS de un ordenador, pero la gran mayoría de dispositivos electrónicos diferentes cuentan con firmware como un coche, un móvil, un rúter y ahora hasta lavadoras u otros electrodomésticos inteligentes de la casa.
En un ordenador o sistema, hay varias capas de software interactuando entre ellas para hacerlo funcionar. Las capas más altas son las que se ven y con las que suele interactuar el usuario final como pueden ser el sistema operativo de un ordenador o la interfaz de una Smart TV, el navegador de a bordo de un coche… Pero estas capas más altas se comunican con otros niveles de software por debajo que a su vez interactúan con los demás a su alrededor hasta que llegamos al nivel más bajo donde está el firmware, que se comunica con el hardware en sí.
El firmware siempre se encuentra en dispositivos de memoria no volátil, como puede ser memoria ROM, EPROM o memoria Flash. Si se encuentra en los primeros se necesitará cambiar al chip físicamente para sustituir el firmware o actualizarlo, mientras que si es memoria EPROM o Flash se podrá actualizar el firmware más fácilmente, como en el caso de los ordenadores en los que se puede hacer incluso desde el propio BIOS.
El firmware al igual que otros softwares se puede personalizar, y en algunos casos entrar a él como explicamos en esta guía. Además, agentes externos pueden construir sus propias versiones, lo cual muchas veces se usa para desbloquear funcionalidades extra en los dispositivos, usándose por ejemplo para hacer “Jailbreak” en algunos dispositivos, proyectos “Homebrew” en consolas co móviles como en este caso con la Nintendo Switch, o el desbloqueo de compatibilidad con procesadores adicionales en algunas placas base de Intel y así poder usar muestras de ingeniería de la marca.
¿Para qué sirve el Firmware?
El firmware sirve para comunicarse con los dispositivos de hardware de un sistema, lo cual es necesario para el correcto funcionamiento de los niveles superiores de software. Todas las piezas "inteligentes" tienen un firmware, por lo que en sistemas complejos como un ordenador es común tener varios firmwares.
Por ejemplo, en un ordenador tienes el firmware de la placa base, el BIOS, que es el más conocido, pero otras piezas como el procesador, los discos duros o las tarjetas gráficas tienen también su propio firmware. Estos firmwares obviamente están a diferentes niveles y en el caso de un ordenador tenemos el BIOS como firmware “principal” que es el que se comunica, gestiona y configura los demás para que todo pueda funcionar de forma conjunta.
Luego aparte, para poder usar cualquier firmware necesitas un programa diseñado para comunicarse con él, de ahí que existan diferentes controladores o “drivers” en todas las máquinas para poder hacer funcionar de forma correcta los diferentes firmwares y por tanto los diferentes dispositivos. Muchas veces estos drivers son muy complejos como los de una tarjeta gráfica de última generación como las RTX 3000 de Nvidia, pero también hay controladores más sencillos que incluso hasta son universales para todos los dispositivos del mismo tipo.
El firmware también se puede usar o modificar para fines maliciosos haciendo que sea una de las formas más fáciles y efectivas de infectar un dispositivo, ya que al ser una pieza de software que se ejecuta a tan bajo nivel podrá actuar prácticamente sin limitaciones sobre todas las piezas del sistema y de forma que es muy difícil detectar y controlar las actividades que el firmware esté desarrollando en el dispositivo. Irónicamente, el firmware es una de las partes más difíciles de proteger, ya que al estar por debajo del sistema operativo es por ejemplo difícil que un antivirus convencional actúe sobre él.