Aufmacher Artikel

Treiberkonzepte unter Linux

Antriebsstark

Wer neue Hardware kauft, legt unter Windows die mitgelieferte CD ein und installiert die notwendigen Treiber. Für Linux-Anwender sieht die Lage anders aus: Meist läuft das Gerät sofort – oder gar nicht.

Das Logo klebt auf fast jedem Gerät im Computer-Handel: "Designed for Vista". Eine Liste weiterer kompatibler Windows-Versionen steht direkt daneben. Linux erwähnen aber die wenigsten Verpackungen. Das heißt nicht zwangsläufig, dass die Geräte unter Linux den Dienst verweigern, aber auf der mitgelieferten CD werden Sie vergeblich nach Linux-Treibern suchen. Nur wenige Hersteller schreiben sich Linux-Kompatibilität auf die Fahnen, und eine mit dem unter Windows üblichen Treiber-Installer (Abbildung 1) vergleichbare Installationsroutine gibt es auch dort nicht.

Abbildung 1: Unter Windows laufen Treiberinstallation immer nach demselben Muster ab.

Treiber ist nicht gleich Treiber, und verschiedene Gerätetypen machen oft völlig unterschiedliche Herangehensweisen notwendig. So unterscheiden sich die unter Windows gewöhnlich unter dem Begriff "Treiber" subsummierten Programme und Dateien in ihren Funktionen deutlich. Beispielsweise liefern Multifunktionsgeräte mit Drucker, Scanner und Fax meist eine Windows-Anwendung mit, welche die Einzelfunktionen unter einer einhaltlichen Oberfläche zusammenfasst. Vom Anwender meist unbemerkt ermöglichen betriebssystemnahe Programme im Hintergrund der Desktop-Software die Kommunikation mit dem Gerät.

Anwendungen installieren Sie unter Linux selbst, unabhängig vom Gerätetreiber. Die Verbindung zwischen Betriebssystem und Desktop-Applikation schaffen die Kernel-Module. Als Schnittstelle dienen dabei die so genannten "Device Files", die Gerätedateien.

Unix-Philosphie

Ein Ausflug in die Geschichte der Unix-Betriebssysteme erklärt den Hintergrund. Lange vor Linux entstanden zahlreiche andere Varianten des Betriebssystems Unix. Sie eint unter Anderem der Ansatz: "Everything is a file" – alles ist eine Datei. Das bedeutet, dass Textdokumente oder Konfigurationsdateien oberflächlich ebenso aussehen wie die genannten Gerätedateien. Letztere befinden sich unter Linux unterhalb des Verzeichnisses /dev/.

Für Anwender-Software bietet das einen gewaltigen Vorteil. Sie schreibt ausgehende Daten in eine Gerätedatei und hat sich damit ihrer Verantwortung entledigt. Eine einfache Möglichkeit, beispielsweise eine Musikdatei abzuspielen, sieht so aus:

cat sound.wav > /dev/dsp

Der Kommandozeilenbefehl cat gibt eine beliebige Datei aus, das Zeichen > leitet die Ausgabe um, in diesem Fall in die für Soundkarten zuständige Gerätedatei /dev/dsp. Ohne Umleitung würde der Inhalt der Sounddatei auf der Textkonsole landen. In der Praxis funktioniert diese Methode aber meist nicht, denn es kann immer nur ein Programm auf das Gerät zugreifen. Das Soundsystem von KDE nimmt die Soundkarte beim Login in Beschlag und verwaltet sie für alle KDE-Musikprogramme.

Analog funktioniert die Eingabe. Eine handelsübliche Maus kommuniziert beispielsweise über die Gerätedatei /dev/input/mice mit der grafischen Oberfläche. Geben Sie auf der Kommandozeile den Befehl

cat /dev/input/mice

ein, erscheinen bei jeder Mausbewegung einige Zeichen auf dem Bildschirm (Abbildung 2). Damit können Sie als Mensch nichts anfangen, aber die grafische Oberfläche bewegt den Maus-Cursor an Hand eben dieser Informationen.

Abbildung 2: Die Ausgabe der Gerätedateien lässt sich anzeigen.

Module

Die Anwender-Software schreibt ausgehende Daten in die entsprechende Gerätedatei, eingehende liest sie bei Bedarf von einer anderen. Für den Datenverkehr zwischen Gerätedateien und dem Endgerät erklärt sich von nun an das Betriebssystem, also der Linux-Kernel für zuständig.

