Vad är en gränssnittsdrivrutin?

En gränssnittsdrivrutin är ett litet datorprogram, eller en uppsättning program, som fungerar som en länk mellan datorprogramvara och hårdvaran på ett nätverkskort (NIC). NIC-tillverkare och programmerare använder ett specifikt applikationsprogrammeringsgränssnitt (API) känt som nätverksdrivrutinsgränssnittsspecifikationen (NDIS). Den anger alla regler som krävs för att ett datorprogram, såsom ett operativsystem, ska kunna interagera med ett nätverkskort. Det finns faktiskt flera typer av gränssnittsdrivrutiner som beskrivs under NDIS, men i huvudsak är NDIS primära uppgift att få ett par av OSI-modellens lager att samarbeta med varandra.

OSI-modellen består av sju lager, av vilka några har flera underlager. Det första lagret är det fysiska lagret, som behandlar de fysiska specifikationerna för ett nätverkskort som en universal serial bus (USB) dongel, ett Ethernet-kort, ett trådlöst adapterkort och så vidare. Det andra och tredje lagret av OSI-modellen är där all NDIS-magi händer. Det andra skiktet är datalänkskiktet och består av två underskikt, det övre hänvisat till som logisk länkkontroll (LLC) och det nedre benämnt mediaåtkomstkontroll (MAC). En enhetsdrivrutin hanterar MAC-underlagret, medan gränssnittsdrivrutinen hanterar LLC-underlagret, vilket ger ett gränssnitt mellan det och det tredje lagret i OSI-modellen, nätverkslagret.

Genom att arbeta som en mellanhand, täcker en NDIS i huvudsak all den förvirrande intrikataheten hos ett nätverkskorts hårdvara och tillhandahåller en uppsättning funktioner för dess interaktion med de nätverksprotokoll som krävs för kommunikation. En programmerare måste helt enkelt följa reglerna som anges i NDIS för att skapa de faktiska gränssnittsdrivrutinerna. På den lägre hårdvarunivån är dessa drivrutiner kända som miniportdrivrutiner, medan drivrutinerna på den övre nivån skrivs med hjälp av NDIS API för att hantera kärnnätverksprotokoll som Internetprotokoll (IP), Internetprotokollsäkerhet (IPsec), Internetkontrollmeddelandeprotokoll (ICMP) och Internetwork-paketutbyte (IPX), bland annat.

När nätverkskommunikation sker via ett NIC, tas databitarna först emot av den fysiska enheten och sedan, genom OSI-modellens arkitektur, flyttas data från hårdvaran upp i de olika lagren i OSI-modellen tills de presenteras i ett format mer lätt att förstå för användaren. Således tillhandahåller varje lager i modellen tjänster för sina grannar. Data lämnar det första lagret, det fysiska lagret, och träffar MAC för det nedre dellagret i det andra lagret, där enhetsdrivrutinen skickar det vidare till LLC. LLC:s protokolldrivrutiner flyttar sedan upp det till nätverkslagret.

En annan typ av gränssnittsdrivrutin är den mellanliggande drivrutinen, som fungerar som något av ett hus, som innehåller gränssnitt för både miniportdrivrutiner och nätverksprotokolldrivrutiner. Dessa mellanliggande drivrutiner kan sedan kedjas samman och ge möjligheten för gränssnittsföraren att styra trafiken som tas emot av NIC. Mellanliggande drivrutiner är användbara för olika behov, såsom datafiltrering, lastbalansering, övervakning av nätverkstrafik och insamling av statistisk information. De fungerar även bra som översättare mellan äldre transportförare och en miniportschaufför som pratar med ett mediaformat som den äldre föraren inte kan förstå.
NDIS skapades ursprungligen av Microsoft®, i samarbete med 3Com®, så många hårdvarutillverkare skriver sina drivrutiner för att stödja Microsoft® operativsystem först. Som ett resultat är NDIS begränsad till datorhårdvaruarkitekturer baserade på Intel® 80386-familjen av antingen 32-bitars eller 64-bitars processorer. Den fria mjukvarurörelsen har också utvecklat ett program, kallat NDISWrapper, som kan ladda gränssnittsdrivrutiner som ursprungligen utvecklades för Microsoft® Windows® för användning med gratis, Unix®-liknande operativsystem som Linux®. Användare av Berkley Software Distributions (BSD) fria derivat, såsom FreeBSD® och NetBSD®, fann också möjligheten att använda Windows®-gränssnittsdrivrutiner genom att använda programvara som utvecklats av ett projekt som kallas Project Evil. X86-hårdvarubegränsningarna för NDIS ledde till ett annat projekt, utvecklat av Apple och Novell®, kallat open data-link interface (ODI), som gav mycket av samma regler och funktionalitet som en NDIS men med fokus på Apple® Macintosh&; och Novell NetWare®-system.