Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Gerätetreiber

Dazu kommuniziert der Treiber auf der einen Seite meist direkt mit dem Gerät und tauscht Steuersignale und Daten mit dem Gerät aus, über den Kommunikationsbus ( …

Inhalt4 Abschnitte
  1. 1. Grundidee und Aufgabe von Gerätetreibern
  2. 2. Hardwareabstraktion und Treibervarianten
  3. 3. Einheitliche Schnittstellen und Entwicklung
  4. 4. Beschaffung und proprietäre Treiber

Grundidee und Aufgabe von Gerätetreibern

Ein Gerätetreiber, kurz Treiber, ist ein Computerprogramm oder Softwaremodul, das die Interaktion mit angeschlossenen, eingebauten oder virtuellen Geräten steuert. Er kommuniziert einerseits meist direkt mit dem Gerät: Über einen Kommunikationsbus, also eine Hardware-Schnittstelle, oder über ein Basis-Kommunikationssystem des Betriebssystems tauscht er Steuersignale und Daten aus. Andererseits stellt er dem Betriebssystem und/oder einer Anwendung eine genormte Schnittstelle bereit.

Dadurch kann Software ein Gerät ähnlich ansprechen wie gleichartige Geräte anderer Hersteller. Treiber sind deshalb meist stark von der verwendeten Hardware und dem Betriebssystem abhängig. Der Begriff „Treiber“ kann außerdem Software bezeichnen, die eine Schnittstelle zu einem anderen Computer-System ausführt, etwa JDBC-Treiber oder Protokoll-Treiber. Auch diese ermöglichen eine einheitliche Kommunikationsweise mit unterschiedlichen Systemen.

Hardwareabstraktion und Treibervarianten

Die Hauptaufgabe eines Gerätetreibers besteht darin, hardwarenahe Funktionen über die Hardwareabstraktionsschicht bereitzustellen. Eine Hardwareabstraktionsschicht verbirgt Unterschiede zwischen konkreten Geräten hinter einheitlichen Funktionsaufrufen. Geräte unterscheiden sich nämlich selbst dann in ihrer Ansteuerung oft deutlich, wenn sie denselben Zweck erfüllen oder vom selben Hersteller stammen.

Das Betriebssystem legt daher fest, wie eine Geräteklasse angesprochen werden soll. Der Treiber übersetzt die Funktionsaufrufe des Betriebssystems in die gerätespezifischen Steuersignale. Theoretisch kann ein neues Gerät mit neuer Ansteuerung funktionieren, sobald ein passender Treiber vorhanden ist: Das Betriebssystem nutzt dann dieselben Funktionsaufrufe wie bei anderen Geräten derselben Art.

Es gibt viele Treibervarianten, vor allem für unterschiedliche Hardware und Entwicklungsstände. Für jedes unterstützte Betriebssystem ist eine eigene Variante nötig, weil die Schnittstellen beispielsweise bei Windows und Linux stark voneinander abweichen. Auch Rechnerarchitektur, Betriebssystemarchitektur und Verarbeitungsbandbreite spielen eine Rolle. Fehlt ein Treiber für ein Betriebssystem oder eine Architektur, kann unter Umständen eine passende Umgebung emuliert werden; dabei kommen zusätzliche Abstraktionsschichten hinzu. Eine Hardwarekomponente, die nicht autonom arbeitet und Softwareunterstützung benötigt, ist ohne passenden Treiber nutzlos.

Einheitliche Schnittstellen und Entwicklung

Folgt eine Schnittstellennorm einem übergreifenden standardisierten Modell, können Betriebssystem oder Anwendung auch Geräte unterschiedlicher Typen geordnet ansprechen. Eine Software zum Abspielen eines Musikstücks könnte die Tondaten dann nicht nur an einen Soundkarten-Treiber geben, sondern sie auch über einen Netzwerktreiber versenden, weil auch dieser einen Datenstrom annehmen kann. Die Anwendung muss dafür nicht besonders angepasst werden. Ein solches Modell erleichtert die Programmierung und erlaubt einen universelleren Einsatz, auch mit unbekannten zukünftigen Gerätetypen. Frühere Betriebssysteme wie MS-DOS enthielten diese Abstraktion nicht.

Das Programmieren von Treibern gilt meist als schwierig, weil es ein genaues Verständnis der Hardware und der Software einer Plattform verlangt. Fehler können das gesamte System zum Zusammenbruch bringen und Datenverlust oder im Extremfall die Zerstörung von Hardwareteilen verursachen. Die Fehlersuche ist ebenfalls schwierig, weil häufig die Hardware selbst überwacht werden muss. Deshalb wird das Testsystem normalerweise über eine serielle Schnittstelle mit einem zweiten Computer verbunden; so lässt sich das Testsystem fernsteuern und sein Zustand abfragen.

Treiber werden normalerweise von Hardwareherstellern geschrieben, da diese das genaue Hardwaredesign kennen und ein Interesse an der optimalen Nutzung ihres Produkts haben. Es gibt aber auch zahlreiche, vor allem für freie Betriebssysteme entwickelte Treiber von Außenstehenden. Die Mitarbeit des Herstellers bleibt wichtig, denn Reverse Engineering, also das Ermitteln der Funktionsweise, ist bei Hardware viel schwieriger als bei Software. Ohne Herstellerhilfe ist die Treiberentwicklung beinahe unmöglich. Klassentreiber oder generische Treiber sind dagegen weitgehend herstellerunabhängig; Beispiele sind Treiber für Drucker sowie für am Universal-Serial-Bus angeschlossene Geräteklassen, insbesondere Massenspeicher.

Beschaffung und proprietäre Treiber

Bei älteren Computern fehlen die ursprünglichen Datenträger mit Treibern oft. Sind Komponenten nur unzureichend gekennzeichnet, kann ohne fachliche Hilfe schwer festgestellt werden, von welchem Hersteller sie stammen und welcher Treiber benötigt wird. Besonders nach einer Neuinstallation des Betriebssystems kann dies Probleme bereiten. Systeminformationsprogramme, die oft als Freeware verfügbar sind, können nach einem Systemtest Hersteller- und Modellbezeichnungen anzeigen. Außerdem gibt es Programme, die Treiber aus einem noch laufenden System extrahieren, damit sie in ein anderes System eingebunden werden können.

Proprietäre Treiber führen zu einer Abhängigkeit vom Hersteller. Sie laufen häufig nur auf wenigen Betriebssystemen und Betriebssystemversionen. Wer eine neue Betriebssystemversion verwenden will, ist deshalb auf aktualisierte Treiber des Herstellers angewiesen. Funktionierende Hardware mit proprietären Treibern ist mit neueren Betriebssystemen häufig nicht mehr nutzbar; dies hängt oft mit kommerziellen Interessen von Hardwareherstellern zusammen, neue Hardware zu verkaufen. Bei Open-Source-Treibern ist dieser Nachteil abgeschwächt: Auch sie müssen angepasst werden, aber Benutzer können selbst an der Entwicklung mitwirken oder Änderungen vorschlagen.

Weiterlesen