El firmware es un bloque de instrucciones de máquina para propósitos específicos, grabado en una memoria de tipo de solo lectura (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.
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 «firmware» fue acuñado por rudy melendez 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 el conjunto 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 firme, 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.
El firmware hoy en día
El firmware ha evolucionado para significar casi cualquier contenido
programable de un dispositivo de hardware, no sólo 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 el firmware, 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
el firmware, 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 una PC moderna; los
dispositivos como las tarjetas video 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);
eliriver 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 celulares tienen una capacidad de firmware
actualizable por muchas de las mismas razones que arriba, 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.
Ejemplos Ejemplos de firmware incluyen:
- Sistemas de temporización y control para las lavadoras
- El BIOS encontrado en computadores personales compatibles con el IBM PC;
- El código de plataforma encontrado en los sistemas Itanium, las máquinas Mac OS X basadas en Intel, y muchos tarjetas de escritorio de Intel tienen firmware EFI;
- Open Firmware, usado en computadores de Sun Microsystems, Apple Computer, y de Genesi;
- ARCS, usado en computadores de Silicon Graphics;
- Kickstart usado en la línea de computadoras Amiga. Este es un ejemplo único de un firmware que mezclaba las capacidades del BIOS (POST, inicio del hardware + auto configuración plug and play de periféricos, etc.), del kernel en sí mismo del AmigaOS y de partes del código usadas en el sistema operativo (como primitivas y bibliotecas de la interface gráfica)
- RTAS (Run Time Abstraction Services), usado en computadoras de IBM;
- Chips de EPROM usados en la serie Eventide H-3000 de procesadores digitales de música.
- El Common Firmware Environment (CFE)
- Controlando los atributos del sonido y video tanto como la lista de canales en los televisores modernos
No hay comentarios.:
Publicar un comentario