Sie müssen zuerst definieren, was ein Fahrer ist. Ich definiere es als ein Programm oder eine Subroutine, die ein Gerät (wie Ihre Kamera) oder ein Subsystem (wie ein Dateisystem) steuert. Ob dies direkt über das Systemprogramm oder über Kernel-Server oder User-Land-Prozesse geschieht, sollte für diese im Wesentlichen semantische Frage grundsätzlich keine Rolle spielen.
In einigen Fällen bietet Linux nur ein in Software geschriebenes generisches Protokoll an, bei dem der eigentliche "Treiber" ein Gerätebaum ist. Dies ist eine Konfiguration der Hardware-Parameter und der zu verwendenden Software, aus denen ein Treiber besteht.
Im Allgemeinen werden Treiberschnittstellen und -protokolle mithilfe von Kernelmodulen implementiert, die nach Bedarf geladen werden und durch Gerätebäume oder udev-Regeln definiert sind. Ein Kernelmodul ist im engeren Sinne kein Prozess oder keine Bibliothek.
Eine Bibliothek ist nur ein statischer Satz von Code, der in einen bestimmten Prozess geladen werden kann. Moderne Betriebssysteme laden diese Bibliotheken in den gemeinsamen Speicher. Ein Prozess kann selbst auf eine beliebige Anzahl von gemeinsam genutzten Bibliotheken verweisen.
Ein Prozess ist ein laufendes Programm, in dem das Systemprogramm oder der Kernel Ressourcen wie Systemspeicher und CPU-Zeit zugewiesen hat. Kernelmodule können selbst diesem Muster folgen oder nicht, werden jedoch unter Linux nicht als defacto-Prozesse angesehen.
Um Ihre Frage zu beantworten, muss ein Treiber nicht bearbeitet werden, aber es kann sein. Während der Code in einer Bibliothek vorhanden sein kann, wird der Treiber weiterhin über ein Programm in memery geladen, unabhängig davon, ob es sich um den Kernel in Form von Kernelmodulen oder Userland-Prozessen handelt.
Es wird mehr zu einem semantischen Argument, wenn man bedenkt, wie die Gesamtheit eines Fahrers tatsächlich ist. Man könnte sagen, ein Treiber ist immer ein Programm, aber manchmal ist er nicht wie im Fall von Gerätebäumen. Es kann sich auch um einen Userland-Prozess, eine Gerätebaumdatei, Udev-Regeln und ein Kernel-Modul handeln, bei denen sowohl der Prozess als auch das Modul Bibliotheken verwenden die Logik eines Fahrers.