Před rokem oznámil Red Hatk jejich práci na novém open source ovladači pro správu GPU NVIDIA v systémech Linux,Nový". Na rozdíl od svého předchůdce Nouveau Nova spoléhá na delegování inicializačních a řídicích operací na mikrokontrolér GSP (GPU System Processor) integrovaný do samotné grafické karty.
A nyní, během několika měsíců (na rozdíl od jiných nových projektů) se zdá, že ovladač dostatečně vyspěl, aby mohl být navržen jako sada záplat, která má být integrována do jádra Linuxu 6.15, což je počáteční verze ovladače na Linuxu.
Nova, je to tak navržený jako modul linuxového jádra, který se opírá o subsystém DRM pro správu interakce s GPU z uživatelského prostoru. Jeho vývoj je koncipován jako evoluce Nouveau, přičemž zásadní rozdíl je v tom, že je zaměřen výhradně na GPU s firmwarem GSP, který pokrývá modely z řady NVIDIA GeForce RTX 2000 založené na mikroarchitektuře Turing.
Rozdíly s Nouveau a Výhody Novy
Nova snaží se řešit strukturální problémy Nouveau, což vyžaduje zásadní přepracování v oblastech, jako je správa paměti (VMM/MMU) a zámky v kódu. Na rozdíl od Nouveau využívá Nova firmware GSP společnosti NVIDIA ke zjednodušení inicializace a ovládání GPU, snížení složitosti kódu a odstranění nutnosti podporovat starší karty.
Kodex Nova je to napsáno v Rustu, jazyk, který nejen zlepšuje bezpečnost tím, že minimalizuje chyby ve správě paměti, ale také umožňuje vytvářet znovu použitelné vrstvy a abstrakce pro vývoj dalších ovladačů.
El Proyecto Je podporován různými paralelními iniciativami, jako je například rust-device pro vytváření ovladačů, rust-pci pro interakci se sběrnicí PCI a rust-drm pro integraci se subsystémy DRM a GEM. Tyto nástroje se také používají při vývoji drm-asahi, ovladače Rust pro GPU Apple M1 a M2, což naznačuje konvergenci v infrastruktuře pro grafické ovladače napsané v Rustu.
Použití jazyka Rez v tomto vývoji není náhoda, protože Rust nabízí mechanismy, které usnadňují kontrolu a refaktoring, což přispívá k větší stabilitě projektu. Přijetí tohoto jazyka v jádře Linuxu reaguje na širší strategii, která se snaží modernizovat psaní modulů a zpřístupnit vývoj novým přispěvatelům.
Toto není jediná snaha integrovat Rust do jádra. V současné době se v tomto jazyce vyvíjejí další ovladače a systémy, jako je ovladač Apple AGX GPU, podpora úložiště NVMe, souborový systém PuzzleFS a různé implementace zabezpečení a správy zařízení. Trend směrem k Rustu nadále nabírá na síle v linuxovém ekosystému, což znamená významný posun v tom, jak se při vývoji jádra operačního systému řeší zabezpečení a stabilita.
Fáze realizace
V současné době, Nova je v první fázi implementace, obsahuje nova-core, modul s přibližně 400 řádky kódu, který vytváří abstrakce nezbytné pro komunikaci s firmwarem GSP. Spolu s nova-core byly přidány také nezbytné odkazy pro integraci s firmwarem NVIDIA.
Za zmínku stojí, Nova byla původně plánována na Linux 6.14 s modulem nova-core sestávajícím z 232 řádků kódu, ale nakonec nebyl zahrnut, protože Greg Kroah-Hartman zmínil některé detaily který potřeboval vyleštit.
S novým potvrzením, že bude nyní zahrnut, Nyní ovladač přejde do dalších fází do kterého se plánuje přidat:
- nova-drm: ovladač DRM (Direct Rendering Manager) pro správu interakce s GPU z uživatelského prostoru.
- VFIO se správcem vGPU: umožní použití virtuálních GPU NVIDIA ve virtualizačních prostředích.
Nakonec je důležité objasnit, že Nova eV současném stavu se nejedná o funkční ovladač a to odeslané záplaty Jsou pouze základem pro zahájení vývoje ovladače, to znamená, že je to kód, který položí základy budoucího vývoje.