O que faz um driver de placa de rede?

2

O sistema operacional não pode gravar diretamente os dados no barramento PCI e a placa de rede simplesmente os enviaria pelo cabo? O que o driver faz e de que maneira isso difere para cada chipset da placa de rede?

    
por futlib 25.05.2011 / 12:13

4 respostas

1

Cada chip de rede terá diferentes registradores de E / S, buffers mapeados na memória, formas de detectar velocidades de interface e todos os tipos de outras diferenças técnicas fundamentais.

O trabalho do driver é simplesmente abstrair essas diferenças para que o O / S tenha uma API comum para mover pacotes das camadas mais altas da rede para o hardware (e vice-versa).

    
por 25.05.2011 / 12:25
0

Em termos gerais, qualquer driver de dispositivo atua como uma interface entre a visão 'abstrata' do hardware que o sistema operacional possui e o chipset 'físico' que realmente existe na placa.

Essa camada de abstração permite que diferentes hardwares de diferentes fornecedores sejam usados em muitos sistemas operacionais diferentes. Ele também permite que dispositivos de 'software' (como um dispositivo de loopback de rede) sejam implementados que não tenham qualquer hardware subjacente para controlar.

Para encontrar exatamente o que um determinado driver faz, você precisa entender as fichas de dados dos chips que ele controla.

    
por 25.05.2011 / 12:58
0

Poderia, mas o problema é que cada fabricante de chipsets NIC projeta seus dispositivos de maneira diferente e, portanto, um modelo de NIC pode exigir que você escreva em um endereço e outro modelo pode exigir que você escreva em outro endereço. Além de examinar as folhas de dados do chipset da NIC, como o @Roddy sugere para saber exatamente como elas funcionam, você também pode ver a origem dos drivers Linux para esse chipset.

Algumas NICs avançadas usam DMA e funcionam de acordo com o que você diz. O motorista nesse caso realmente não faz muito.

É mais fácil atualizar um único sistema operacional com um novo driver do que dar a volta e atualizar todos os programas que usam uma NIC.

    
por 27.05.2011 / 05:04
0

Cada peça de hardware é diferente de outras da mesma classe, mesmo quando aderidas aos padrões. É por isso que você precisa de motoristas; para simplificar o uso do hardware, fornecendo uma interface comum. Você perguntou se o sistema operacional pode simplesmente gravar na saída. Sim pode; ele faz isso através de seus drivers.

Mais especificamente sobre as placas de rede, você pergunta se o SO pode gravar no barramento PCI, através da placa, do cabo e da Internet. O problema com essa questão é que você não está familiarizado com a rede. É uma coisa complexa que está além de apenas enviar uma voltagem por um fio. Você está se esquecendo de todo o trabalho que permite que uma Web tão complexa funcione como todo o endereçamento e tal, não é apenas codificar ou decodificar um sinal elétrico.

Você vai querer examinar o modelo OSI para saber como funciona a rede. Ele separa o trabalho de transferir dados entre computadores (ou outros dispositivos) em sete “camadas”. Cada camada é responsável por sua própria parte; o sistema operacional desempenha o seu papel, assim como o driver e o próprio cartão.

    
por 27.05.2011 / 05:54