Pred rokom to oznámil Red Hatk ich práci na novom ovládači s otvoreným zdrojovým kódom na správu GPU NVIDIA v systémoch Linux,Nové». Na rozdiel od svojho predchodcu Nouveau sa Nova spolieha na delegovanie inicializačných a riadiacich operácií na mikrokontrolér GSP (GPU System Processor) integrovaný do samotnej grafickej karty.
A teraz, v priebehu niekoľkých mesiacov (na rozdiel od iných nových projektov) sa zdá, že ovládač získal dostatočnú zrelosť na to, aby mohol byť navrhnutý ako sada opráv na integráciu do jadra Linuxu 6.15, čo je počiatočná verzia ovládača na Linuxe.
Nova, je to tak navrhnutý ako modul jadra Linuxu, ktorý sa spolieha na subsystém DRM na riadenie interakcie s GPU z používateľského priestoru. Jeho vývoj je vnímaný ako evolúcia Nouveau, pričom kľúčový rozdiel je v tom, že je zameraný výlučne na GPU s firmvérom GSP, ktorý pokrýva modely zo série NVIDIA GeForce RTX 2000 založené na mikroarchitektúre Turing.
Rozdiely s Nouveau a Výhody Novy
Nova sa snaží riešiť štrukturálne problémy Nouveau, čo si vyžaduje zásadné prepracovanie v oblastiach, ako je správa pamäte (VMM/MMU) a zámky v kóde. Na rozdiel od Nouveau Nova využíva firmvér GSP od NVIDIA na zjednodušenie inicializácie a ovládania GPU, čím sa znižuje zložitosť kódu a eliminuje sa potreba manipulovať so staršími kartami.
Kód Nova je to napísané v Rust, jazyk, ktorý nielenže zlepšuje bezpečnosť minimalizáciou chýb pri správe pamäte, ale umožňuje aj vytváranie opätovne použiteľných vrstiev a abstrakcií pre vývoj ďalších ovládačov.
Projekt Podporujú ho rôzne paralelné iniciatívy, ako napríklad hrdzavé zariadenie na vytváranie ovládačov, rust-pci pre interakciu so zbernicou PCI a rust-drm pre integráciu so subsystémami DRM a GEM. Tieto nástroje sa používajú aj pri vývoji drm-asahi, ovládača Rust pre GPU Apple M1 a M2, čo naznačuje konvergenciu v infraštruktúre grafických ovládačov napísaných v Ruste.
Používanie jazyka Hrdza v tomto vývoji nie je náhoda, pretože Rust ponúka mechanizmy, ktoré uľahčujú kontrolu a refaktorovanie, čo prispieva k väčšej stabilite projektu. Prijatie tohto jazyka v jadre Linuxu reaguje na širšiu stratégiu, ktorá sa snaží modernizovať písanie modulov a sprístupniť vývoj novým prispievateľom.
Toto nie je jediná prebiehajúca snaha integrovať Rust do jadra. V tomto jazyku sa v súčasnosti vyvíjajú ďalšie ovládače a systémy, ako napríklad ovládač Apple AGX GPU, podpora úložiska NVMe, súborový systém PuzzleFS a rôzne implementácie zabezpečenia a správy zariadení. Trend smerom k Rustu naďalej naberá na sile v ekosystéme Linuxu, čo znamená významný posun v tom, ako sa pri vývoji jadra operačného systému rieši bezpečnosť a stabilita.
Fázy implementácie
V súčasnej dobe, Nova je v prvej fáze implementácie, obsahuje nova-core, modul s približne 400 riadkami kódu, ktorý vytvára abstrakcie potrebné na komunikáciu s firmvérom GSP. Spolu s nova-core boli pridané aj nevyhnutné prepojenia na integráciu s firmvérom NVIDIA.
Stojí za zmienku, Pôvodne sa plánovalo, že Nova príde na Linux 6.14 s modulom nova-core pozostávajúcim z 232 riadkov kódu, ale nakoniec nebol zahrnutý, pretože Greg Kroah-Hartman spomenul niektoré detaily ktorý potreboval leštenie.
S novým potvrdením, že bude teraz zahrnutá, Teraz ovládač prejde na ďalšie fázy do ktorého sa plánuje pridať:
- nova-drm: ovládač DRM (Direct Rendering Manager) na riadenie interakcie s GPU z užívateľského priestoru.
- VFIO so správcom vGPU: umožní využitie virtuálnych GPU NVIDIA vo virtualizačných prostrediach.
Nakoniec je dôležité objasniť, že Nova eV súčasnom stave nie je funkčným ovládačom a že záplaty odoslané Sú len základom pre začatie vývoja regulátora, to znamená, že je to kód, ktorý položí základy budúceho vývoja.