Ein drivar er ein programmodul som gjer det mogleg for operativsystemet å kommunisere med maskinvara i datamaskinar. I tillegg til dei ulike einingane på hovudkortet trengst drivarar for I/O-einingar, som platelagret, grafikkort, mus, nettverkskort, USB- og IEEE 1394-kontrollarar, skrivarar, skannerar og så vidare[1][2][3].

Drivararkitektur.

Verkemåte endre

Drivar kommuniserer med maskinvara i I/O-einigar ved å skriva til eller lesa frå registre i I/O-einingane, som er plasserte i eit verna addresseområde som berre program som køyrer i kjernemodus har tilgang til. Drivarar køyrer difor i kjernemodus og vert kontrollerte av kjernen i operativsystemet, anten direkte eller via eit lågnivå programvarelag kalla maskinvareabstraksjonslaget. Drivarar er ofte sett saman av fleire modular. For at brukarprogram skal vera i stand til å kommunisera med drivarane køyrer nokre modular i brukarmodus.

All kommunikasjon med brukarprogram skjer via eit avgrensa programmeringsgrensesnitt, så når eit brukarprogram ynskjer å kommunisera med drivaren kallar det opp ein av funksjonane som er tilgjengeleg i dette grensesnittet. Drivarar kan heller ikkje ta direkte kontakt med brukarprogram, men må kommunisera via eit maskinvareabstraksjonslag. Typiske grunnar til at ein drivar initialiserer kommunikasjon er at eit tastetrykk eller eit museklikk har generert eit interrupt, eller at ein buffer i eit nettverks- eller lydkort held på å verta full eller tom. Drivaren kallar da opp ein attendekallfunksjon som overfører eller hentar data til/frå maskinvareabstraksjonslaget.

Tilgjenge av drivarar for ulike operativsystem endre

Drivarar vert skrivne spesifikt for maskinvara dei kontrollerer og for kvart einskild operativsystemet. Det er best utval av drivarar for kommersielle operativsystem, som Windows og OS X. Produsentar utviklar sjeldan drivarar for opne system som Linux/BSD, men ofte er det skrive open kjeldekodedrivarar for UNIX-variantar som Linux, FreeBSD, Solaris og så vidare. For dei fleste hovudkorta, grafikkorta, nettverkskorta, skivarar, osb. som har vore på marknaden ei stund finst det som oftast drivarar for Linux, men ikkje alle lydkort har Linux-drivarar. Eksterne lydkort med USB eller IEEE 1394-grensesnitt har generiske Linux-drivarar, men det er ikkje alltid at funksjonalitet som maskinvaremiksarar kan kontrollerast via desse drivarane.

Kjelder endre

  1. Rubini, A. og Corbet, J., Linux Device Drivers, 2. utg., O'Reilly, 2001.
  2. Singh, A., Mac OS X internals - A systems approach, Addison-Wesley, 2007.
  3. Cant, C., Writing Windows WDM device drivers, R&D Books, 1999.