Stuurprogramma
Een stuurprogramma, in het Engels driver of hardware driver, is een specifiek stuk software dat een verbinding legt tussen de hardware en het besturingssysteem.
Het stuurprogramma zorgt er hiermee voor dat de programmeur van een applicatie geen weet hoeft te hebben van de hardware waar zijn applicatie op zal gaan draaien. Op een uniforme manier kan de programmeur het besturingssysteem aanspreken. Het besturingssysteem spreekt vervolgens de hardware aan via het stuurprogramma.
Het gebruik van stuurprogramma's heeft ervoor gezorgd dat bij het ontwikkelen van applicaties geen rekening meer gehouden hoeft te worden met de hardware. Daardoor kan een computer zonder geschikte driver een nieuw aan te sluiten apparaat niet herkennen. Die driver kan men soms downloaden: via pakketbronnen in Linux, via Windows Update bij Windows of via de website van de fabrikant. Vaak wordt er ook een cd of dvd meegeleverd met nieuw aangekocht hardware, waarop documentatie en drivers staan.
In de tijd dat MS-DOS nog het meest gebruikte besturingssysteem was, waren er nog vrijwel geen stuurprogramma's beschikbaar. Iedere applicatie moest dus zelf een code implementeren om de hardware aan te spreken, wat de keuze van hardware moeilijker maakte, omdat het geenszins zeker was dat de hardware wel voldoende ondersteuning zou genieten van de applicaties. Ook voor de programmeur vormde dit een probleem, omdat het niet zeker was of toekomstige hardware nog wel compatibel zou zijn met oudere producten. Door gebruik van stuurprogramma's worden beide problemen ondervangen. Wanneer het stuurprogramma correct werkt, kan elke applicatie de hardware aanspreken. Een programmeur hoeft zich geen zorgen te maken om toekomstige hardware, omdat de driver zorgt voor de nodige vertaalslag.
Testen van software
bewerkenBij het testen van softwaremodules wordt de term driver met een andere betekenis gebruikt. Daar wordt met een driver een module bedoeld die een module vervangt die nog niet gebouwd is. Deze driver roept de te testen module aan, in plaats van de nog niet gebouwde module. Hierdoor kan getest worden dat de al wel gebouwde module het gewenste gedrag vertoont. Vergelijk met de term stub, waar het omgekeerde het geval is.