Respostas:
Firmware é o software que roda no dispositivo. Um driver é o software que informa ao sistema operacional como se comunicar com o dispositivo. Nem todos os dispositivos possuem firmware - apenas dispositivos com algum nível de inteligência.
Não sei exatamente o que você quer dizer ... de um modo geral, o firmware não tem nada a ver com "inicializar" ... acho que talvez você esteja perguntando: os dispositivos com firmware sempre têm o firmware instalado no dispositivo, ou é carregado após o tempo de inicialização. Se é isso que você está perguntando, a resposta é não ...
Geralmente, os dispositivos com firmware têm o firmware programado no dispositivo (com um chip ROM ou um chip ROM programável), mas há alguns dispositivos em que o firmware é carregado no dispositivo no momento da inicialização. Posso pensar em algumas placas de rede e webcams que funcionam dessa maneira, mas tenho certeza de que há outras também.
only devices with some level of intelligence have firmware
? Eu diria que é o contrário, dispositivos simples (eletrônicos) podem não ter sistemas operacionais, mas possuem firmware.
O firmware implementa detalhes de baixo nível necessários para operar o hardware e fornece uma API / ABI para um nível superior. Um driver de dispositivo fornece um adaptador entre o sistema operacional e a API / ABI exposta pelo firmware.
A definição moderna ou o uso comum de firmware não tem nada a ver com uma funcionalidade específica de software. O firmware é simplesmente um software armazenado em chips de memória semicondutora não volátil (por exemplo, PROM, EEPROM ou flash), em vez de um dispositivo de armazenamento em massa, como um disco rígido. O software armazenado pode ser um binário vinculado monolítico ou consistir em carregador, kernel e módulos de aplicativos. (OTOH, vi algumas placas sintonizadoras de TV para PCs que exigem o carregamento de "firmware" pelo kernel do Linux para concluir a inicialização.)
A origem do termo tem a ver com lógica controlada por processador versus lógica conectada. O software armazenado nos discos rígidos pode ser facilmente modificado e atualizado. Revisões e atualizações da lógica conectada exigiam reformulação e substituição da placa ou módulo. O meio termo era um processador executando software para controlar o hardware. O software foi chamado empresa de utensílios para refletir o meio termo entre macio mercadoria contra duro lógica com fio. Originalmente, o firmware era armazenado em chips ROM, PROM ou EPROM, a fim de manter a modularidade da placa. O avanço da EEPROM e dos chips flash permitiu atualizações no circuito e a bordo do firmware.
À medida que os processadores (e periféricos) ficavam menores, mais baratos e com menos consumo de energia, as possibilidades de incorporá-los em todo tipo de dispositivo / dispositivo se expandiam. Para tornar o software para operar esses dispositivos robusto e seguro, o software é armazenado em chips de memória flash em vez de em um disco rígido; também torna o dispositivo menor e muito mais barato. O termo firmware foi expandido para abranger todo o software em dispositivos / dispositivos com processadores incorporados, mesmo que algumas partes do código armazenado não tenham relação com a substituição da lógica conectada.
Alguém postou esta pergunta recentemente , dizendo:
O firmware é uma combinação de memória persistente, código do programa e os dados armazenados nele. Exemplos típicos de dispositivos que contêm Firmware são sistemas incorporados, como semáforos, eletrodomésticos, relógios digitais, computadores, periféricos de computadores, telefones celulares e câmeras digitais. O firmware contido nesses dispositivos fornece o programa de controle para o dispositivo.
De fato, a drivers
tag do SuperUser é definida:
Um driver, também chamado de driver de dispositivo ou driver de software, é um software que permite que programas de computador de nível superior interajam com um dispositivo de hardware. Quando um programa de computador solicita interação com um determinado dispositivo de hardware, o driver processa as instruções e a conversão de saída entre o dispositivo e o programa de computador que está chamando o driver.
e a firmware
tag é definida:
Em geral, a diferença entre software e firmware é o nível em que ele interage com o hardware. O firmware interage no nível muito baixo do hardware, enquanto o software interage no nível alto. O firmware geralmente controla o tempo, os controles e a funcionalidade básicos do hardware.
Originalmente, eu pensava que firmware
era instalado diretamente no chip ou na placa e morava lá, e é por isso que ele precisa "piscar", enquanto você instalava umdriver
em cima de um sistema operacional.
Conclusão:
Firmware
permite que o hardware "faça" coisas e drivers
permite que o software interaja com o hardware.