No contexto do kernel Linux, firmware é um software que roda em outro processador no sistema, por exemplo um controlador sem fio, uma GPU, um controlador SCSI ... Este software costumava ser armazenado em ROM (de vários tipos) ligados ao controlador relevante, mas para reduzir custos e tornar as atualizações mais simples, os controladores agora tendem a confiar no sistema operacional host para carregar seu firmware para eles.
Assim, os arquivos de firmware não são usados pelo kernel, eles são carregados pelo kernel em outras peças de hardware. Isso também é o que torna vagamente aceitável ter software sem código-fonte em sistemas FLOSS: o argumento é que ele não está sendo executado na CPU principal, mas em outro dispositivo.