"universele driver" bestaat niet. Er bestaat wel een "universele interface" (TWAIN).
Uitleg:
drivers:
elk apparaat heeft eigen communicatieregisters (hardware instructie set), elke aanspraak op eentje zorgt ervoor dat een bepaalde taak wordt uitgevoerd. Voor elk apparaat werkt dit anders, de engineers van het product mogen dit ook vrijelijk kiezen. Elk apparaat heeft dus een andere hardware instructie set en heeft dus een driver nodig die in elk geval qua deze "hardware instructie set" anders is dan vergelijkbare producten.
"Maar, hoe kan het dan dat in linux alle drivers op zoveel apparaten werken?"
Dat doen ze niet

. Ze vragen de hardware om een ID en aan de hand daarvan worden de hardware-specifieke registers/instructieset met de rest van de algemene code ingeladen. De overige code is dus
wel algemeen (dit is error-checking, command checking, kernel logging, etc).
interfaces:
een interface is een manier waarop het programma met de driver (en zo met de hardware) kan communiceren. Een linux-voorbeeld is video4linux. video4linux is een algemene interface waardoor een programma met elke hardware op dezelfde manier kan communiceren, ook al is het niet dezelfde hardware. Daarom kun je op zowel de TV-kaart van merk A als van merk B met xawtv TV kijken.
Die interface
moet dus juist universeel zijn, anders is het voor app-makers ongemolijk om software te schrijven die met veel hardware kan omgaan.
Windows-voorbeeld is TWAIN. interface is dus zelfde, maar echt, die drivers van scanner A zullen never nooit op scanner B werken. Andere hardware instructie set.... Kortgezegd, een universele driver is zowel theoretisch als praktisch onmogelijk.