Citation preview

Firmware

Memoria de solo lectura que contiene el BIOS de una vieja placa base.

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.

Un dispositivo de firmware muy común: el control remoto de la televisión.

S.O. y aplicaciones

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.

kernel

1 Origen del término

ensamblador

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 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 firma, fijo o sólido’).

firmware hardware Una visión típica de la arquitectura de computadores como una serie de capas de abstracción: hardware, firmware, ensamblador, kernel, sistema operativo y aplicaciones

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, 1

2

2 FIRMWARE HOY EN DÍA

Posteriormente, el término fue ensanchado para incluir 2.1.1 Retos del firmware en los PC cualquier tipo de microcódigo, ya fuera en RAM o ROM. Aún más adelante, el término fue ensanchado otra vez En algún sentido, los varios componentes del firmwamás, en el uso popular, para denotar cualquier cosa resi- re son tan importantes como el sistema operativo en un dente en ROM, incluyendo las instrucciones de máquina computador. Sin embargo, a diferencia de la mayoría de del procesador para el BIOS, los cargadores de arranque, los sistemas operativos modernos, el firmware tiene raramente un mecanismo automático bien desarrollado para o aplicaciones especializadas. actualizarse a sí mismo para corregir los problemas de funcionalidad que son detectados después de que la unidad es despachada.

2

Firmware hoy en día

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 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.

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.[cita requerida]

2.2 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.

2.3 Teléfonos móviles

La mayoría de los teléfonos móviles tienen una capacidad de firmware actualizable por muchas de las mismas 2.1 Periféricos de computador razones que se especificaron anteriormente, pero algunos incluso pueden ser actualizados para mejorar la recepción La mayoría de los periféricos del computador son de he- o la calidad de sonido. cho computadores de propósito especial. Mientras que los dispositivos externos tienen el firmware almacenado internamente, las modernas tarjetas de los periféri- 2.4 Automóviles cos de computadores típicamente tienen grandes partes de firmware que es cargado en el arranque por el sistema Desde 1996 la mayoría de los automóviles han empleado huésped, pues esto es más flexible. Dicho hardware por una computadora a bordo y varios sensores para detectar lo tanto puede no funcionar completamente hasta que el problemas mecánicos. Los vehículos modernos también computador huésped le haya cargado el firmware indis- emplean sistemas controlados por computador ABS y sispensable, a menudo por medio del driver de dispositivo temas de control de transmisión operados por compuespecífico (o, más exactamente, por medio de un subsis- tadora. El conductor puede también recibir información tema dentro del paquete del driver de dispositivo). Los “in-dash” mientras conduce de esta manera, como por modernos drivers de dispositivo también pueden expo- ejemplo lecturas en tiempo real de la economía del comner una interfaz directa de usuario para la configuración bustible y de la presión del neumático. La mayoría del además de las llamadas/interfaces del sistema operativo o firmware del vehículo puede ser actualizado en un distride las Interfaces de programación de aplicaciones (APIs). buidor local autorizado.

3

2.5

Definición del IEEE

4

Hackeando el firmware

El glosario estándar de terminología del software del A veces una nueva o modificada versión no oficial de Institute of Electrical and Electronics Engineers (IEEE), firmware es creada por terceros para proporcionar nueStd 610.12-1990, define el firmware como sigue: vas características o para abrir una funcionalidad oculta. Los ejemplos incluyen Whited00r para iPhone e iPod “La combinación de instrucciones de un dispoTouch, Rockbox para los reproductores de audio digital, sitivo de hardware e instrucciones y datos de CHDK[2] y Magic Lantern[2][3] para las cámaras digitacomputadora que residen como software de solo les de Canon, y OpenWrt para los enrutadores inalámlectura en ese dispositivo”. bricos,[2] el firmware de región libre para unidades de DVD, que no son de región libre con el firmware oficial, Notas: así como muchos proyectos de homebrew para las consolas de juego. Éstos pueden a menudo abrir funcionali(1) este término es a veces usado padad computacional en dispositivos previamente limitados ra referirse solamente al dispositi(ej., ejecutar Doom en iPods). La mayoría de los hacks de vo de hardware o solamente a las firmware son libres y también de código abierto. 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.

