Driverarkitektur.
Denne artikkelen omhandler programtypen.  For filmen, se Driver (film).  For videospillserien, se Driver (videospillserie).
**Drivere** (også kalt driverrutiner og utstyrsdrivere; av engelsk *device drivers*) er programmer som fungerer som tolk mellom et operativsystem og en datamaskins inn- og utenheter (maskinvare). Typiske drivere er skjermkortdrivere, skriverdrivere, musedrivere og nettverkskortdrivere.

Etter hvert som en del maskinvare har blitt stadig vanligere, har de fått støtte i BIOS eller i selve operativsystemene (Windows, macOS og GNU/Linux), slik at drivere for disse tingene ikke trengs. Men utviklingen av maskinvare står heller ikke stille, og det store mangfoldet av maskinvare som virker på forskjellige måter skaper samtaleproblemer med operativsystemene. I tillegg kan produsenten ha forbedret driverne etter at operativsystemet ble laget. Derfor er det vanlig at drivere følger med maskinvaren når den kjøpes. Fordi drivere må tilpasses hvert enkelt operativsystem, er det snarere unntaket enn regelen at maskinvareprodusenter lager drivere for alle aktuelle operativsystemer. Som regel blir det laget drivere til de kommersielle operativsystemene, det vil si til Windows og macOS.

**Driverproblemet** kan unngås ved å kjøpe maskinvare som fungerer uten drivere. Da følger det heller ikke med noen drivere. Datamaskinens BIOS må ha drivere for enheter som brukes før operativsysemet lastes: Tastaturer, mus og lagringmsmediet med det aktuelle operativsystem (i dag oftest harddisken; av og til også USB-minnekort eller nettverkskort), samt en enkel driver som gjør at skjermkortet kan vise tekst på skjermen. Hvis det følger med en CD med det butikken gjerne kaller "programvare" til maskinvaren du har kjøpt, er det en god sjanse for at den inneholder drivere. Hvis du er nødt til å installere programmer for å få maskinvaren din til å virke, kan du være sikker på at det dreier seg om drivere. Like sikker kan du være på at disse ikke virker hvis du har et annerledes operativsystem enn det maskinvareprodusenten trodde du skulle ha.

Fra styrekoder til sidespråk
----------------------------

Forløpere for dagens drivere og sidespråk (sidebeskrivelsesspråk) for skrivere var enkle *styrekoder*, ofte i form av *escape-sekvenser*, hvor skriveren med et escape-tegn fikk beskjed om at neste tegn ikke skulle skrives ut, men inneholdt en innstilling. For Xerox' Diablo 630, som ble en standard for typehjulsskrivere, betydde f.eks. et escape-tegn etterfulgt av *E* at de påfølgende tegn skulle understrekes inntil skriveren fikk kommandoen ESC R.  Etter hvert som skriverne fikk stadig flere funksjoner, tilkom stadig flere styrekoder, og da laserskriverne fikk egentlige *sidespråk* (sidebeskrivelsesspråk), trengtes stadig mer kompliserte og omfattende drivere.

Eksempler på drivere
--------------------

* Skjermkortprodusenten nVidia leverer drivere for blant annet Windows 7, 8, 8.1 og 10, noen varianter av GNU/Linux,  Solaris og FreeBSD. Utvalget varierer noe fra kort til kort. Også til ATI-kort – både fra før og etter at ATI ble kjøpt opp av AMD – finnes drivere for en del Linux-varianter.
* Canon oppgir at de for en av sine blekkskrivere leverer drivere for Windows ME, Windows 2000 og nyere, Mac OS X og Mac OS, samt 32- og 64-bits Linux.

Ikke alle maskinvareprodusenter har gitt lov til å integrere støtte for sine skjermkort i operativsystemer, slik mange linuxdistributører har ønsket. I dag er utviklerne av fri programvare de største pådriverne til å integrere driverfunksjoner i operativsystemene. Linuxdistribusjoner kan vanligvis også bruke egne varianter av skjermdrivere, slik som *Nouveau,* dersom man ikke ønsker å installere proprietær programvare programvare.

Referanser
----------

1. ↑  «Arkivert kopi» (PDF). Arkivert fra originalen (PDF) 4. september 2017. Besøkt 13. oktober 2019.
2. ↑  Nvidia
3. ↑  Canon
4. ↑  «Nouveau: Accelerated Open Source driver for nVidia cards» **(engelsk)**. freedesktop.org. 25. juni 2021. Besøkt 16. september 2021.

|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | GND **·** LCCN **·** BNF **·** BNF (data) **·** NDL **·** BNE
 |