Ingeniører fra Red Hat foreslog at blive inkluderet i kernen Linux Det første sæt programrettelser, der implementerer Nova-driveren. Denne driver er designet til brug med NVIDIA GPU'er udstyret med GSP-firmware, som har været brugt siden NVIDIA GeForce RTX 2000-serien baseret på Turing-mikroarkitekturen. I disse GPU'er er initialiserings- og kontroloperationer implementeret i firmwaren og udført af en separat GSP (GPU System Processor) mikrocontroller. Nova forventes at erstatte Nouveau-driveren til GPU'er med GSP-understøttelse på lang sigt.
Den nye driver er skrevet på Rust-sproget, og da infrastrukturen til udvikling af Rust-drivere stadig er under udvikling, er det meningen, at Nova-koden gradvist skal overføres til hovedkernen, efterhånden som de nødvendige bindinger til Rust-sproget vises. I det første trin foreslås "nova-core"-driveren, der består af 232 linjer kode, til inklusion i kernen. Nova-core implementerer et basisabstraktionslag over GSP-firmware-API'erne og giver en API uafhængig af firmwareversioner.
På næste trin planlægger kernen at inkludere nova-drm (Direct Rendering Manager) DRM-driveren til interaktion med GPU'en fra brugerpladsen, samt VFIO-driveren med vGPU-manageren, som tillader brugen af NVIDIA virtuelle GPU'er i virtualiseringssystemer.
Hovedårsagen til at promovere den nye Nova-driver er evnen til at slippe af med de komplikationer, der er iboende i Nouveau-driveren, og opnå betydelig forenkling ved at bruge færdige handlere leveret af GSP-firmwaren og slippe byrden med at understøtte gamle GPU'er. Nova vil også behandle arkitektoniske problemer, der i Nouveau kræver betydelig kodebase-omarbejdelse, såsom låseproblemer i VMM/MMU-koden. Rust-sproget blev valgt for at reducere sandsynligheden for fejl, når man arbejder med hukommelse, og også som en mulighed for at kombinere arbejdet med en fungerende driver med skabelsen af bindinger og abstraktioner til udvikling af drivere i Rust.

Angående fremskridtene med at tilføje til kernen Linux For at forbedre driverudviklingsmulighederne i Rust inkluderer 6.14-grenen Rust-bindinger til PCI, platforme, Open Firmware, tegnenheder og nogle I/O-funktioner. Greg Kroah-Hartman, der vedligeholder den stabile kernegren, Linuxbeskrev i en pull-anmodning, der opdaterede driverne til 6.14-kernen, den nuværende tilstand som "næsten klar til at skrive en rigtig driver i Rust".
Kilde: opennet.ru
