Nova statt Nouveau: Linux-Treiber für Nvidia-GPUs entsteht neu in Rust

Der bei Red Hat angestellte Linux-Entwickler Danilo Krummrich hat die Arbeit an einem neuen Treiber für Nvidia-GPUs angekündigt(öffnet im neuen Fenster) . Das Nova-Projekt soll dabei den seit mehr als 15 Jahren gepflegten Nouveau-Treiber im Hauptzweig des Linux-Kernels ablösen und von Grund auf neu in Rust erstellt werden. Unterstützt werden sollen dabei von Nova jedoch nur vergleichsweise aktuelle Nvidia-GPUs, die den RISC-V-basierten GPU System Processor (GSP) nutzen.
Die Ankündigung erscheint zunächst ungewöhnlich. Hat doch Nvidia vor rund zwei Jahren seinen Linux-Kernel-Treiber selbst als Open-Source-Software veröffentlicht . Zwar ist dies das Resultat eines großen internen Wandels bei Nvidia, was wir in einem Kommentar auch prinzipiell begrüßten. Dennoch bezeichneten wir das Vorgehen damals bereits als Open-Source-Schummelei , da die aus Sicht Nvidias wichtigen Bestandteile proprietär bleiben, was insbesondere für den Userspace-Teil gilt.
Ob und wie die Offenlegung des Kernel-Treibers von Nvidia dem Nouveau-Projekt helfen könnte, oder ob der Code gar in den Hauptzweig eingepflegt werden könnte, war lange unklar . Mit der Ankündigung des Nova-Projekts zeigt sich nun, dass aus diesen Überlegungen offenbar nichts wird. Ziel dürfte es sein, wie bei Nouveau auch mit Nova Linux-Nutzern einen komplett freien Linux-Treiber-Stack anzubieten, der sowohl im Linux-Hauptzweig gepflegt wird als auch die freien Userspace-Bestandteile aus dem Mesa-Projekt verwendet.
Mit dem Neustart und dem Verzicht auf die Unterstützung älterer Hardware könne das Team größere Probleme lösen und die Komplexität des Treibers deutlich verringern, schreibt Krummrich. Letztlich kann eben auch die Kompatibilität zu alter Hardware aufgegeben werden. Diese Vorteile kombiniert mit der Nutzung von Rust, von dem sich das Team weniger Speicherfehler erwartet, sollen den neuen Treiber leichter zu pflegen machen und einfacher Beiträge von externen Entwicklern ermöglichen. Noch muss das Team dafür aber zunächst zahlreiche Vorarbeiten zur Nutzung und Unterstützung von Rust selbst im Linux-Kernel umsetzen. Wann der Treiber als genutzt werden kann, ist derzeit unklar.