Diferença e relação entre firmware e driver de dispositivo

26
  1. Como o firmware e o driver de dispositivo diferente e relacionado? Acho que ambos dispositivos de controle?
  2. O firmware é sempre auto-inicializável, enquanto o driver deve ser executado / inicializado pelo sistema operacional?
por Tim 20.06.2011 / 04:43

4 respostas

24

  1. Firmware é o software que é executado no dispositivo. Um driver é o software que informa ao seu sistema operacional como se comunicar com o dispositivo. Nem todos os dispositivos têm dispositivos somente de firmware com algum nível de inteligência.

  2. Não sei exatamente o que você quer dizer ... em geral, o firmware não tem nada a ver com "inicialização" ... Acho que talvez o que você esteja perguntando é: os dispositivos com firmware sempre têm o firmware instalado no dispositivo, ou é carregado após o boot. Se é isso que você está perguntando, a resposta é não ...

Mais comumente, 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 operam dessa maneira, mas tenho certeza de que existem outras também.

    
por 20.06.2011 / 04:55
5
O

Firmware implementa detalhes de baixo nível que são necessários para operar o hardware e fornece uma API / ABI a um nível mais alto. nível. Um driver de dispositivo fornece um adaptador entre o sistema operacional e a API / ABI expostos pelo firmware.

    
por 20.06.2011 / 04:48
4

A definição moderna ou uso comum de firmware não tem nada a ver com uma funcionalidade de software específica. Firmware é simplesmente um software que é armazenado em chips de memória semicondutores não voláteis (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 ligado monolítico, ou consistir em módulos loader, kernel e application. (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 a lógica controlada pelo processador versus a lógica com fio. O software armazenado em discos rígidos pode ser facilmente modificado e atualizado. Revisões e atualizações para a lógica hardwired exigiram o reprojeto e a substituição do módulo ou da placa. O meio termo era um processador que executava software para controlar o hardware. O software foi chamado de firm ware para refletir o meio termo entre a lógica wired soft versus a hard . Originalmente, o firmware era armazenado em chips ROM, PROM ou EPROM para manter a modularidade da placa. O avanço da EEPROM e dos chips flash permitiu atualizações no circuito e na placa do firmware.

À medida que os processadores (e periféricos) ficaram menores, mais baratos e com menos consumo de energia, aumentaram as possibilidades de incorporá-los em todos os tipos de dispositivos / aparelhos. A fim de 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; Isso 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 embarcados, mesmo que algumas partes do código armazenado não tenham relação com a substituição da lógica com fio.

    
por 20.06.2011 / 10:12
3

Alguém postou esta pergunta recentemente , dizendo:

Firmware is a combination of persistent memory, program code, and the data stored in it. Typical examples of devices containing Firmware are embedded systems such as traffic lights, consumer appliances, digital watches, computers, computer peripherals, mobile phones, and digital cameras. The Firmware contained in these devices provides the control program for the device.

Na verdade, a tag drivers do SuperUser é definida:

A driver, also called a device driver or software driver is software that allows higher-level computer programs to interact with a hardware device. When a computer program requests interaction with a certain hardware device, the driver will handle instruction and output translation between the device and the computer program invoking the driver.

e a tag firmware está definida:

In general, the difference between software and firmware is the level at which it interacts with the hardware. Firmware interacts at the very low level of the hardware while software interacts at high levels. Firmware generally controls the basic timing, controls and functionality of hardware.

Originalmente, achei que firmware foi instalado diretamente no chip ou na placa e morou lá, e é por isso que ele precisa ser "flashed", enquanto você instalaria um driver no topo de um sistema operacional.

Conclusão:

Firmware permite que o hardware "faça" coisas e drivers permite que o software interaja com o hardware.

    
por 21.02.2015 / 03:09