Moderne Linux-Distributionen liefern Kernel aus, die möglichst alle verfügbaren Hardware-Treiber enthalten. Damit der Kernel für viele Geräte sofort einsatzbereit ist, ohne dass sämtliche Treiber den Speicher durchgehend belasten, bietet Linux ein modulares System. Der feste und unveränderbare Teil der Standard-Kernel enthält nur die Funktionen, auf die das Betriebssystem zum Starten nicht verzichten kann.

Läuft Linux erstmal, lädt es während des Boot-Vorgangs oder auch beim Einstecken eines USB-Geräts im laufenden Betrieb die weiteren nötigen Treiber als Kernel-Module nach. Dieses Verfahren hält den Speicherbedarf so klein wie möglich und erlaubt dabei mit einem Standard-Kernel den Zugriff auf alle unterstützten Geräte. Hardware-Anbieter können für ihre Geräte auch eigene Module mitliefern, sie müssen aber exakt zum verwendeten Kernel passen.

Der Zugriff auf eine Hardware-Komponente besteht unter Linux im einfachsten Fall aus zwei Schritten: Die Hardware-Erkennung findet das Gerät und lädt das entsprechende Kernel-Modul. Dann starten Sie als Benutzer die gewünschte Desktop-Anwendung, die über die Gerätedatei mit der Hardware kommuniziert.

Mittlerweile erkennt Linux unterstützte Hardware-Komponenten automatisch, so dass Sie sich gewöhnlich nicht darum zu kümmern brauchen, das passende Modul zu laden. Möchten Sie erfahren, welche Module sich derzeit im Speicher befinden, geben Sie in einer Textkonsole den Befehl /sbin/lsmod ein (Abbildung 3).

Abbildung 3: Kernel-Module lassen sich jederzeit nachladen.

Jede Zeile steht für ein Kernel-Modul. In der ersten Spalte steht dessen Name, dahinter die Größe des Moduls. Es folgt die Anzahl der Systemvorgänge, die das jeweilige Modul momentan benutzen; steht hier eine Null, ist es derzeit ungenutzt. In der letzten Spalte schließlich steht eine mitunter lange Liste weiterer Module, die auf das erste Modul zurückgreifen.

Zum manuellen Nachladen eines Kernel-Moduls dient der Kommandozeilenbefehl modprobe, gefolgt vom Namen des Moduls. modprobe -r entfernt ein Modul aus dem Speicher. Beide Operationen setzen root-Rechte voraus. Beide benötigen Sie im Alltag jedoch nicht. Das Entfernen eines Moduls kann unvorhersehbare Folgen haben, selbst wenn es momentan nicht genutzt wird. Der minimale Speichergewinn wirkt sich dagegen nicht spürbar aus. Das Laden von Modulen passiert gewöhnlich automatisch, so dass Sie auch diesen Befehl im Alltag nicht benötigen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Fliegendes Linux
    Es ist klein, schick und arbeitet ziemlich gut mit Linux zusammen: das Flybook von Dialogue. Wir zeigen, welche Funktionen Probleme bereiten und womit das Mini-Notebook überzeugt.
  • Kooperation
    Schadsoftware aus dem Internet ist ein Grund, warum Nutzer von Windows zu Linux wechseln. Doch was tun, wenn das Modem sich weigert, unter Linux eine Internetverbindung aufzubauen? Dieser Artikel zeigt Ihnen, wie Sie Geräte zur Zusammenarbeit bewegen, die eigentlich nicht für Linux gedacht sind.
  • Der Linux-Gral
    Für bestimmte Hardware kommen Sie nicht darum herum, selbst nach Treibern zu suchen und diese zu installieren. Dieser Artikel zeigt Ihnen die wichtigsten Schritte und erklärt, was beim Treiber-Kompilieren genau geschieht.
  • EXPORT_SYMBOL_GPL
  • Joysticks installieren und anwenden
    Linux beherrscht über ein Dutzend verschiedener Joystick-Systeme und bietet neben dem üblichen analogen Game-Port sogar Treiber für exotische C64- und Amiga- Spieleknüppel.
Kommentare

Infos zur Publikation

EL 11/2017-01/2018: Einstieg in Linux

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet 9,80 Euro. Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 33,30 Euro. Details dazu finden Sie im Computec-Shop.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...