Inženýři společnosti Red Hat navrhli zahrnutí první sady patchů pro implementaci ovladače Nova do jádra Linuxu. Ovladač je určen pro používání s GPU NVIDIA vybavenými GSP firmwarem, který se používá od série NVIDIA GeForce RTX 2000 založené na mikroarchitektuře Turing. V těchto GPU jsou inicializační a řídicí operace realizovány ve firmwaru a prováděny samostatným mikrokontrolérem GSP (GPU System Processor). Předpokládá se, že v dlouhodobém horizontu Nova nahradí ovladač Nouveau pro GPU s podporou GSP.
Nový ovladač je napsán v jazyce Rust a jelikož infrastruktura pro vývoj ovladačů v Rustu se teprve vyvíjí, bude kód Nova postupně přenášen do hlavního jádra, jakmile budou k dispozici potřebné obálky pro jazyk Rust. V první fázi byl navržen ovladač „nova-core“ o délce 232 řádků kódu pro zahrnutí do jádra. Nova-core implementuje základní úroveň abstrakcí nad softwarovými rozhraními firmwaru GSP a poskytuje API nezávislé na verzích firmwaru.
V další fázi plánují zahrnout do jádra DRM ovladač nova-drm (Direct Rendering Manager) pro interakci s GPU z prostoru uživatele, stejně jako VFIO ovladač s manažerem vGPU, který umožňuje používat virtuální GPU NVIDIA v virtualizačních systémech.
Hlavním důvodem prosazování nového ovladače Nova je možnost zbavit se komplikací spojených s ovladačem Nouveau a dosáhnout výrazného zjednodušení, díky zapojení hotových zpracovatelů poskytovaných firmwarem GSP a vyřazení zátěže při podpoře starších GPU. Nova také umožní vyřešit architektonické problémy, které v Nouveau vyžadují podstatné přepracování kódu, jako jsou problémy se zámky v kódu VMM/MMU. Jazyk Rust byl vybrán pro snížení pravděpodobnosti chyb při práci s pamětí a také jako možnost skloubit práci na funkčním ovladači se vytvářením obálek a abstrakcí pro vývoj ovladačů v Rustu.

Pokud jde o pokrok při zavádění podpory pro vývoj ovladačů v jazyce Rust do jádra Linux, byla do větve 6.14 přijata Rustová rozhraní pro PCI, platformy, Open Firmware, symbolická zařízení a některé funkce vstupu/výstupu. Greg Kroah-Hartman, který odpovídá za podporu stabilní větve jádra Linux, ve svém pull requestu s aktualizací ovladačů pro jádro 6.14 označil současný stav za „téměř připravený pro psaní skutečného ovladače v Rustu“.
Zdroj: opennet.ru
