Hva er en grensesnittdriver?
En grensesnittdriver er et lite dataprogram, eller et sett med programmer, som fungerer som en forbindelse mellom datamaskinprogramvare og maskinvaren til et nettverkskort (NIC). NIC-produsenter og programmerere bruker et spesifikt applikasjonsprogrammeringsgrensesnitt (API) kjent som nettverksdrivergrensesnittspesifikasjonen (NDIS). Den angir alle regler som er nødvendige for at et dataprogram, for eksempel et operativsystem, skal samhandle med et NIC. Det er faktisk flere typer grensesnittdrivere som er beskrevet under NDIS, men i hovedsak er NDISs primære jobb å få et par av OSI-modellens lag for åpne systemer til å samarbeide med hverandre.
OSI-modellen består av syv lag, hvorav noen har flere underlag. Det første laget er det fysiske laget, som omhandler de fysiske spesifikasjonene for en NIC, for eksempel en universell seriell buss (USB) dongle, et Ethernet-kort, et trådløst adapterkort og så videre. Det andre og tredje laget av OSI-modellen er der all NDIS-magien skjer. Det andre laget er datalinklaget og består av to underlag, det øvre referert til som den logiske lenkkontrollen (LLC) og det nedre kalt media access control (MAC). En enhetsdriver håndterer MAC-underlaget, mens grensesnittdriveren håndterer LLC-underlaget, og gir et grensesnitt mellom det og det tredje laget av OSI-modellen, nettverkslaget.
Arbeidet som en mellommann, pakker en NDIS i hovedsak all forvirrende intrikat av en NICs maskinvare og gir et sett med funksjoner for sin interaksjon med nettverksprotokollene som er nødvendige for kommunikasjon. En programmerer må ganske enkelt følge reglene som er angitt i NDIS for å lage de faktiske grensesnittdriverne. På det lavere maskinvarenivået er disse driverne kjent som miniportdrivere, mens driverne på det øverste nivået er skrevet ved å bruke NDIS API for å håndtere kjerne nettverksprotokoller som Internet Protocol (IP), Internet Protocol Security (IPsec), Internet control melding protokoll (ICMP), og Internetwork-pakkeutveksling (IPX), blant andre.
Når nettverkskommunikasjon skjer via en NIC, blir datamaskinene først mottatt av den fysiske enheten, og deretter, gjennom OSI-modellens arkitektur, blir dataene flyttet fra maskinvaren opp i de forskjellige lagene i OSI-modellen til de blir presentert i et format mer lett forståelig av brukeren. Dermed gir hvert lag av modellen tjenester for sine naboer. Dataene forlater det første laget, det fysiske laget, og treffer MAC for det nedre underlaget i det andre laget, der enhetsdriveren fører det videre til LLC. LLCs protokolldrivere flytter den deretter opp til nettverkslaget.
En annen type grensesnittdriver er den mellomliggende driveren, som fungerer som noe av et hus, og inneholder grensesnitt for både miniportdrivere og nettverksprotokolldrivere. Disse mellomliggende driverne kan deretter lenkes sammen og gi muligheten for grensesnittdriveren til å kontrollere trafikken som mottas av NIC. Mellomdrivere er nyttige for forskjellige behov, for eksempel datafiltrering, belastningsbalansering, overvåking av nettverkstrafikk og innsamling av statistisk informasjon. De fungerer også bra som en oversetter mellom eldre transportdrivere og en miniportdriver som snakker med et medieformat den eldre sjåføren ikke kan forstå.
NDIS ble opprinnelig utviklet av Microsoft®, og samarbeidet med 3Com®, så mange maskinvareprodusenter skriver driverne sine for å støtte Microsoft® operativsystemer først. Som et resultat er NDIS begrenset til maskinvarearkitekturer basert på Intel® 80386-familien til enten 32-biters eller 64-biters prosessorer. Den frie programvarebevegelsen har også utviklet et program, kalt NDISWrapper, som er i stand til å laste inn grensesnittdrivere som opprinnelig var utviklet for Microsoft® Windows® for bruk sammen med gratis, Unix®-lignende operativsystemer som Linux®. Brukere av Berkley Software Distributions (BSD) -frie derivater, for eksempel FreeBSD® og NetBSD®, fant også muligheten til å bruke Windows®-grensesnittdrivere ved bruk av programvare utviklet av et prosjekt kjent som Project Evil. X86 maskinvarebegrensningene til NDIS førte til et annet prosjekt, utviklet av Apple og Novell®, kalt open data-link interface (ODI), som ga mye av de samme reglene og funksjonaliteten som en NDIS, men med fokus på Apple® Macintosh &; og Novell NetWare®-systemer.