Treiber (Software)

Treiber (Software)

Ein Gerätetreiber, häufig kurz nur Treiber genannt, ist ein Computerprogramm oder -modul, das die Interaktion mit angeschlossenen oder eingebauten Geräten (Hardware) steuert. Dazu nutzt es Schnittstellen zum Kommunikationsbus oder anderen Kommunikationssystemen, an denen das Gerät angeschlossen ist, um Steuersignale und/oder Daten zum Gerät zu senden bzw. von ihm zu empfangen. Auf der anderen Seite stellt es eine Schnittstelle für eine Nutzung dieser Funktionen durch das Betriebssystem oder Anwendungsprogramme bereit.

Folgt diese Schnittstelle einem standardisierten Modell, bietet der Gerätetreiber somit dem Betriebssystem oder der Anwendungssoftware die Möglichkeit, transparent mit der Hardware zu kommunizieren. Eine spezielle Anpassung an jede mögliche Hardwarekonfiguration ist so nicht mehr nötig, erleichtert die Programmierung der Anwendungssoftware und ermöglicht einen universelleren Einsatz auch mit noch unbekannten, zukünftigen Geräten. Frühere Betriebssysteme wie MS-DOS enthielten diese Abstraktion noch nicht. Bedingt durch ihre Funktion sind Gerätetreiber selbst jedoch stark hardware- und betriebssystemabhängig.

Der Begriff Treiber wird auch allgemeiner für Software benutzt, die eine Schnittstelle zu einem anderen Computer-System realisiert, also zu einer Kombination von Hard- und Software (etwa JDBC-Treiber, Protokoll-Treiber). Auch hier ermöglicht der Treiber die transparente Kommunikation mit verschiedenartigen Systemen. In der Elektrotechnik stellt ein Treiber einen Signalverstärker dar, der zum Beispiel ein Gerätesignal an einen Kommunikationsbus koppelt.

Das deutsche Wort Treiber ist ein so genannter falscher Freund. Es handelt sich dabei um eine eigentlich falsche Übersetzung des englischen Wortes driver, was selbst eine Ableitung vom Zeitwort to drive 'steuern' darstellt. Ein hardware driver dient demnach also zur Steuerung einer Hardwarekomponente. Da mit diesem Steuern ein Flottmachen, ein "Antreiben" der Hardware assoziiert wird, wurde im Deutschen dafür statt Steuerer oder ähnlicher Ausdrücke das Wort Treiber gewählt.

Inhaltsverzeichnis

Aufgabe

Die Hauptaufgabe von Gerätetreibern ist das Bereitstellen von Hardware-nahen Funktionen durch die Hardware-Abstraktions-Schicht. Alle Arten von Geräten sind unterschiedlich, selbst Geräte, die denselben Zweck erfüllen. Sogar die verschiedenen Modelle eines Gerätes desselben Herstellers, die zum Beispiel neue Funktionen oder mehr Leistung versprechen, werden oft völlig anders angesteuert.

Von Computern und ihren Betriebssystemen kann nicht erwartet werden, dass sie mit all diesen verschiedenen Arten umgehen können, erst recht nicht mit zukünftigen Geräten. Um dieses Problem zu lösen, gibt das Betriebssystem vor, wie eine Klasse von Geräten angesprochen werden sollte. Die Gerätetreiber kümmern sich dann um die Übersetzung dieser Funktionsaufrufe des Betriebssystems in gerätespezifische Steuersignale. Theoretisch sollte also auch ein völlig neues Gerät mit völlig neuer Ansteuerung problemlos funktionieren, sobald ein Treiber für dieses Gerät vorliegt. Das Betriebssystem sollte es mit denselben Funktionsaufrufen ansprechen können wie jedes andere Gerät auch.

