Qu'est-ce qu'un pilote d'interface?
Un pilote d’interface est un petit programme informatique, ou un ensemble de programmes, qui sert de liaison entre le logiciel informatique et le matériel d’une carte d’interface réseau (NIC). Les fabricants de cartes réseau et les programmeurs utilisent une interface de programmation d'application (API) spécifique appelée spécification d'interface de pilote de réseau (NDIS). Il énonce toutes les règles nécessaires pour qu'un programme informatique, tel qu'un système d'exploitation, puisse interagir avec une carte réseau. Il existe en fait plusieurs types de pilotes d’interface décrits dans le NDIS, mais son travail consiste essentiellement à faire coopérer quelques couches du modèle d’interconnexion de systèmes ouverts (OSI).
Le modèle OSI est composé de sept couches, dont certaines comportent plusieurs sous-couches. La première couche est la couche physique, qui traite des spécifications physiques d'une carte réseau, telle qu'un dongle USB, une carte Ethernet, une carte adaptateur sans fil, etc. Les deuxième et troisième couches du modèle OSI sont l’endroit où se déroule toute la magie de NDIS. La deuxième couche est la couche liaison de données et comprend deux sous-couches, la partie supérieure appelée contrôle de liaison logique (LLC) et la partie inférieure appelée contrôle d'accès au support (MAC). Un pilote de périphérique gère la sous-couche MAC, tandis que le pilote d'interface gère la sous-couche LLC, fournissant une interface entre celui-ci et la troisième couche du modèle OSI, la couche réseau.
En tant qu'intermédiaire, un NDIS résout essentiellement toute la complexité déroutante du matériel d'une carte réseau et fournit un ensemble de fonctions permettant son interaction avec les protocoles réseau nécessaires à la communication. Un programmeur doit simplement suivre les règles énoncées dans le NDIS pour créer les pilotes d’interface réels. Au niveau matériel inférieur, ces pilotes sont appelés pilotes de miniport, tandis que les pilotes de niveau supérieur sont écrits à l'aide de l'API NDIS pour gérer les protocoles réseau de base tels que le protocole Internet (IP), la sécurité du protocole Internet (IPsec), le protocole de message de contrôle Internet (ICMP) et l’échange de paquets interréseaux (IPX), entre autres.
Lorsque la communication réseau se produit via une carte réseau, les bits de données sont d'abord reçus par le périphérique physique, puis, via l'architecture du modèle OSI, les données sont déplacées du matériel vers les différentes couches du modèle OSI jusqu'à ce qu'elles soient présentées dans un format plus détaillé. facilement compréhensible par l'utilisateur. Ainsi, chaque couche du modèle fournit des services à ses voisins. Les données quittent la première couche, la couche physique, et atteignent le MAC de la sous-couche inférieure de la deuxième couche, où le pilote de périphérique les transmet à la LLC. Les pilotes de protocole de la LLC le déplacent ensuite vers la couche réseau.
Un autre type de pilote d'interface est le pilote intermédiaire, qui fait office de boîtier, contenant des interfaces pour les pilotes de miniport et les pilotes de protocole réseau. Ces pilotes intermédiaires peuvent ensuite être chaînés et permettre au pilote d'interface de contrôler le trafic reçu par la carte réseau. Les pilotes intermédiaires sont utiles pour divers besoins, tels que le filtrage des données, l'équilibrage de la charge, la surveillance du trafic réseau et la collecte d'informations statistiques. Ils fonctionnent également bien en tant que traducteur entre les pilotes de transport plus anciens et un pilote de miniport qui communique avec un format multimédia que le pilote plus ancien ne peut pas comprendre.
Le NDIS a été initialement conçu par Microsoft®, en collaboration avec 3Com®. C'est pourquoi de nombreux fabricants de matériel écrivent leurs pilotes pour prendre en charge les systèmes d'exploitation Microsoft®. Par conséquent, le NDIS est limité aux architectures de matériel informatique basées sur la famille Intel® 80386 de processeurs 32 bits ou 64 bits. Le mouvement des logiciels libres a également développé un programme, appelé NDISWrapper, capable de charger des pilotes d’interface développés à l’origine pour Microsoft® Windows® et destinés à être utilisés avec des systèmes d’exploitation libres de type Unix® tels que Linux®. Les utilisateurs des dérivés libres de Berkley Software Distributions (BSD), tels que FreeBSD® et NetBSD®, ont également découvert la possibilité d'utiliser des pilotes d'interface Windows® via l'utilisation d'un logiciel développé par un projet appelé Project Evil. Les limitations matérielles x86 de NDIS ont conduit à un autre projet, développé par Apple et Novell®, appelé interface de liaison de données ouverte (ODI), qui fournissait une grande partie des mêmes règles et fonctionnalités qu'un NDIS mais centré sur Apple® Macintosh &; et les systèmes Novell NetWare®.