Die Woche: Release early, release often!
"Release early, release often" lautet ein in der Open-Source-Welt gängiges Mantra. Manche Entwickler beherzigen es leider viel zu wenig – und tragen so zum Ruf bei, Linux unterstütze aktuelle Hardware schlecht.
- Thorsten Leemhuis
"Release early, release often" lautet ein in der Open-Source-Welt gängiges Mantra. Manche Entwickler beherzigen es leider viel zu wenig – dadurch tragen sie zum Ruf bei, Linux unterstützte aktuelle Hardware schlecht.
Nachlässigkeit einzelner Entwickler und lange Zeiträume zwischen neuen Versionen sind Mitschuld, dass Linux-Distribution neue Hardware eher schlecht unterstützt. Ein aktuelles Beispiel ist die 3D-Unterstützung für Aruba-Grafikkerne in AMDs Trinity-Prozessoren, die seit einigen Monaten in Notebooks oder PCs verbaut werden.
Aruba-GPUs gehören zur Northern-Islands-Generation. Grafikkerne dieser Generation sitzen auch auf vielen Radeon-HD-Karten der 6000er-Serie, für die es schon lange quelloffene und durchaus brauchbare Linux-Treiber gibt. Aufgrund der engen Verwandtschaft benötigen diese Treiber nur einige kleine Änderungen, um auch Aruba-GPUs anzusprechen. Diese Änderungen sind im März in den Radeon-Treiber von X.org und in den im Mai veröffentlichten Linux-Kernel 3.4 eingezogen.
Auch der quelloffene und im Rahmen von Mesa 3D entwickelte 3D-Treiber für Radeon-Grafikkerne erhielt im März Erweiterungen, durch die er Aruba-GPUs unterstützt; der winzige Patch enthielt lediglich zehn neue Codezeilen und änderte vier bestehende. Diese Änderung wurde allerdings nur in den Hauptentwicklungszweig von Mesa 3D übernommen, aus dem im Oktober Mesa 3D 9.0 hervorgehen soll. Das im Mai vorgestellte Mesa 3D 8.0.3 oder dessen im Juli freigegebener Nachfolger 8.0.4 erhielten keine Aruba-Unterstützung – dabei hatte der Kommentar zur Aruba-Erweiterung extra erwähnt, diese Änderung sei ein Kandidat zur Integration in überarbeitete Versionen von Mesa 3D 8.0.
Bei Rechnern mit der Prozessorgrafik von AMDs Trinity-CPU können Linux-Anwender die 3D-Beschleunigung daher nur verwenden, wenn sie die Entwicklerversion von Mesa 3D installieren oder die Änderungen eigenhändig in Mesa 3D 8.0.x zurückportieren und dieses einrichten; beides erfordert mehr als nur fortgeschrittene Linux-Kenntnisse und einiges an Zeit. Die Mesa-Entwickler hätten Anwendern diese Umstände leicht ersparen können, wenn sie die Erweiterung auch in den 8.0er-Zweig integriert hätten. Von da wäre sie schon vor Monaten in einige Distributionen gewandert; die 3D-Beschleunigung bei Aruba-GPUs würde dann einfach funktionieren.
Manchmal ist ein Zurückportieren nicht so einfach möglich wie bei diesem Beispiel, weil die Erweiterungen für neue Hardware umfangreicher sind. Dann könnte Entwickler durch häufiges Veröffentlichen neuer Versionen dafür sorgen, dass Verbesserungen nicht erst Monate in Entwicklerzweigen abhängen, bevor sie über die Distributionen den Weg zu Anwendern antreten. Die Kernel-Entwickler haben diese Problematik schon vor Jahren erkannt – sie war ein Grund, warum die Entwicklung mit einer Unstable-Series (Linux-Versionsreihen wie 2.3 oder 2.5) aufgegeben wurde. Kleine, ungefährliche Verbesserungen der Hardware-Unterstützung fließen mittlerweile sogar in Stable- und Longterm-Kernel ein; da die Kernel der Linux-Distributionen darauf aufbauen, gelangen Verbesserungen zur Hardware-Unterstützung so innerhalb weniger Tage oder Wochen zu den Anwendern.
Stabile Treiber-Schnittstellen
Bei Linux-Kernel, Mesa 3D, Gutenprint oder Sane werden Treiber und die sie umgebene Infrastruktur zusammen entwickelt. Theoretisch könnte man die Entwicklungen entkoppeln und Treiber bei Bedarf unabhängig von neuen Releases der Infrastruktur veröffentlichen, wenn man stabile Schnittstellen für Treiber etabliert. Die enge Verquickung von Treiber und Infrastruktur hat aber einige Vorteile, wie die zur Kernel-Dokumentation gehörende Datei stable_api_nonsense.txt erläutert. Eine ähnliche Einstellung haben auch die Entwickler anderer Softwarekomponenten, bei der Infrastruktur und Treiber verbandelt sind – mittelfristig und vermutlich auch langfristig werden stabile Treiberschnittstellen in der Linux-Welt daher weiter eher die Ausnahme bleiben.
Die Entwickler von Mesa 3D sollen sich daran ein Beispiel nehmen. Sie sind aber nicht die einzigen, bei denen verbesserte Hardware-Unterstützung erst nach Monaten in stabile Releases einfließt. Zwischen den Versionen 5.2.6 und 5.2.7 der Druckertreiber des Gutenprint-Projekts (früher Gimp-Print) vergingen neun Monate; 5.2.8 erschien dreizehn Monate später. Beim Sane-Projekt, das Scanner-Treiber entwickelt, hängen verbesserte Treiber gelegentlich ähnlich lange ab.
Hinzu kommt: Bei den meisten Distributionen vergehen nochmal bis zu sechs Monate (bei Debian noch mehr), bis ein Distributions-Update neue Software-Versionen verteilt; diese Verzögerung hat bereits ein anderer Wochen-Kommentar auf heise open thematisiert.
Letztlich können so bis zu eineinhalb Jahre vergehen, bis die Unterstützung für eine neue Hardware-Komponente in den Mainstream-Distributionen auftaucht. Die Hardware ist dann häufig veraltet, denn zwischen der Einführung von Prozessoren und Grafikchips und der Vorstellung ihrer Nachfolgegeneration vergeht ein ähnlicher Zeitraum. Bei Druckern und vielen anderen Komponenten ist der Produktzyklus nicht ganz so flott, doch auch dort erscheint nach zwei Jahren meist ein Nachfolger.
Der Ruf, Linux würde nur abgehangene Hardware gut unterstützen, ist unter diesen Voraussetzungen nicht unberechtigt. Die Entwickler von Gutenprint, Sane, Mesa 3D und einigen anderen Treiberprojekten könnten der Problematik aber leicht entgegenwirken, indem sie das gut funktionierende Modell der Kernel-Entwickler übernehmen und alle zwei oder drei Monate eine neue Version veröffentlichen würden. (thl) (thl)