FIRMWARE
El firmware es un bloque de instrucciones de
máquina para propósitos específicos, grabado en una memoria, normalmente de
lectura/escritura (ROM, EEPROM, flash,
etc.), que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo.
Está fuertemente
integrado con la electrónica del dispositivo siendo el software que tiene directa interacción con el hardware:
es el encargado de controlarlo para ejecutar correctamente las instrucciones
externas.
En
resumen, un firmware es un software que maneja físicamente al hardware.
El
programa BIOS de una computadora es un firmware cuyo propósito es activar una máquina
desde su encendido y preparar el entorno para cargar un sistema operativo en la memoria RAM.
Origen del término
El término fue acuñado
por Ascher Opler en un artículo de la revista Datamation, publicado en 1967.1 Originalmente, se refería al microshiva- contenido en un almacenamiento de control escribible (una área pequeña
especializada de memoria RAM),
que definía e implementaba elconjunto de instrucciones del computador. Si fuera necesario, el firmware podía ser recargado para especializar
o para modificar las instrucciones que podría ejecutar la Unidad Central de Procesamiento (CPU). Según el uso original, el firmware contrastaba tanto con el soporte
físico (la CPU en sí misma) como con el software (las instrucciones normales que se
ejecutan en una CPU). El firmware no estaba compuesto de instrucciones de máquina de la CPU, sino del microcódigo de
nivel inferior implicado en la implementación de las instrucciones de máquina
que iría a ejecutar la CPU. El firmware existía en el límite o frontera entre
el hardware y el software,
por ello el término de firmware (que significa ‘software firma, fijo o
sólido’).
Posteriormente,
el término fue ensanchado para incluir cualquier tipo de microcódigo, ya fuera
en RAM o ROM.
Aún
más adelante, el término fue ensanchado otra vez más, en el uso popular, para
denotar cualquier cosa residente en ROM, incluyendo las instrucciones de
máquina del procesador para el BIOS, los cargadores de arranque, o aplicaciones
especializadas.
Firmware hoy en dia
El firmware ha evolucionado para significar casi
cualquier contenido programable de un dispositivo de hardware,
no solo código de máquina para un procesador, sino también configuraciones y
datos para los circuitos
integrados para aplicaciones específicas (ASIC), dispositivos de lógica programable, etc.
Hasta
mediados de los años 1990 el procedimiento típico para actualizar un firmware a una nueva versión era reemplazar el medio de almacenamiento que contenía elfirmware, usualmente un chip de memoria ROM enchufado en un socket. Hoy
en día este procedimiento no es habitual ya que los fabricantes han añadido una
nueva funcionalidad que permite grabar las nuevas instrucciones en la misma
memoria, haciendo de la actualización un proceso mucho más cómodo y dinámico.
Aun así el proceso de actualización de un firmware hay que realizarlo con mucho cuidado,
ya que al ser un componente vital cualquier fallo puede dejar al equipo
inservible. Por ejemplo, un fallo de alimentación a mitad del proceso de
actualización evitaría la carga completa del código que gobierna el equipo,
quizá incluso la carga del código que se encarga de actualizar elfirmware, así que no podríamos
actualizarlo de nuevo y por lo tanto el equipo dejaría de funcionar.
Periféricos de computador
La
mayoría de los periféricos del computador son de hecho computadores de
propósito especial. Mientras que los dispositivos externos tienen el firmware
almacenado internamente, las modernas tarjetas de los periféricos de
computadores típicamente tienen grandes partes de firmware que es cargado en el
arranque por el sistema huésped, pues esto es más flexible. Dicho hardware por
lo tanto puede no funcionar completamente hasta que el computador huésped le
haya cargado el firmware indispensable, a menudo por medio del driver de
dispositivo específico (o, más exactamente, por medio de un subsistema dentro
del paquete del driver de dispositivo). Los modernos drivers de dispositivo
también pueden exponer una interfaz directa de usuario para la configuración
además de las llamadas/interfaces del sistema operativo o de las Interfaces
de programación de aplicaciones (APIs).
Retos del firmware en los PC
En algún sentido, los
varios componentes del firmware son tan importantes como el sistema operativo
en un computador. Sin embargo, a diferencia de la mayoría de los sistemas
operativos modernos, el firmware tiene raramente un mecanismo automático bien
desarrollado para actualizarse a sí mismo para corregir los problemas de
funcionalidad que son detectados después de que la unidad es despachada.
El
BIOS es bastante fácil de actualizar en un PC moderno; los dispositivos como
las tarjetas vídeo o los módems confían en el firmware cargado dinámicamente por un driver de dispositivo y a menudo pueden así
ser actualizados transparentemente a través de los mecanismos de la
actualización del sistema operativo. En contraste, el firmware en dispositivos
de almacenamiento es raramente actualizado; no están estandarizados los
mecanismos para detectar las versiones del firmware y actualizarlas. Estos dispositivos
por lo tanto tienden a tener un índice más alto de problemas de funcionalidad,
comparado a otras partes de un moderno sistema de computación.
Reproductores de música portátiles
Algunas
compañías usan actualizaciones del firmware para agregar nuevos formatos de
archivos de reproducción de sonido (codecs);
el iriver agregó el formato ogg de esta manera, por ejemplo. Otras
características que pueden cambiar con las actualizaciones del firmware son el GUI e incluso la vida de la batería. La
mayoría de los reproductores de música modernos soportan las actualizaciones
del firmware.
Teléfonos móviles
La
mayoría de los teléfonos móviles tienen una capacidad de firmware actualizable por muchas de las mismas
razones que se especificaron anteriormente, pero algunos incluso pueden ser
actualizados para mejorar la recepción o la calidad de sonido.
Automóviles
Desde
1996 la mayoría de los automóviles han empleado una computadora a bordo y
varios sensores para detectar problemas mecánicos. Los vehículos modernos
también emplean sistemas controlados por computador ABS y sistemas de control de transmisión
operados por computadora. El conductor puede también recibir información
"in-dash" mientras conduce de esta manera, como por ejemplo lecturas
en tiempo real de la economía del combustible y de la presión del neumático. La
mayoría del firmware del vehículo puede ser actualizado en
un distribuidor local autorizado.
Definición del IEEE
El
glosario estándar de terminología del software del Institute of Electrical and Electronics Engineers (IEEE), Std 610.12-1990, define el
firmware como sigue:
"La
combinación de instrucciones de un dispositivo de hardware e instrucciones y datos de computadora que
residen como software de
solo lectura en ese dispositivo".
Notas:
(1)
este término es a veces usado para referirse solamente al dispositivo de hardware o solamente a las instrucciones o datos de
computadora, pero estos significados están desaprobados.
(2)
la confusión rodeando este término ha llevado a alguno a sugerir que éste debe
ser totalmente evitado.
No hay comentarios:
Publicar un comentario