Isang taon na ang nakalipas inihayag ng Red Hatsa kanilang trabaho sa isang bagong open source na driver para sa pamamahala ng mga NVIDIA GPU sa mga Linux system,Bago». Hindi tulad ng hinalinhan nito, ang Nouveau, umaasa ang Nova sa pagtatalaga ng pagsisimula at pagkontrol ng mga operasyon sa isang GSP (GPU System Processor) microcontroller na isinama sa mismong graphics card.
At ngayon, sa loob ng ilang buwan (hindi tulad ng iba pang mga bagong proyekto), tila ang driver ay nakakuha ng sapat na kapanahunan upang maipanukala bilang isang hanay ng mga patch na isasama sa Linux 6.15 kernel, ito ang unang bersyon ng driver sa Linux.
Nova, ito ay dinisenyo bilang isang Linux kernel module, na umaasa sa subsystem ng DRM upang pamahalaan ang pakikipag-ugnayan sa GPU mula sa espasyo ng user. Ang pag-unlad nito ay nakikita bilang isang ebolusyon ng Nouveau, na ang pangunahing pagkakaiba ay na eksklusibo itong naka-target sa mga GPU na may GSP firmware, na sumasaklaw sa mga modelo mula sa serye ng NVIDIA GeForce RTX 2000 batay sa Turing microarchitecture.
Mga Pagkakaiba sa Nouveau at Mga Kalamangan ng Nova
Nova naglalayong lutasin ang mga problema sa istruktura ng Nouveau, na nangangailangan ng malaking pag-overhaul sa mga lugar tulad ng pamamahala ng memorya (VMM/MMU) at mga lock sa code. Hindi tulad ng Nouveau, ginagamit ng Nova ang GSP firmware ng NVIDIA upang gawing simple ang pagsisimula at kontrol ng GPU, binabawasan ang pagiging kumplikado ng code at inaalis ang pangangailangang pangasiwaan ang mga mas lumang card.
Ang Nova Code nakasulat ito sa Rust, isang wika na hindi lamang nagpapabuti ng seguridad sa pamamagitan ng pagliit ng mga error sa pamamahala ng memorya, ngunit pinapayagan din ang paglikha ng mga magagamit muli na layer at abstraction para sa pagbuo ng iba pang mga driver.
Ang proyekto Sinusuportahan ito ng iba't ibang parallel na inisyatiba, tulad ng rust-device para sa paglikha ng mga driver, rust-pci para sa pakikipag-ugnayan sa PCI bus at rust-drm para sa pagsasama sa DRM at GEM subsystem. Ginagamit din ang mga tool na ito sa pagbuo ng drm-asahi, ang Rust driver para sa Apple M1 at M2 GPU, na nagmumungkahi ng convergence sa imprastraktura ng mga graphics driver na nakasulat sa Rust.
Ang paggamit ng wika Ang kalawang sa pag-unlad na ito ay hindi nagkataon lamang, dahil nag-aalok ang Rust ng mga mekanismo na nagpapadali sa pagsusuri at refactoring, na nag-aambag sa higit na katatagan ng proyekto. Ang pag-aampon ng wikang ito sa Linux kernel ay tumutugon sa isang mas malawak na diskarte na naglalayong gawing moderno ang pagsusulat ng module at gawing mas naa-access ang development sa mga bagong kontribyutor.
Hindi lamang ito ang patuloy na pagsisikap na isama ang Rust sa kernel. Ang iba pang mga driver at system ay kasalukuyang binuo sa wikang ito, tulad ng Apple AGX GPU driver, NVMe storage support, ang PuzzleFS file system, at iba't ibang seguridad at pagpapatupad ng pamamahala ng device. Ang trend patungo sa Rust ay patuloy na nakakakuha ng momentum sa Linux ecosystem, na nagmamarka ng isang makabuluhang pagbabago sa kung paano tinutugunan ang seguridad at katatagan sa pagpapaunlad ng kernel ng operating system.
Mga yugto ng pagpapatupad
sa kasalukuyan, Ang Nova ay nasa unang yugto ng pagpapatupad nito, incorporated nova-core, isang module na may humigit-kumulang 400 linya ng code na nagtatatag ng mga abstraction na kinakailangan upang makipag-ugnayan sa firmware ng GSP. Kasama ng nova-core, ang mga mahahalagang binding para sa pagsasama sa firmware ng NVIDIA ay naidagdag din.
Ito ay nagkakahalaga ng pagbanggit na, Ang Nova ay unang binalak na dumating sa Linux 6.14 na may nova-core module na binubuo ng 232 linya ng code, ngunit sa huli ay hindi ito kasama dahil binanggit ni Greg Kroah-Hartman ang ilang detalye na kailangan ng buli.
Sa bagong kumpirmasyon na isasama na ito, Ngayon ang controller ay magpapatuloy sa susunod na mga yugto kung saan ito ay binalak na magdagdag ng:
- nova-drm: isang driver ng DRM (Direct Rendering Manager) upang pamahalaan ang pakikipag-ugnayan sa GPU mula sa espasyo ng user.
- VFIO na may vGPU manager: ay magbibigay-daan sa paggamit ng NVIDIA virtual GPUs sa virtualization environment.
Sa wakas, mahalagang linawin na si Nova eSa kasalukuyang estado nito, hindi ito isang functional controller at na ang ipinadala ang mga patch Ang mga ito ay batayan lamang para sa pagsisimula ng pagbuo ng controller, iyon ay, ito ang code na maglalagay ng pundasyon para sa hinaharap na pag-unlad.