Diferencia entre revisiones de «Firmware»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Página reemplazada por «kike ta pillao».
m Revertidos los cambios de 83.39.107.26 (disc.) a la última edición de Loveless
Línea 1: Línea 1:
[[Archivo:Computer abstraction layers-es.svg|thumb|200px|Una visión típica de la [[arquitectura de computadores]] como una serie de capas de abstracción: [[hardware]], [[firmware]], [[lenguaje ensamblador|ensamblador]], [[núcleo (informática)|kernel]], [[sistema operativo]] y [[Proceso (informática)|aplicaciones]]]]
kike ta pillao
[[Archivo:ROM BIOS.jpg|thumb|Memoria [[ROM]] que contiene la [[BIOS]] de una vieja placa base]]

'''Firmware''' o ''programación en firme'', es un bloque de instrucciones de programa para propósitos específicos, grabado en una memoria de tipo no volátil ([[ROM]], [[EEPROM]], [[Memoria flash|flash]],...), que establece la lógica de más bajo nivel que controla los [[circuito]]s [[electrónica|electrónicos]] de un dispositivo de cualquier tipo. Al estar integrado en la [[electrónica]] del dispositivo es en parte [[hardware]], pero también es [[software]], ya que proporciona lógica y se dispone en algún tipo de [[lenguaje de programación]].
Funcionalmente, el firmware es el intermediario ([[interfaz]]) entre las órdenes externas que recibe el dispositivo y su [[electrónica]], ya que es el encargado de controlar a ésta última para ejecutar correctamente dichas órdenes externas.

Encontramos firmware en memorias ROM de los sistemas de diversos dispositivos [[periférico]]s, como en [[pantalla de computador|monitores]] de video, unidades de [[Memoria secundaria|disco]], [[impresora]]s, etc., pero también en los propios [[microprocesador]]es, chips de [[memoria principal]] y en general en cualquier [[circuito integrado]].

Muchos de los firmwares almacenados en ROM están protegidos por Derechos de Autor.

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 la instalación de un Sistema Operativo complejo, así como responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre distintos componentes de la [[computadora]].

En un [[microprocesador]] el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitería del mismo, emitiendo órdenes a otros dispositivos del sistema.

== Origen del término ==