3

Ejemplos

Estos hacks usualmente utilizan la facilidad de actualización del firmware en muchos dispositivos para instalarse o ejecutarse en ellos. Algunos, sin embargo, deben recurrir a exploits para funcionar, porque el fabricante ha intentado bloquear el hardware para evitar que utilicen código no autorizado.

5 Referencias

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 interfaz gráfica) • RTAS (Run Time Abstraction Services), usado en computadoras de IBM; • Chips de EPROM usados en la serie Eventide H3000 de procesadores digitales de música.

[1] Opler, Ascher (January de 1967). «Fourth-Generation Software». Datamation 13 (1): 22–24. [2] «Custom Firmware Rocks!». 05-08-2009. Consultado el 13-08-2009. [3] «Magic Lantern firmware for Canon 5D Mark II». Consultado el 13-08-2009.

6 Véase también • Imagen ROM • BIOS • Coreboot • Open Firmware • OpenBIOS • LinuxBIOS • Extensible Firmware Interface • IBM PC ROM BIOS • Microcódigo • Blob Binario

• El Common Firmware Environment (CFE)

• Hardware

• Controlando los atributos del sonido y video tanto como la lista de canales en los televisores modernos

• Software

4

7 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES

7

Text and image sources, contributors, and licenses

7.1

Text

• Firmware Fuente: http://es.wikipedia.org/wiki/Firmware?oldid=78856722 Colaboradores: Joseaperez, JorgeGG, Zwobot, Sms, Jsanchezes, Vicaram, Cinabrium, LeonardoRob0t, Muscari, Taichi, Rembiapo pohyiete (bot), RobotQuistnix, Francosrodriguez, Superzerocool, Chobot, Yrbot, Baifito, FlaBot, Darabuc, GermanX, Beto29, Mauro1947, Eskimbot, Chlewbot, Tomatejc, Acanas, BOTpolicia, CEMbot, Jorgelrm, Rastrojo, Jjafjjaf, FrancoGG, Thijs!bot, Alvaro qc, Ying, RoyFocker, Jurgens, JAnDbot, TXiKiBoT, Idioma-bot, Biasoli, AlnoktaBOT, Technopat, Matdrodes, Shooke, AlleborgoBot, Muro Bot, SieBot, Ctrl Z, Loveless, Chrihern, Drinibot, Bigsus-bot, Tolitose, DorganBot, Leonpolanco, LordT, Darkicebot, UA31, AVBOT, Hemingway10, Caitus, Pabloito, Diegusjaimes, Arjuno3, Luckas-bot, Ptbotgourou, Andy.z714, Manuelt15, Xqbot, Jkbw, Rubinbot, Botarel, TobeBot, Halfdrag, Abece, PatruBOT, Jorman Ordoñez, Dark Bane, Nachosan, D9, Savh, Baumert, ChuispastonBot, WikitanvirBot, Antonorsi, -dam-, KLBot2, Rancher 42, Brainup, Elvisor, Asqueladd, EduLeo, Liditz09, Addbot, BOTito, Matiia y Anónimos: 115

7.2

Images

• Archivo:Computer_abstraction_layers-es.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/c/c5/Computer_abstraction_ layers-es.svg Licencia: CC-BY-SA-3.0 Colaboradores: Own work. Based on Image:Computer abstraction layers.PNG Artista original: ? • Archivo:ROM_BIOS.jpg Fuente: http://upload.wikimedia.org/wikipedia/commons/3/3d/ROM_BIOS.jpg Licencia: Public domain Colaboradores: ? Artista original: ? • Archivo:Television_remote_control.jpg Fuente: http://upload.wikimedia.org/wikipedia/commons/7/7f/Television_remote_control.jpg Licencia: Public domain Colaboradores: ? Artista original: ?

7.3

Content license

• Creative Commons Attribution-Share Alike 3.0