Proprietäre Linux-Treiber in den Userspace

Ein neues Interface soll Linux-Treiber für PCI-Geräte im Userspace ermöglichen. Die Treiber könnten unter proprietären Lizenzen stehen und würden einige der Probleme beim Handling von Kernel-Modulen umgehen.

In Pocket speichern vorlesen Druckansicht 487 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Thorsten Leemhuis

Greg Kroah-Hartman hat auf der Linux Kernel Mailinglist (LKML) eine zusammen mit Thomas Gleixner entwickelte Erweiterung für den Linux-Kernel vorgestellt, mit der sich Treiber für PCI-Geräte schreiben lassen, die im Userspace arbeiten. Solche Treiber könnten laut der Lizenz des Kernels auch unter proprietären Lizenzen stehen, da sie über neue und offiziell für normale Programme freigegebene Schnittstellen mit dem Kernel kommunizieren würden. Das ermöglicht Hardware-Entwicklern laut Kroah-Hartman beispielsweise den Bau eines "laser wielding robot", bei dem im Userspace-Treiber vorhandene Komponenten wie ein "Special-secret-how-to-control-the-laser"-Algorithmus geheim bleiben könnte.

Da die Kernel-Entwickler die Schnittstellen zum Userspace normalerweise nicht verändern, sollte es bei dem "Industrial IO" genannten Interface auch unnötig sein, die Treiber für jede Kernel-Version neu zu kompilieren. Das ist bei den heutigen zumeist als Kernel-Modul realisierten Treibern normalerweise nötig, da ein Modul exakt zum verwendeten Kernel passen muss. Zudem erschweren die stetig vorgenommenen Änderungen an den internen Treiber-Schnittstellen von Linux die Verwaltung externer Kernel-Module, da deren Programmierer laufend mit den API-Änderungen Schritt halten müssen.

Darüber hinaus müssen Kernel-Module laut Ansicht zahlreicher Linux-Entwickler genau wie der Kernel selbst unter der GPL oder dazu kompatiblen Open-Source-Lizenzen stehen. Die Auslegung der GPL ist jedoch umstritten: Es gibt zwar zahlreiche Statements von Linus Torvalds, die das zu klären versuchen, aber die Diskussionen und Beschreibungen zu der seit Jahren schwelenden Lizenzfrage finden sich regelmäßig neu auf Mailinglisten, Blogs oder anderen Publikationen im Internet. Endgültig klären könnte die aber wohl nur ein Gericht.

Derzeit nutzen einige Hardware-Hersteller wie etwa ATI und Nvidia diese oft als "Grauen Bereich" bezeichnete Unklarheit der Lizenz aus und veröffentlichen proprietäre Grafiktreiber mit einem Closed-Source-Kernel-Modul. Manche Kernel-Entwickler sehen die Treiber als illegal an – darunter auch Greg Kroah-Hartman, der proprietäre Kernel-Module schon mehrfach öffentlich angeprangert hat. Die gängigen Linux-Distributoren behandeln daher die Treiber auch mit Vorsicht – so nehmen Debian, Fedora Core und Red Hat proprietäre Software generell nicht in die eigentliche Distribution auf; Suse folgte diesem Beispiel und schmiss proprietäre Kernel-Module mit der Version 10.1 raus und überlässt das heiße Eisen den Hardware- und Software-Herstellern.

Um diese Unklarheit zu beseitigen, arbeiten die Linux-Programmierer darauf hin, die Treiber-Schnittstellen mittels der speziellen Exportfunktion EXPORT_SYMBOL_GPL explizit nur noch für unter der GPL stehenden Kernel-Module freizugeben. Das könnte langfristig dazu führen, dass die Treiber von ATI und Nvidia nicht mehr so ohne weiteres Zugriff auf zum Betrieb wichtige Kernel-Funktionen haben. Ob das neue Interface hier für die Grafiktreiber eine Alternative bietet, muss sich zeigen – der Name "Industrial IO" deutet jedoch eher auf Einsatzgebiete im Industrieumfeld hin, wo spezielle, zumeist in Kleinserie gefertigte Hardware etwa zum Steuern und Regeln zum Einsatz kommt. (thl)