Wat is een interface-stuurprogramma?
Een interfacestuurprogramma is een klein computerprogramma of een reeks programma's dat fungeert als een schakel tussen computersoftware en de hardware van een netwerkinterfacekaart (NIC). NIC-makers en -programmeurs gebruiken een specifieke Application Programming Interface (API) die bekend staat als de Network Driver Interface Specification (NDIS). Het bevat alle regels die nodig zijn voor een computerprogramma, zoals een besturingssysteem, om te communiceren met een NIC. Er zijn eigenlijk verschillende soorten interface-stuurprogramma's beschreven onder de NDIS, maar in essentie is de primaire taak van NDIS om een aantal lagen van het open systems interconnection (OSI) -model met elkaar te laten samenwerken.
Het OSI-model bestaat uit zeven lagen, waarvan sommige meerdere sublagen hebben. De eerste laag is de fysieke laag, die betrekking heeft op de fysieke specificaties voor een NIC zoals een USB-dongle (Universal Serial Bus), een Ethernet-kaart, een draadloze adapterkaart, enzovoort. De tweede en derde laag van het OSI-model zijn waar alle NDIS-magie gebeurt. De tweede laag is de datalinklaag en bestaat uit twee sublagen, waarvan de bovenste de logische koppelingsregeling (LLC) wordt genoemd en de onderste de mediatoegangscontrole (MAC). Een apparaatstuurprogramma verwerkt de MAC-sublaag, terwijl het interface-stuurprogramma de LLC-sublaag afhandelt en een interface biedt tussen deze en de derde laag van het OSI-model, de netwerklaag.
Werkend als intermediair, omhelst een NDIS in wezen alle verwarrende ingewikkeldheid van de hardware van een NIC en biedt een reeks functies voor zijn interactie met de netwerkprotocollen die nodig zijn voor communicatie. Een programmeur moet gewoon de regels volgen die in de NDIS zijn uiteengezet om de eigenlijke stuurprogramma's voor de interface te maken. Op het lagere hardwareniveau staan deze stuurprogramma's bekend als minipoortstuurprogramma's, terwijl de stuurprogramma's op het hoogste niveau worden geschreven met behulp van de NDIS API voor het verwerken van kernnetwerkprotocollen zoals het internetprotocol (IP), internetprotocolbeveiliging (IPsec), internetcontroleberichtenprotocol (ICMP) en Internetwork packet exchange (IPX), onder anderen.
Wanneer netwerkcommunicatie plaatsvindt via een NIC, worden de databits eerst ontvangen door het fysieke apparaat en vervolgens, via de architectuur van het OSI-model, worden de gegevens van de hardware naar de verschillende lagen van het OSI-model verplaatst totdat ze in een meer gemakkelijk te begrijpen door de gebruiker. Zo biedt elke laag van het model diensten voor zijn buren. De gegevens verlaten de eerste laag, de fysieke laag, en raken de MAC van de onderste sublaag in de tweede laag, waar het apparaatstuurprogramma deze doorgeeft aan de LLC. De protocolstuurprogramma's van de LLC verplaatsen deze vervolgens naar de netwerklaag.
Een ander type interface-stuurprogramma is het intermediaire stuurprogramma, dat fungeert als een behuizing, met interfaces voor zowel miniportstuurprogramma's als netwerkprotocolstuurprogramma's. Deze tussenliggende stuurprogramma's kunnen vervolgens aan elkaar worden gekoppeld en bieden de interface-stuurprogramma de mogelijkheid om het verkeer dat wordt ontvangen door de NIC te regelen. Tussenliggende stuurprogramma's zijn nuttig voor verschillende behoeften, zoals gegevensfiltering, taakverdeling, monitoring van netwerkverkeer en het verzamelen van statistische informatie. Ze werken ook goed als vertaler tussen oudere transportbestuurders en een minipoortbestuurder die praat met een mediaformaat dat de oudere bestuurder niet kan begrijpen.
De NDIS is oorspronkelijk bedacht door Microsoft®, in samenwerking met 3Com®, dus veel hardwaremakers schrijven hun stuurprogramma's om Microsoft®-besturingssystemen eerst te ondersteunen. Als gevolg hiervan is de NDIS beperkt tot computerhardware-architecturen op basis van de Intel® 80386-familie van 32-bits of 64-bits processors. De beweging van de vrije software heeft ook een programma ontwikkeld, genaamd NDISWrapper, dat in staat is interface-stuurprogramma's te laden die oorspronkelijk zijn ontwikkeld voor Microsoft® Windows® voor gebruik met gratis, Unix®-achtige besturingssystemen zoals Linux®. Gebruikers van de gratis derivaten van Berkley Software Distributions (BSD), zoals FreeBSD® en NetBSD®, vonden ook de mogelijkheid om Windows®-interfacestuurprogramma's te gebruiken door het gebruik van software die is ontwikkeld door een project dat Project Evil wordt genoemd. De x86 hardwarebeperkingen van NDIS hebben geleid tot een ander project, ontwikkeld door Apple en Novell®, genaamd de open data-link interface (ODI), die veel van dezelfde regels en functionaliteit bood als een NDIS maar met een focus op Apple® Macintosh &; en Novell NetWare®-systemen.