En enhedsdriver er et stykke software, der forenkler interaktionen mellem programmer og en hardwareenhed tilsluttet computeren . En enhedsdriver er både hardware og udstyr specifik. I nogle tilfælde kan anvendelsen af en chauffør adskilles i logiske og fysiske lag , så en del af den kode, der skal deles af en lignende klasse af enhed, såsom en printer eller en monitor . Operativsystemet (OS) definerer specifikke mekanismer, der tillader applikationer at lære af tilgængeligheden og kapaciteten i en hardwareenhed , og integrere dens funktioner i programmet adfærd. Instruktioner
1
Studér de vejledninger, der beskriver de mekanismer , som den hardware enhed til at kontrollere dens funktioner. Interaktioner typisk tage form af signaler , der kort på kommandoer , der producerer understøttede adfærd.
2
Lær det grundlæggende i at skrive en driver til dit mål operativsystem. Dette giver et samlet indtryk af processen for at følge for at gøre hardware -tjenester tilgængelige. Føreren rammer angiver detaljerne for at bruge undtagelser , så bilister til at operere på kerne niveau normalt begrænset til operativsystemet.
3
Skriv en simpel shell driver, der indeholder de grundlæggende mekanismer tilslutte en enhed driver til et program. De fleste rammer giver eksempler og tutorial kode , der vil producere en simpel implementering , der kan bruges som grundlag for din driver . Denne skal skal give de mekanismer til korrekt at starte op og lukke ned driver før og efter specifikke påkaldelser .
4
Bestem den enklest mulige hardware funktion, du kan implementere . Denne øvelse giver de grundlæggende elementer i programmering en interaktion , kontrollere, at hardwaren er tilsluttet korrekt til computeren og kommunikere . Det er almindeligt at starte med en simpel envejs anmodning , der aktiverer en lys eller lyd mekanisme til at bekræfte vellykket transmission af meddelelsen . Denne proces lærer dig, hvordan at indlede, sende og lukke et samspil med enheden.
5
Tackle mere avancerede interaktioner én ad gangen , der bygger på viden på tidligere trin. Eksempler omfatter operationer, vente på et datasvar skal returneres til føreren, enten synkront eller asynkront . Disse interaktioner kan kræve at indføre mekanismer , der blokerer fuldbyrdelsen, indtil der modtages et svar , eller ind i en stat, som tillader modtagelse af et svar og reaktion på et senere tidspunkt .
6
Implement data manipulationer til opnåelse af resultaterne i danne forventet af kaldende program . Nogle driver rammer tillader adskillelse af kode i kernel og bruger- niveau. Brugeren plan, hvor ansøgningerne betjene, er mere begrænset , men mindre i stand til at resultere i systemet ustabilitet. Hvis operativsystemet understøtter denne funktion , disse manipulationer er kandidater til at blive gennemført på brugerniveau , hvis de kræver ingen kerne niveau undtagelser.
7
Returner data til programmet og ordentligt tætte ressourcer, der blev brugt af din driver . I nogle tilfælde kan en chauffør støtte direkte interaktion med enheden ved ansøgningen. I dette tilfælde skal føreren holde midler til rådighed indtil specifikt instrueret i at lukke ned på et senere tidspunkt .