Drivrutin

Från Wikipedia, den fria encyklopedin
Hoppa till navigation Hoppa till sökning

En enhetsdrivrutin , ofta bara kallad en drivrutin , är ett datorprogram eller en programvarumodul som styr interaktionen med anslutna, inbyggda ( hårdvara ) eller virtuella enheter. För detta ändamål kommunicerar föraren vanligtvis direkt med anordningen å ena sidan och utbyte styrsignaler och data med enheten via kommunikationsbussen (hårdvara interface ) eller ett grundläggande kommunikationssystem enligt den operativsystemet . Å andra sidan erbjuder drivrutinen operativsystemet och / eller applikationsprogramvaran ett standardiserat gränssnitt så att denna specifika enhet kan adresseras på samma sätt som liknande enheter från andra tillverkare.

På grund av sin funktion är enhetsdrivrutiner, till exempel skrivardrivrutiner, mycket maskin- och operativsystemberoende.

Termen drivrutin används också mer allmänt för programvara som implementerar ett gränssnitt till ett annat datasystem, dvs till en kombination av hårdvara och programvara (såsom JDBC -drivrutiner , protokolldrivrutiner). Även här möjliggör föraren standardiserad kommunikation med olika typer av system.

uppgift

Huvuduppgiften för enhetsdrivrutiner är att tillhandahålla maskinvarurelaterade funktioner genom maskinvaruabstraktionsskiktet . Alla typer av enheter är olika, även enheter som tjänar samma syfte. Även de olika modellerna av en enhet från samma tillverkare som lovar nya funktioner eller mer prestanda, till exempel, styrs ofta helt annorlunda.

Datorer och deras operativsystem kan inte förväntas hantera alla dessa olika typer, mycket mindre framtida enheter. För att lösa detta problem anger operativsystemet hur en enhetsklass ska hanteras. Enhetsdrivrutinerna tar sedan hand om översättningen av dessa funktionsanrop i operativsystemet till enhetsspecifika styrsignaler. Teoretiskt sett borde en helt ny enhet med en helt ny kontroll fungera utan problem så snart en drivrutin för den här enheten är tillgänglig. Operativsystemet bör kunna adressera det med samma funktionssamtal som alla andra enheter.

Ofta finns det många olika varianter av en drivrutin, främst beroende på maskinvaran som stöds, ofta också i olika (utvecklings) versioner. Dessutom måste det finnas en variant för varje operativsystem som stöds, eftersom gränssnitten för detta, till exempel med Microsoft Windows eller Linux , är väldigt olika. Dessutom finns det ett beroende av datorns och operativsystemets grundläggande arkitektur, även av bearbetningsbandbredden. Om det inte finns någon drivrutin för ett specifikt operativsystem eller en arkitektur kan en motsvarande miljö emuleras under vissa omständigheter, dvs ytterligare abstraktionslager kan läggas till.

Utan en lämplig drivrutin är en hårdvarukomponent värdelös om den inte fungerar självständigt och beror på programvarusupport.

Omfattande gränssnittsmodell

Om gränssnittsstandarden följer en övergripande standardiserad modell, erbjuder den operativsystemet eller applikationsprogramvaran möjligheten att adressera enheter av helt olika typer på ett ordnat sätt; Till exempel kan programvara för att spela ett musikstycke inte bara använda en ljudkortdrivrutin utan också skicka ljuddata via en nätverksdrivrutin, eftersom detta också kan acceptera en dataström. En särskild anpassning av applikationen till detta scenario är inte längre nödvändig. Den övergripande gränssnittsmodellen underlättar programmeringen av applikationsprogramvaran och möjliggör mer universell användning, även med framtida enhetstyper som fortfarande är okända. Vissa tidigare operativsystem, till exempel MS-DOS , inkluderade inte denna abstraktion.

utveckling

Att programmera en enhetsdrivrutin är i de flesta fall en utmaning, eftersom det kräver en fördjupad förståelse för hur en plattform fungerar, både på maskin- och programvarusidan.

Till skillnad från de flesta andra typer av programvara som kan stoppas genom att använda ett modernt operativsystem när som helst utan att påverka resten av systemet innebär en bugg i en enhetsdrivrutin i många fall att systemet kan kollapsa helt, vilket kan resultera i förlust av data eller (i extrema fall) även förstörelse av hårdvarudelar. Det är också svårt att felsöka enhetsdrivrutiner eftersom det ofta innebär att man övervakar själva maskinvaran. Därför är systemet som testas vanligtvis anslutet till en annan dator via det seriella gränssnittet. Testsystemet kan fjärrstyras och statusen kan efterfrågas när som helst.

Enhetsdrivrutiner skrivs därför vanligtvis av hårdvarutillverkarna själva, eftersom bara de vet maskinvarans exakta design. Det är också i hårdvarutillverkarnas intresse att kunderna får ut det mesta av sin produkt.

Ändå har många enhetsdrivrutiner utvecklats av utomstående under de senaste åren, främst för gratis operativsystem. Men även här är tillverkarens samarbete viktigt, eftersom omvänd konstruktion (ta reda på hur det fungerar) är mycket svårare med hårdvara än med programvara. Utan detta samarbete är det nästan omöjligt att programmera drivrutinsprogramvara.

Så kallade klassdrivrutiner (även kallade generiska drivrutiner ) är i stort sett oberoende av tillverkare. Ofta citerade exempel på detta är klassdrivrutiner för skrivare [1] eller för de enhetsklasser som kan anslutas till den universella seriebussen , där masslagringsenheter spelar en banbrytande roll här.

Problem

Särskilt äldre datorer har ofta inte längre nödvändiga databärare med enhetsdrivrutinerna. Eftersom vissa komponenter i datorn bara är otillräckligt märkta eller märkta är det ofta inte möjligt att få en lämplig drivrutin utan professionell hjälp, eftersom komponentens tillverkare inte är känd. Detta kan leda till problem i synnerhet om enhetsdrivrutinerna krävs efter att du t.ex. har installerat om operativsystemet. I sådana fall kan systeminformationsprogram, som ofta erbjuds som freeware , hjälpa. Dessa visar vanligtvis tillverkarens och modellnamnen efter ett systemtest så att den nödvändiga drivrutinen kan erhållas. Det finns också program som kan extrahera drivrutiner från ett system som fortfarande körs så att de kan integreras i det andra systemet. [2]

Ett annat problem är tillverkarens beroende av proprietära drivrutiner. Drivrutiner kan ofta bara köras på några få operativsystem och operativsystemversioner. Om användaren vill använda en ny version av operativsystemet beror han på tillverkarens drivrutiner. Funktionella hårdvarukomponenter med egna drivrutiner kan ofta inte köras med nyare operativsystem. Detta är ofta relaterat till de kommersiella intressena för hårdvarutillverkare som vill sälja ny hårdvara. Denna nackdel mildras med drivrutiner med öppen källkod . Förarna måste också anpassas till det nyare systemet, men användaren kan själv bidra till utvecklingen eller föreslå förändringar.

litteratur

webb-länkar

Wiktionary: Device drivers - förklaringar av betydelser, ordets ursprung, synonymer, översättningar

Individuella bevis

  1. ^ Microsoft: Windows 8 Consumer Preview är tillgänglig för nedladdning - Artikel på Golem.de , 29 februari 2012 (öppnas den: 1 mars 2012)