Firmware é um software que é executado em um processador no próprio dispositivo, não no processador principal. É mais provável que o firmware seja de código fechado do que os drivers por diversos motivos.
O firmware deve ser feito apenas uma vez, enquanto sistemas operacionais diferentes exigem drivers diferentes. Portanto, os fabricantes de hardware têm um incentivo para permitir que terceiros escrevam seus próprios drivers para seu sistema operacional favorito, enquanto não há incentivo para o firmware.
O firmware está mais próximo do hardware, e as empresas de hardware geralmente querem manter o funcionamento do hardware em segredo. Portanto, eles não gostam de revelar como o firmware foi feito também.
Firmware é muito mais difícil de fazer engenharia reversa do que o código do driver. Geralmente, os dispositivos periféricos não podem ser depurados facilmente, ao contrário dos drivers que estão sendo executados na CPU principal. Além disso, o firmware está sendo executado em um ambiente que muitas vezes é mal documentado (se houver poucos tipos de CPU, quais dispositivos de E / S são mapeados para quais endereços são extremamente variáveis).
No caso de drivers de Wi-Fi, há um problema adicional. A lei na maioria das localidades proíbe o uso de certas radiofreqüências e determina que os dispositivos de consumo sejam protegidos contra a transmissão nessas freqüências proibidas. Muitas vezes o hardware é bastante flexível e a única proteção está no firmware. Se o fabricante facilitasse muito a modificação do firmware para transmitir em freqüências proibidas, eles poderiam violar essas regulamentações.