O que é “firmware” na terminologia do Linux?

12

Estou ficando confuso com o uso do firmware no contexto do Linux.

Meu entendimento de firmware & driver é que o firmware é o código que é executado no hardware básico de um dispositivo, como um IC Bluetooth, ou controlador de teclado, ou placa de vídeo, ou um microcontrolador de finalidade única. O firmware expõe uma interface para o sistema operacional usar seus serviços.

O driver, em comparação, é o software que o kernel usa para se comunicar com as interfaces mencionadas anteriormente fornecidas pelo firmware. Assim, um driver de vídeo, um driver de teclado, um driver de rádio bluetooth.

Então, por que é que continuo lendo sobre a necessidade de instalar os arquivos de firmware do Linux (por exemplo, aqui ). Estes são enviados para o hardware? Esses arquivos são usados pelo kernel? Qual é o significado de firmware neste contexto?

    
por wopwop 19.04.2017 / 19:21

1 resposta

18

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.

    
por 19.04.2017 / 19:50

Tags