viernes, 6 de febrero de 2009

Firmware

Firmware se le denomina a los programas internos de muchos dispositivos y periféricos electrónicos. Dichos programas permiten controlar la funcionalidad de los dispositivos, de tal manera que sirve como una especie de interfaz entre las órdenes que recibe el dispositivo y las acciones electrónicas que debe llevar a cabo.

No se puede clasificar estrictamente al firmware como hardware o software, ya que por una parte forma parte del circuito integrado, y al mismo tiempo brinda cierta lógica ya que cuenta con un lenguaje de programación. El termino firmware viene de microcódigo.

Casi todos los dispositivos electrónicos tienen firmware, entre ellos se pueden mencionar: Lavadoras, controles remoto, teléfonos celular, cámaras fotográficas, computadoras, aparatos CISCO, y chips EEPROM.

El firmware generalmente reside en dispositivos de almacenamientos secundario (o no volátil), dependiendo de qué tipo de dispositivo, si este es moderno y necesita de muchos cálculos puede residir en memorias flash por ejemplo; PSP, iPod, Celulares, etc. si no es muy sofisticado puede estar en memorias ROM, o EEPROM, por ejemplo: Calculadoras científicas, controles remotos, PICS, etc.

Los firmware pueden ser actualizados, a este tipo de actualización se le denomina carga dinámica, dicha actualización se lleva a cabo mediante mecanismos proporcionados por el S.O. tal es el caso de los BIOS, módems, y tarjetas de video entre otros.

Por ejemplo en los PSP es crucial una actualización de firmware. Las actualizaciones se pueden obtener mediante descargas vía Wi-Fi desde los servidores de Sony, también mediante Bluetooth o memoria USB, copiando a la carpeta \PSP\GAME\UPDATE de la PSP y posteriormente ejecutándolo como si de una aplicación se tratara. En el PSP las actualizaciones de firmware pueden llevar desde un navegador hasta un lector RSS, pasando por codificación y compresión de archivos de video.

Los firmware están protegidos por derechos de autor, y muchas veces son utilizados también para bloquear los dispositivos. Sin embargo también pueden ser alterados o reprogramados por terceras personas para desbloquear dichos dispositivos.

Los hackers muchas veces se aprovechan de las actualizaciones para adulterar los firmware. A menudo pueden desbloquear la funcionalidad de cálculo de uso general del dispositivo anteriormente con características limitadas, para lograr por ejemplo poder correr Doom en un iPod. Ya que dicho problema se estaba dando con los PSP todas las actualizaciones deben ser firmadas para evitar el problema que se dio de que en los PSP se tenían emuladores de Súper Nintendo, o de Sega.

No todos los aparatos que tienen firmware se pueden actualizar o deben ser actualizados. Por ejemplo aparatos como los discos duros no necesitan de actualización firmware.

Links:
- http://en.wikipedia.org/wiki/Firmware
- http://es.wikipedia.org/wiki/Firmware
- http://es.wikipedia.org/wiki/PlayStation_Portable

10 comentarios:

Anónimo dijo...

Muy interesante informacion, solo decime como podemos saber que firmware se pueden actualizar y cuales no.

Rubén Coloma dijo...

@elpeladero:
Los firmware que se pueden actualizar son todos aquellos que pertenecen a dispositivos o aparatos a los que se les pueden explotar sus capacidades de procesamiento y cálculo. P.e: es bueno actualizar firmware para celulares, algunas tarjetas de video (por ejemplo ATI), PSP, Palm, etc. Sin embargo de nada nos serviría actualizar el firmware de un disco duro, ya que esto no haría que aumente sus revoluciones por segundo, o actualizar el de un microondas, ya que muchas de sus limitaciones las impone la mecánica y el hardware.

Leo Mejía dijo...

esta chilero tu blog colocho!!!!
jajaja

no ahora si hablando en serio tenia una duda, cuando se le instala un chip a las consolas de videojuegos para poder utilizar copias se esta alterando el firmware?

Unknown dijo...

me parece muy interesante esto de los firmware, ya que uno utiliza las cosas sin saber como es que funcionan o que es lo que contienen, yo la verdad es que he tenido la oportunidad de programar una clase de integrados denominados "rabbits" con un programa que es una mezcla de c++ y assembler, no se si pueda catalogarse esto como un firmware, ya que estos programas no se queman al integrado como los pics, sino que estan en memorias USB

Masi dijo...

No sabia toda esa informacion, solo tenia una vaga idea, pero me parece muy bien explotar las capacidades de los dispositivos, porque para eso son no?

Unknown dijo...

si seriía muy interesante saber si los programas que uno hace, por ejemplo para los pics de picaxe, pueden ser tomados como firmware o no?

Anónimo dijo...

Me llego tu respuesta (2do. comentario), bastante informativa, concisa y al grano. Pues complementa lo que escribiste en tu post y deja mas claro el porque de los firmwares.

Rubén Coloma dijo...

@Leo Megia:
Fíjate que pensándolo bien sí se podría decir que cuando se altera una consola para que lea copias de juegos se altera el firmware. De hecho ya hay lugares donde hacen que el PS2 lea juegos copiados sin abrir la consola, me atrevería a decir que modifican el firmware.

@Masi:
Sí, esa es la idea del firmware, explotar al máximo las capacidades de procesamiento de los dispositivos.

@Chentex:
Yo diría que cuando uno programa un PIC está programando un firmware. Aunque francamente no encontré un lenguaje específico para programar firmware, creo que al programar PIC’s se aplica este concepto.

Unknown dijo...

Interesante post, lo veo completo. Y muy buena aclaracion de los firmware que pueden o no actualizarce.

Exitos.

Rob dijo...

Mi pregunta es como saber en que lenguaje se programó un firmware que es de un disco duro multimedia. Para poder editar el lenguaje y modificarlo. Por la extensión no consigo saber en que lenguaje se hizo. Cómo .dff o .dfs. gracias por tu respuesta