Prieš metus Red Hat paskelbėsavo darbui su nauja atvirojo kodo tvarkykle, skirta valdyti NVIDIA GPU Linux sistemose,Nauja». Skirtingai nuo savo pirmtako „Nouveau“, „Nova“ remiasi inicijavimo ir valdymo operacijų perdavimu GSP (GPU sistemos procesoriaus) mikrovaldikliui, integruotam į pačią vaizdo plokštę.
Ir dabar, per kelis mėnesius (skirtingai nuo kitų naujų projektų), atrodo, kad tvarkyklė pakankamai subrendo, kad būtų pasiūlyta kaip pataisų rinkinys, integruojamas į Linux 6.15 branduolį, o tai yra pradinė tvarkyklės versija Linux sistemoje.
Nova, tai yra sukurtas kaip Linux branduolio modulis, kuri remiasi DRM posistemiu valdyti sąveiką su GPU iš vartotojo erdvės. Jo kūrimas vertinamas kaip Nouveau evoliucija, o pagrindinis skirtumas yra tas, kad jis skirtas išskirtinai GPU su GSP programine įranga, kuri apima NVIDIA GeForce RTX 2000 serijos modelius, pagrįstus Turingo mikroarchitektūra.
Skirtumai su Nouveau ir Nova pranašumai
Naujas siekia išspręsti Nouveau struktūrines problemas, dėl kurio reikia atlikti kapitalinį remontą tokiose srityse kaip atminties valdymas (VMM/MMU) ir kodo užraktai. Skirtingai nuo Nouveau, Nova naudoja NVIDIA GSP programinę-aparatinę įrangą, kad supaprastintų GPU inicijavimą ir valdymą, sumažintų kodo sudėtingumą ir nebereikėtų tvarkyti senesnių kortelių.
Novos kodas Tai parašyta rūdžių kalba, kalba, kuri ne tik pagerina saugumą sumažindama atminties valdymo klaidas, bet ir leidžia kurti daugkartinio naudojimo sluoksnius ir abstrakcijas kitoms tvarkyklėms kurti.
El proyecto Jį palaiko įvairios lygiagrečios iniciatyvos, pvz., rūdžių įrenginys tvarkyklių kūrimui, rust-pci sąveikai su PCI magistrale ir rust-drm integracijai su DRM ir GEM posistemiais. Šie įrankiai taip pat naudojami kuriant drm-asahi, „Rust“ tvarkyklę, skirtą „Apple M1“ ir „M2“ GPU, o tai rodo „Rust“ parašytų grafikos tvarkyklių infrastruktūros konvergenciją.
Kalbos vartojimas Rūdys šioje raidoje nėra atsitiktinumas, nes Rust siūlo mechanizmus, palengvinančius peržiūrą ir pertvarkymą, o tai prisideda prie didesnio projekto stabilumo. Šios kalbos priėmimas „Linux“ branduolyje yra atsakas į platesnę strategiją, kuria siekiama modernizuoti modulių rašymą ir padaryti plėtrą prieinamesnę naujiems bendradarbiams.
Tai ne vienintelės pastangos integruoti Rust į branduolį. Šiuo metu šia kalba kuriamos kitos tvarkyklės ir sistemos, pavyzdžiui, Apple AGX GPU tvarkyklė, NVMe saugyklos palaikymas, PuzzleFS failų sistema ir įvairūs saugos bei įrenginių valdymo diegimai. „Rust“ tendencija ir toliau įgauna pagreitį „Linux“ ekosistemoje, o tai žymi reikšmingą pokytį, kaip saugumas ir stabilumas yra sprendžiami kuriant operacinės sistemos branduolį.
Įgyvendinimo etapai
Šiuo metu „Nova“ yra pirmasis diegimo etapas, įtrauktas nova-core, modulis su maždaug 400 kodo eilučių, kuris nustato abstrakcijas, būtinas norint susisiekti su GSP programine įranga. Kartu su nova-core taip pat buvo pridėtos esminės sąsajos, skirtos integracijai su NVIDIA programine įranga.
Verta paminėti, kad Iš pradžių planuota, kad „Nova“ pasirodys „Linux 6.14“. su nova-core moduliu, susidedančiu iš 232 kodo eilučių, bet galiausiai jis nebuvo įtrauktas, nes Gregas Kroah-Hartmanas paminėjo kai kurias detales kad reikėjo poliravimo.
Gavus naują patvirtinimą, kad jis dabar bus įtrauktas, Dabar valdiklis pereis prie kitų etapų kuriame planuojama pridėti:
- nova-drm: DRM (tiesioginio atvaizdavimo tvarkyklės) tvarkyklė, skirta valdyti sąveiką su GPU iš vartotojo vietos.
- VFIO su vGPU tvarkykle: leis virtualizacijos aplinkose naudoti NVIDIA virtualius GPU.
Galiausiai svarbu paaiškinti, kad Nova eDabartinėje būsenoje tai nėra funkcinis valdiklis ir kad lopai išsiųsti Jie yra tik pagrindas pradėti valdiklio kūrimą, tai yra kodas, kuris padės pagrindus tolimesnei plėtrai.