Oft existieren viele verschiedene Varianten eines Treibers, in erster Linie abhängig von der unterstützten Hardware, oft auch in verschieden (Entwicklungs-)Versionen. Zudem muss für jedes unterstützte Betriebssystem eine Variante existieren, da die Schnittstellen hierzu zum Beispiel bei Microsoft Windows oder Linux stark unterschiedlich sind. Weiterhin besteht eine Abhängigkeit von der grundlegenden Architektur des Rechners und des Betriebssystems, auch von der Verarbeitungsbandbreite. Ist kein Treiber für ein bestimmtes Betriebssystem oder eine Architektur vorhanden, kann unter Umständen eine entsprechende Umgebung emuliert, also weitere Abstraktionsschichten hinzugefügt werden.

Ohne passenden Treiber ist eine Hardwarekomponente nutzlos, wenn sie nicht autonom arbeitet und auf Unterstützung durch Software angewiesen ist.

Entwicklung

Einen Gerätetreiber zu programmieren gilt in den meisten Fällen als Herausforderung, da es ein eingehendes Verständnis der Funktionsweise einer Plattform erfordert, sowohl auf der Hardware- wie der Softwareseite.

Im Gegensatz zu den meisten anderen Arten von Software, die bei Verwendung eines modernen Betriebssystems jederzeit gestoppt werden können, ohne den Rest des Systems zu beeinflussen, bedeutet ein Programmfehler in einem Gerätetreiber in vielen Fällen, dass das System vollständig zusammenbrechen kann, was den Verlust von Daten oder (in Extremfällen) sogar die Zerstörung von Hardwareteilen zur Folge haben kann. Außerdem ist die Fehlersuche bei Gerätetreibern schwierig, da dies häufig bedeutet, die Hardware selbst zu überwachen. Daher wird normalerweise das zu testende System über die serielle Schnittstelle mit einem anderen Computer verbunden. So kann das Testsystem ferngesteuert und der Status jederzeit abgefragt werden.

Normalerweise werden Gerätetreiber daher von den Hardwareherstellern selbst geschrieben, da nur sie das genaue Design der Hardware kennen. Außerdem liegt es im Interesse der Hardwarehersteller, dass Kunden ihr Produkt optimal nutzen können.

Dennoch wurden in den letzten Jahren zahlreiche Gerätetreiber von Außenstehenden entwickelt, hauptsächlich für freie Betriebssysteme. Aber auch hier ist die Mitarbeit des Herstellers wichtig, da Reverse Engineering (Herausfinden der Funktionsweise) bei Hardware viel schwieriger als bei Software ist. Ohne diese Mitarbeit ist es beinahe unmöglich, Treibersoftware zu programmieren.

Sogenannte generische Treiber sind weitestgehend herstellerunabhängig. Beispiele hierfür sind generische Druckertreiber oder Treiber für die Geräteklassen im USB.

Problematik

Gerade bei älteren Computern sind oft die nötigen Datenträger mit den Gerätetreibern nicht mehr vorhanden. Da einige Komponenten des Computers nur unzulänglich gekennzeichnet beziehungsweise beschriftet sind, ist es oft nicht möglich, ohne fachliche Hilfe einen geeigneten Treiber zu beschaffen, da der Hersteller der Komponente nicht bekannt ist. Dies kann insbesondere dann zu Problemen führen, wenn die Gerätetreiber beispielsweise nach einer Neuinstallation des Betriebssystems benötigt werden. In solchen Fällen können System-Diagnosetools, die oftmals als Freeware angeboten werden, Abhilfe schaffen. Diese zeigen in der Regel die Hersteller- und Modellbezeichnungen nach einem Systemtest an, so dass der nötige Treiber beschafft werden kann.

