Skip to main content

O que é um driver de interface?

Um driver de interface é um pequeno programa de computador, ou um conjunto de programas, que atua como uma ligação entre o software do computador e o hardware de uma placa de interface de rede (NIC). Os fabricantes e programadores de NIC usam uma API (interface de programação de aplicativos) específica conhecida como NDIS (Network Driver Interface Specification). Ele estabelece todas as regras necessárias para um programa de computador, como um sistema operacional, interagir com uma NIC. Na verdade, existem vários tipos de drivers de interface descritos no NDIS, mas, em essência, a principal tarefa do NDIS é fazer com que algumas das camadas do modelo OSI (Open Systems Interconnection) cooperem entre si.

O modelo OSI é composto por sete camadas, algumas das quais possuem várias subcamadas. A primeira camada é a camada física, que lida com as especificações físicas de uma NIC, como um dongle de barramento serial universal (USB), uma placa Ethernet, uma placa adaptadora sem fio e assim por diante. A segunda e terceira camadas do modelo OSI são onde toda a mágica do NDIS acontece. A segunda camada é a camada de enlace de dados e consiste em duas subcamadas, a superior denominada controle de link lógico (LLC) e a inferior denominada controle de acesso à mídia (MAC). Um driver de dispositivo lida com a sub-camada MAC, enquanto o driver de interface lida com a sub-camada LLC, fornecendo uma interface entre ela e a terceira camada do modelo OSI, a camada de rede.

Trabalhando como intermediário, um NDIS envolve essencialmente toda a complexidade confusa do hardware de uma NIC e fornece um conjunto de funções para sua interação com os protocolos de rede necessários para a comunicação. Um programador simplesmente precisa seguir as regras estabelecidas no NDIS para criar os drivers de interface reais. No nível de hardware mais baixo, esses drivers são conhecidos como drivers de miniporta, enquanto os drivers de nível superior são gravados usando a API NDIS para lidar com protocolos de rede principais, como protocolo de Internet (IP), segurança de protocolo de Internet (IPsec), protocolo de mensagem de controle de Internet. (ICMP) e troca de pacotes entre redes (IPX), entre outros.

Quando a comunicação de rede ocorre por meio de uma NIC, os bits de dados são recebidos primeiro pelo dispositivo físico e, em seguida, pela arquitetura do modelo OSI, os dados são movidos do hardware pelas diferentes camadas do modelo OSI até que sejam apresentados em um formato mais facilmente compreensível pelo usuário. Assim, cada camada do modelo fornece serviços para seus vizinhos. Os dados deixam a primeira camada, a camada física, e atingem o MAC da subcamada inferior na segunda camada, onde o driver do dispositivo os repassa para a LLC. Os drivers de protocolo da LLC movem-no para a camada de rede.

Outro tipo de driver de interface é o driver intermediário, que funciona como um alojamento, contendo interfaces para drivers de miniporta e drivers de protocolo de rede. Esses drivers intermediários podem então ser encadeados e fornecer a capacidade do driver de interface de controlar o tráfego recebido pela NIC. Os drivers intermediários são úteis para diversas necessidades, como filtragem de dados, balanceamento de carga, monitoramento do tráfego de rede e coleta de informações estatísticas. Eles também funcionam bem como um tradutor entre drivers de transporte mais antigos e um driver de miniporta que fala com um formato de mídia que o driver mais antigo não consegue entender.

O NDIS foi originalmente desenvolvido pela Microsoft®, trabalhando em conjunto com a 3Com®, por isso muitos fabricantes de hardware escrevem seus drivers para dar suporte aos sistemas operacionais Microsoft® primeiro. Como resultado, o NDIS é limitado às arquiteturas de hardware de computador baseadas na família Intel® 80386 de processadores de 32 ou 64 bits. O movimento do software livre também desenvolveu um programa, chamado NDISWrapper, capaz de carregar drivers de interface originalmente desenvolvidos para o Microsoft® Windows® para uso com sistemas operacionais gratuitos, semelhantes ao Unix®, como o Linux®. Os usuários dos derivados livres da Berkley Software Distributions (BSD), como o FreeBSD® e o NetBSD®, também encontraram a capacidade de usar os drivers de interface do Windows® através do uso de software desenvolvido por um projeto conhecido como Projeto Mal. As limitações de hardware x86 do NDIS levaram a outro projeto, desenvolvido pela Apple e pela Novell®, chamado ODI (Open Data-Link Interface), que fornecia as mesmas regras e funcionalidades de um NDIS, mas com foco no Apple® Macintosh &; e sistemas Novell NetWare®.