El término "firmware" fue acuñado por [[Ascher Opler]] en un artículo de [[Datamation]] publicado en 1967.<ref name="Opler">
{{cita publicación
| autor = Opler, Ascher
| año = 1967
| mes = January
| título = Fourth-Generation Software
| publicación = Datamation
| volumen = 13
| número = 1
| páginas = 22-24
}}</ref> Originalmente, se refería al [[microcódigo]] - contenido en un [[almacenamiento de control]] escribible (una área pequeña especializada de memoria [[memoria RAM|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 un CPU). El firmware no estaba compuesto de [[lenguaje de máquina|instrucciones de máquina]] del CPU, sino del microcódigo de nivel inferior implicado en la implementación de las instrucciones de máquina que iría a ejecutar el 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 [[cargador de arranque|cargadores de arranque]], o aplicaciones especializadas.

Cuando viene el tema de actualizar el firmware a una nueva versión, hasta mediados de los años 1990, un procedimiento típico 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 acercamiento ha sido en gran parte abandonado en presencia de la capacidad de sobreescribirse a sí mismo del firmware en una conveniente operación puramente electrónica.

== 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 [[Circuito Integrado para Aplicaciones Específicas|circuitos integrados para aplicaciones específicas]] (ASICs), dispositivos de [[Lógica programada|lógica programable]], etc.

=== Periféricos del 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 huesped, pues esto es más flexible. Dicho hardware por lo tanto puede no funcionar completamente hasta que el computador huesped 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 interface directa de usuario para la configuración además de las llamadas/interfaces del sistema operativo o de las [[Interfaz de programación de aplicaciones|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.{{Fact|date=December 2008}}

=== Reproductores de música portátiles ===

Algunas compañías usan actualizaciones del firmware para agregar nuevos formatos de archivos de reproducción de sonido ([[codec]]s); 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 celulares ===

La mayoría de los [[teléfono celular|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 [[Antilock Brake System|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 [[lavadora]]s
* 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 [[Extensible Firmware Interface|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 [[Commodore Amiga|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 [[Núcleo (informática)|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 [[televisor]]es modernos

== Hackeando el firmware ==

A veces una nueva o modificada versión no oficial de firmware es creada por terceros para proporcionar nuevas características o para abrir funcionalidad oculta. Los ejemplos incluyen [[Rockbox]] para los [[Reproductor de audio digital|reproductores de audio digital]], [[CHDK]]<ref name=maximumpc>{{cita web
| url = http://www.maximumpc.com/article/features/frimware_hacks?page=0%2C1
| título = Custom Firmware Rocks!
| fecha = 2009-08-05
| fechaacceso = 2009-08-13
}}</ref> y [[Canon EOS 5D Mark II#Funcionalidad de video|Magic Lantern]]<ref name=maximumpc /><ref>{{cita web
| url = http://magiclantern.wikia.com
| título = Magic Lantern firmware for Canon 5D Mark II
| fechaacceso = 2009-08-13
}}</ref> para las cámaras digitales de Canon, y [[OpenWRT]] para los [[enrutador inalámbrico|enrutadores inalámbricos]],<ref name=maximumpc /> el firmware de [[Códigos regionales DVD|región libre]] para unidades de DVD, que no son de región libre con el firmware oficial, así como muchos proyectos de [[homebrew]] para las consolas de juego. Éstos pueden a menudo abrir funcionalidad computacional en dispositivos previamente limitados (ej., correr [[Doom]] en [[iPod]]s). La mayoría de los hacks de firmware son [[software libre|libres]] y también de [[código abierto]].

Estos hacks usualmente toman ventaja de la facilidad de actualización del firmware en muchos dispositivos para instalar o correr ellos mismos. Algunos, sin embargo, deben recurrir [[exploit]]s para poder correr, porque el fabricante ha intentado trabar el hardware para evitar que corra con código no autorizado.

== Referencias ==

<references />

== Véase también ==

* [[Imagen ROM]]
* [[BIOS]]
* [[Coreboot]]
* [[Open Firmware]]
* [[OpenBIOS]]
* [[LinuxBIOS]]
* [[Extensible Firmware Interface]]
* [[OpenBook Project]]
* [[Microcódigo]]
* [[Blob Binario]]
* [[Hardware]]
* [[Software]]

== Enlaces externos ==
[http://www.givemefile.es/firmwares-page.html Descargar firmware]

[[Categoría:Memorias informáticas]]
[[Categoría:Software de sistema]]

[[ar:برنامج ثابت]]
[[bn:ফার্মওয়্যার]]
[[bs:Firmware]]
[[ca:Microprogramari]]
[[cs:Firmware]]
[[da:Firmware]]
[[de:Firmware]]
[[en:Firmware]]
[[eu:Firmware]]
[[fa:میان‌افزار]]
[[fi:Firmware]]
[[fr:Micrologiciel]]
[[gl:Firmware]]
[[he:קושחה]]
[[hu:Firmware]]
[[id:Firmware]]
[[it:Firmware]]
[[ja:ファームウェア]]
[[ko:펌웨어]]
[[lt:Įmontuotoji programinė įranga]]
[[nds:Firmware]]
[[nl:Firmware]]
[[no:Firmware]]
[[pl:Firmware]]
[[pt:Firmware]]
[[ro:Firmware]]
[[ru:Микропрограмма]]
[[si:ස්ථිරාංග (Firm Ware)]]
[[simple:Firmware]]
[[sk:Firmware]]
[[sr:Фирмвер]]
[[sv:Firmware]]
[[th:เฟิร์มแวร์]]
[[tl:Firmware]]
[[tr:Donanım yazılımı]]
[[uk:Вбудована програма]]
[[vi:Firmware]]
[[zh:韌體]]

Revisión del 07:47 13 nov 2009

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
Memoria ROM que contiene la BIOS de una vieja placa base

Firmware o programación en firme, es un bloque de instrucciones de programa para propósitos específicos, grabado en una memoria de tipo no volátil (ROM, EEPROM, flash,...), que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Al estar integrado en la electrónica del dispositivo es en parte hardware, pero también es software, ya que proporciona lógica y se dispone en algún tipo de lenguaje de programación. Funcionalmente, el firmware es el intermediario (interfaz) entre las órdenes externas que recibe el dispositivo y su electrónica, ya que es el encargado de controlar a ésta última para ejecutar correctamente dichas órdenes externas.

Encontramos firmware en memorias ROM de los sistemas de diversos dispositivos periféricos, como en monitores de video, unidades de disco, impresoras, etc., pero también en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado.

Muchos de los firmwares almacenados en ROM están protegidos por Derechos de Autor.

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 la instalación de un Sistema Operativo complejo, así como responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre distintos componentes de la computadora.

En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitería del mismo, emitiendo órdenes a otros dispositivos del sistema.

Origen del término

El término "firmware" fue acuñado por Ascher Opler en un artículo de Datamation publicado en 1967.[1]​ Originalmente, se refería al microcódigo - 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 un CPU). El firmware no estaba compuesto de instrucciones de máquina del CPU, sino del microcódigo de nivel inferior implicado en la implementación de las instrucciones de máquina que iría a ejecutar el 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.

Cuando viene el tema de actualizar el firmware a una nueva versión, hasta mediados de los años 1990, un procedimiento típico 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 acercamiento ha sido en gran parte abandonado en presencia de la capacidad de sobreescribirse a sí mismo del firmware en una conveniente operación puramente electrónica.

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 (ASICs), dispositivos de lógica programable, etc.

Periféricos del 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 huesped, pues esto es más flexible. Dicho hardware por lo tanto puede no funcionar completamente hasta que el computador huesped 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 interface 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.[cita requerida]

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 celulares

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:

Hackeando el firmware

A veces una nueva o modificada versión no oficial de firmware es creada por terceros para proporcionar nuevas características o para abrir funcionalidad oculta. Los ejemplos incluyen Rockbox para los reproductores de audio digital, CHDK[2]​ y Magic Lantern[2][3]​ para las cámaras digitales de Canon, y OpenWRT para los enrutadores inalámbricos,[2]​ el firmware de región libre para unidades de DVD, que no son de región libre con el firmware oficial, así como muchos proyectos de homebrew para las consolas de juego. Éstos pueden a menudo abrir funcionalidad computacional en dispositivos previamente limitados (ej., correr Doom en iPods). La mayoría de los hacks de firmware son libres y también de código abierto.

Estos hacks usualmente toman ventaja de la facilidad de actualización del firmware en muchos dispositivos para instalar o correr ellos mismos. Algunos, sin embargo, deben recurrir exploits para poder correr, porque el fabricante ha intentado trabar el hardware para evitar que corra con código no autorizado.

Referencias

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

Véase también

Enlaces externos

Descargar firmware