Ein weiteres Problem stellt die Herstellerabhängigkeit bei proprietären Treibern dar. Treiber sind häufig nur auf wenigen Betriebssystemen und Betriebssystemversionen lauffähig. Wenn der Anwender eine neue Betriebssystemversion verwenden möchte, ist er von Gerätetreibern des Herstellers abhängig. Häufig sind funktionstüchtige Hardwarekomponenten mit proprietären Treibern mit neueren Betriebssystemen nicht lauffähig. Dies hängt oft mit den kommerziellen Interessen von Hardwareherstellern zusammen, die neue Hardware verkaufen möchten. Bei Open Source-Treibern ist dieser Nachteil gemildert. Die Treiber müssen ebenfalls an das neuere System angepasst werden, aber der Benutzer kann selbst an der Entwicklung mitarbeiten oder Änderungen vorschlagen.

Literatur

  • Walter Oney: Programming the Microsoft Windows Driver Model, ISBN 0735618038
  • Art Baker: Windows 2000 Device Driver Book, ISBN 0130204315
  • Jonathan Corbet, Alessandro Rubini, und Greg Kroah-Hartman: Linux Device Drivers, Third Edition, ISBN 0-596-00590-3 (Online lesbar unter lwn.net)

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Treiber — bezeichnet: Treiber (Jagd), bei der Treibjagd Wild aufscheuchende Personen Technik: Gerätetreiber, in der Informatik eine Software zum Zugriff auf Hardwarekomponenten Verstärker (Technik), in der Elektronik und technischen Informatik einen… …   Deutsch Wikipedia

  • Software-rendering — bezeichnet die Methode der Grafikberechnung ohne spezialisierte Hardware, d. h. nur durch den CPU ohne Unterstützung durch eine Grafikkarte oder Vergleichbares. Die Grafikkarte leitet dabei unbeteiligt die von der CPU berechneten Daten an den… …   Deutsch Wikipedia

  • Software Rendering — bezeichnet die Methode der Grafikberechnung ohne spezialisierte Hardware, d. h. nur durch die CPU ohne Unterstützung durch eine Grafikkarte oder Vergleichbares. Die Grafikkarte leitet dabei unbeteiligt die von der CPU berechneten Daten an… …   Deutsch Wikipedia

  • Software deployment — Softwareverteilung (engl. deployment) nennt man Prozesse zur Installation von Software auf Anwender PCs oder Servern in Betrieben. Viele Anwender verfügen nicht über die notwendigen Kenntnisse oder Berechtigungen, um Software Applikationen selbst …   Deutsch Wikipedia

  • Treiber — der Treiber, (Mittelstufe) eine Software, mit der Hardwarekomponenten gesteuert werden können Beispiel: Ich muss den Treiber für meine Grafikkarte aktualisieren …   Extremes Deutsch

  • SideKick (Software) — SideKick ist eine Software aus dem Hause Borland von 1983, die es ermöglichte, Ausgaben von Anwendungsprogrammen auch quer auf das Papier zu bringen, beispielsweise für den Fall von extrem breit druckenden Ausgaben einer Tabellenkalkulation.… …   Deutsch Wikipedia

  • Free Software — Freie Software (engl.: free software; „frei“ wie in Freiheit) ist Software, die für jeden Zweck genutzt, studiert, bearbeitet und in ursprünglicher oder veränderter Form weiterverbreitet werden darf. Das schließt auch die kommerzielle Nutzung ein …   Deutsch Wikipedia

  • Free software — Freie Software (engl.: free software; „frei“ wie in Freiheit) ist Software, die für jeden Zweck genutzt, studiert, bearbeitet und in ursprünglicher oder veränderter Form weiterverbreitet werden darf. Das schließt auch die kommerzielle Nutzung ein …   Deutsch Wikipedia

  • Freie Software — (englisch free software) ist Software, die für jeden Zweck verwendet, studiert, bearbeitet und in ursprünglicher oder veränderter Form weiterverbreitet werden darf. Das schließt auch die kommerzielle Nutzung ein. Freie Software Lizenzen… …   Deutsch Wikipedia

  • Boot Camp 1.x (Software) — Boot Camp Public Beta (Versionen 1.x) Entwickler: Apple Computer Aktuelle Version: Public Beta 1.4 (8. August 2007) Betriebssystem: ab Mac OS X Tiger v10.4.6 …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”