Aasta tagasi teatas Red Hatoma tööle uue avatud lähtekoodiga draiveri kallal NVIDIA GPU-de haldamiseks Linuxi süsteemides,Uus». Erinevalt oma eelkäijast Nouveau'st tugineb Nova lähtestamis- ja juhtimistoimingute delegeerimisele GSP (GPU System Processor) mikrokontrollerile, mis on integreeritud graafikakaardile.
Ja nüüd, mõne kuu jooksul (erinevalt teistest uutest projektidest) näib, et draiver on saanud piisavalt küpsuse, et seda saaks pakkuda Linuxi 6.15 kernelisse integreeritavate paikade komplektina, mis on draiveri esialgne versioon Linuxis.
Nova, on küll loodud Linuxi tuumamoodulina, mis tugineb DRM-i alamsüsteemile et hallata suhtlust GPU-ga kasutajaruumist. Selle väljatöötamist peetakse Nouveau edasiarenduseks, mille peamiseks erinevuseks on see, et see on suunatud eranditult GSP püsivaraga GPU-dele, mis hõlmab NVIDIA GeForce RTX 2000 seeria mudeleid, mis põhinevad Turingi mikroarhitektuuril.
Erinevused Nouveau'ga ja Nova eelised
Uus püüab lahendada Nouveau struktuuriprobleeme, mis nõuab põhjalikku remonti sellistes valdkondades nagu mäluhaldus (VMM/MMU) ja koodi lukustamine. Erinevalt Nouveau'st kasutab Nova NVIDIA GSP püsivara, et lihtsustada GPU initsialiseerimist ja juhtimist, vähendades koodi keerukust ja kõrvaldades vajaduse käsitseda vanemaid kaarte.
Nova kood see on kirjutatud Rustis, keel, mis mitte ainult ei paranda turvalisust, minimeerides vigu mäluhalduses, vaid võimaldab luua ka korduvkasutatavaid kihte ja abstraktsioone teiste draiverite arendamiseks.
El proyecto Seda toetavad mitmesugused paralleelsed algatused, näiteks roosteseade draiverite loomiseks, rust-pci suhtlemiseks PCI siiniga ja rust-drm integreerimiseks DRM-i ja GEM-i alamsüsteemidega. Neid tööriistu kasutatakse ka Apple M1 ja M2 GPU-de Rust-draiveri drm-asahi väljatöötamisel, mis viitab Rustis kirjutatud graafikadraiverite infrastruktuuri lähenemisele.
Keelekasutus Rooste selles arengus pole juhus, kuna Rust pakub mehhanisme, mis hõlbustavad ülevaatamist ja ümbertöötamist, mis aitab kaasa projekti suuremale stabiilsusele. Selle keele kasutuselevõtt Linuxi tuumas vastab laiemale strateegiale, mille eesmärk on moderniseerida moodulite kirjutamist ja muuta arendus uutele kaasautoritele kättesaadavamaks.
See pole ainus jätkuv jõupingutus Rusti tuumaga integreerimiseks. Selles keeles töötatakse praegu välja teisi draivereid ja süsteeme, nagu Apple AGX GPU draiver, NVMe salvestustugi, PuzzleFS failisüsteem ning mitmesugused turbe- ja seadmehaldusrakendused. Rooste suundumus kogub Linuxi ökosüsteemis jätkuvalt hoogu, tähistades olulist nihet selles, kuidas operatsioonisüsteemi tuuma arendamisel turvalisuse ja stabiilsusega tegeletakse.
Rakendamise etapid
Praegu Nova on rakendamise esimeses etapis, mis sisaldab nova-core, umbes 400 koodireaga moodulit, mis määrab GSP püsivaraga suhtlemiseks vajalikud abstraktsioonid. Koos nova-core'iga on lisatud ka olulised lingid integreerimiseks NVIDIA püsivaraga.
Tasub mainida, Algselt plaaniti Nova jõuda Linux 6.14-le nova-core mooduliga, mis koosneb 232 koodireast, kuid lõpuks seda ei lisatud, sest Greg Kroah-Hartman mainis mõningaid detaile mis vajas poleerimist.
Uue kinnitusega, et see nüüd kaasatakse, Nüüd liigub kontroller järgmistesse faasidesse kuhu on plaanis lisada:
- nova-drm: DRM-i (Direct Rendering Manager) draiver, et hallata suhtlust GPU-ga kasutajaruumist.
- VFIO koos vGPU halduriga: võimaldab virtualiseerimiskeskkondades kasutada NVIDIA virtuaalseid GPU-sid.
Lõpetuseks on oluline selgitada, et Nova ePraeguses olekus ei ole see funktsionaalne kontroller ja et plaastrid saadetud Need on vaid aluseks kontrolleri arenduse alustamiseks ehk just kood on see, mis paneb aluse edasisele arengule.