En enhetsdriver er et stykke programvare som forenkler samspillet mellom programmer og maskinvare-enheter koblet til datamaskinen . En enhetsdriver er både maskinvare og enhet bestemt . I noen tilfeller kan gjennomføringen av en sjåfør separeres i logiske og fysiske lag , slik at en del av koden som skal deles av en lignende klasse av enheten , slik som en skriver eller en monitor. Operativsystemet ( OS ) definerer spesifikke mekanismer som gjør at programmer for å lære av tilgjengeligheten og mulighetene til en maskinvareenhet, og integrere funksjonene i programmet atferd . Instruksjoner
en
Studer manualene som beskriver de mekanismene som tilbys av maskinvaren for å styre funksjonene. Interaksjoner typisk ta form av signaler som kartlegger på kommandoer som produserer støttes atferd .
2
Lær det grunnleggende om å skrive en enhetsdriver for din målgruppe operativsystem. Dette gir en samlet oversikt over prosessen for å følge for å gjøre tjenester tilgjengelige maskinvare . Sjåføren rammeverket angir detaljene for å bruke unntakene fastsatt slik at sjåførene å operere på kernel nivå vanligvis begrenset til operativsystemet .
3
Skriv en enkel shell driver som gir de grunnleggende mekanismene for å koble en enhetsdriver til et program . De fleste rammer gi eksempler og opplæringen kode som vil produsere en enkel implementering som kan brukes som grunnlag for driveren . Dette skallet skal gi mekanismer for å riktig starte opp og stenge ned driveren før og etter spesifikke besvergelser .
4
Bestem enklest mulig hardware -funksjon du kan implementere . Denne øvelsen gir det grunnleggende i programmering en interaksjon , bekrefte at maskinvaren er riktig koblet til datamaskinen og kommunisere. Det er vanlig å starte med en enkel enveis- anmodning som aktiverer en lys eller lyd mekanisme for å bekrefte vellykket overføring av meldingen. Denne prosessen lærer deg hvordan å initiere, sende og lukke et samspill med enheten.
5
Takle mer avanserte interaksjoner en om gangen , og bygge på kunnskap oppnådd på tidligere trinn. Eksempler på dette er operasjoner som venter på en data respons som skal returneres til sjåføren , enten synkront eller asynkront . Disse interaksjonene kan kreve å implementere mekanismer som blokkerer kjøring til et svar er mottatt eller angi en tilstand som gjør at mottak av respons og reaksjon på et senere tidspunkt .
6
Implementere datamanipuleringer å produsere de resultatene i danne forventet å ringe programmet . Noen driver rammer tillater separasjon av kode i kernel og brukervennlig nivåer . Brukernivå, hvor applikasjoner operere, er mer begrenset , men mindre i stand til å føre til et ustabilt system . Hvis OS støtter denne funksjonen , disse manipulasjoner er kandidater til å bli implementert på brukernivå hvis de krever ingen kernel nivå unntak.
7
returnere dataene til søknaden og skikkelig nære ressursene som ble brukt av driveren . I noen tilfeller kan en sjåfør støtte direkte interaksjon med enheten ved søknaden . I dette tilfellet , må føreren å holde ressurser tilgjengelig før spesifikt bedt om å stenge ned på et senere tidspunkt .