Login
Newsletter
Werbung

Mi, 16. Mai 2012, 11:31

Software::Systemverwaltung

Neues Treiber-API für X.org geplant

Durch die Einbindung eines neuen Treiber-APIs in X.org soll der freie X-Server besser mit modernen Desktop-Treibern unter Windows konkurrieren können und weitere fortgeschrittene Funktionen erlauben. Erste Patches sind bereits veröffentlicht. Der Zeitpunkt einer Freigabe steht allerdings noch nicht fest.

x.org

Betrachtet man die Struktur des X.org-Servers, so stellt sich recht schnell heraus, dass er aus zwei Basiskomponenten besteht. Zum einen enthält er eine hardwarenahe Schicht unter dem namen DDX (Device Dependent X) der alle gerätespezifischen Funktionen umfasst und unter hw/xfree86 zu finden ist, und einer gäreteunabhängigen Schicht unter dem Namen DIX (Device Independent X). Die Kommunikation zwischen den Schichten erfolgt durch ein definiertes API, das unter anderem aus zwei separaten Strukturen besteht: screenInfo.screens in DIX und xf86Screens in DDX.

Wie Dave Airlie nun in seinem Blog schreibt, stellt die Trennung der Strukturen mittlerweile ein gewichtiges Problem dar, das unter anderem die Einbindung moderner Funktionen unter X.org verhindert. Airlie selbst arbeitet bereits seit geraumer Zeit an diversen Funktionen für X.org. Unter anderem plant er, USB-Hotplug-Unterstützung und GPU-Offloading einzubauen. Bei GPU-Offloading, das Airlie PRIME getauft hat, handelt es sich um einen Mechanismus, der dem Server erlauben soll, von einer GPU berechnete Objekte auf dem Ausgabemedium einer anderen GPU darzustellen. Zudem plant der Entwickler, in X.org eine neue Funktionalität einzubinden, die dem Server ermöglichen soll, aktive X.org-Sessions zwischen verschiedenen Treibern und GPUs zu schalten.

Um das Vorhaben realisieren zu können, bedarf es allerdings diverser Änderungen an der Struktur des Servers, denn die Limitierung der Server-APIs stellt laut Airlie das größte Hindernis für eine erfolgreiche Implementierung dar. Zwar ging die ursprüngliche Idee davon aus, das Treiber-API des Servers unberührt zu lassen und beispielsweise USB-Hotplug auf Basis von Xinerama zu realisieren, doch erwies sich das Vorhaben in der Praxis als nicht durchführbar. Einzig die Implementierung einer Schicht zwischen den diversen Server- und Treiber-Objekten versprach bessere Resultate. Die Negativseite des Vorhabens waren allerdings massive Codeduplizierungen.

Um auch dieses Problem zu lösen, schlug Airlie deshalb vor, die APIs komplett zu ändern. Ziel der Änderung ist es, sowohl xf86Screens als auch screenInfo aus dem Server zu entfernen und durch besser skalierbare Strukturen zu ersetzen. Die ersten Patches sind bereits auf der Liste des Projektes eingegangen und sollen als Demonstration der künftigen Struktur dienen. Weitere Änderungen sind bereits in der Warteschleife und sollen an die Liste übermittelt werden, sobald die neue Struktur von den anderen Entwicklern abgesegnet wurde.

Die Änderung des Treiber-APIs stellt einen massiven Eingriff in die Struktur des Servers dar. Denn neben der eigentlichen Änderungen am Kern führt sie zwangsläufig auch dazu, dass alle Treiber des Servers angepasst werden müssen. Zwar verspricht Airlie, die notwendigen Änderungen so gering wie möglich zu halten, um diverse Anpassungen wird allerdings kein Treiber herumkommen. Dementsprechend sollten auch die Erwartungen gedämpft werden, denn mit einer raschen Freigabe der neuen Funktionalität ist nicht zu rechnen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung