Voltei, agora vamos falar de firmware para Linux mais especificamente OpenFirmware.
(promessa é divida niquel )
Hoje existe 2 formas de se trabalhar com firmware:
1 - Carregando este firmware em um dispositivo físico, ROM, PROM, EPROM ou ainda EEPROM , integrados ao hardware.
2 - Carregando o firmware para dispositivos externos, por exemplo uma placa wirelles , uma placa de tv, apartir de um arquivo contendo as instruções para o dispositivo.
O firmware na realidade é um software, mas geralmente destina-se ao controle de determinadas funções, para dispositivos fisicos, como nos exemplos citados acima.
Firmware
Firmware é o conjunto de instruções operacionais programadas diretamente no hardware de um equipamento eletrônico.
É armazenado permanentemente num circuito integrado (chip) de memória de hardware, como uma ROM, PROM, EPROM ou ainda EEPROM e memória flash.
Exemplos de Firmware:
1) - A Bios ( Basic Input/Output System ) do seu computador é um firmware.
2) - O seu aparelho de DVD tem um firmware.
3) - Seu micro ondas também tem um firmware.
4) - Seu video game também tem um, e as vezes é necessário a troca ou atualização do mesmo para poder jogar certos games, mas isto é papo pra outro post. rs ...
OpenFirmware
É uma variação de firmware criada originalmente em compatibilidade com a norma *IEEE *IEEE 1275-1994.
Sua principal característica é ser compilada em FCode, o que lhe proporciona independência de arquitetura.
Hoje no mundo Linux os desenvolvedores se beneficiaram desta tecnologia para poder criar uma engenhoca fantástica, a sacada ai foi não gravar a firmware mais em uma memoria como uma ROM etc ... E sim criar um arquivo com o conteúdo da firmware.
Bom vamos lá, sabemos que o Linux é um sistema modular correto ?
O kernel carrega os modulos sob demanda para poder conversar com o hardwarer etc ...
Então foi ai que um santo teve a seguinte ideia, ao invés de colocar o drive da minha placa wirelles todo dentro de um modulo no kernel, vou colocar só a parte de comunicação em um modulo no kernel e carregar um firmware com todas as instruções necessárias para utilizar devidamente o dispositivo wirelles, pois ai posso carrega-la na memoria e conversar com o hardware, e quando eu tiver que atualizar algo só preciso manipular a firmware pois o modulo de comunicação com o dispositivo será o mesmo no kernel.
Com esta evolução os fabricantes de hardware e periféricos, poderão facilmente criar firmware que irão funcionar independente do S.O.
Driver usando conceito OpenFirmware.
1) - Dispositivos Wirelles da Intel e Ralink
2) - Algumas placas de TV
3) - Algumas placas de Som
Obs: Quando você instala os drivers para estes dispositivos na verdade o programa de instalação esta colocando uma firmware em sua maquina e o modulo/driver para conversar com este firmware.
O Conceito de OpenFirmware é fantástico principalmente para sistemas dinâmicos e evolutivos como o Linux, que seu kernel sofre a cada semana centenas de mudanças.
Um simples exemplo de funcionamento no Linux.
O (KERNEL) carrega (MODULO) que faz o probe do hardware e chama o (FIRMWARE) que esta em /lib/firmware/my_firmware.bin que carrega e manipula minha placa wirelles.
Quando eu trocar o (KERNEL) só preciso continuar tendo o (FIRMWARE) para que minha placa funcione corretamente.
Pois o (KERNEL_NOVO) continuará a carregar o (MODULO) que continuará a fazer o probe do hardware e chama o (FIRMWARE) que esta em /lib/firmware/my_firmware.bin , que irá carregar indepente de versão de kernel, glib, gcc, etc ...
Resumo:
Esta é uma opção para a criação de drivers independente do S.O.
Dispositivos baseados em firmware são a grande sacada do momento, pois o usuário não precisará temer atualizações em seu sistema, com receio de após a atualização a placa de som não funcionar ou o drive de sua placa de video não funcionar corretamente.
Agradecimento Wikpedia Google etc ...
Links:
*http://playground.sun.com/1275/home.html
*http://www.openfirmware.info/IEEE_1275-1994
http://www.kernel.org/
http://www.firmworks.com/