Nova: Uusi Rust-ohjain NVIDIA GPU:ille tulossa Linux 6.15:een

Nova, Rust

Red Hat ilmoitti vuosi sittentyöhönsä uuden avoimen lähdekoodin ohjaimen parissa NVIDIA-grafiikkasuorittimien hallintaan Linux-järjestelmissä,Uusi". Toisin kuin edeltäjänsä Nouveau, Nova luottaa alustus- ja ohjaustoimintojen delegoimiseen itse näytönohjaimeen integroidulle GSP (GPU System Processor) -mikro-ohjaimelle.

Ja nyt, muutamassa kuukaudessa (toisin kuin muut uudet projektit), näyttää siltä, ​​​​että ohjain on saavuttanut tarpeeksi kypsyyden, jotta sitä voidaan ehdottaa korjaustiedostoiksi integroitaviksi Linux 6.15 -ytimeen, joka on ohjaimen alkuperäinen versio Linuxissa.

Nova, se on suunniteltu Linux-ydinmoduuliksi, joka perustuu DRM-alijärjestelmään hallita vuorovaikutusta GPU:n kanssa käyttäjätilasta. Sen kehitystä pidetään Nouveaun evoluutiona, ja tärkein ero on, että se on kohdistettu yksinomaan GSP-laiteohjelmistolla varustetuille GPU:ille, joka kattaa NVIDIA GeForce RTX 2000 -sarjan mallit, jotka perustuvat Turingin mikroarkkitehtuuriin.

Erot Nouveaun kanssa ja Novan edut

Nova pyrkii ratkaisemaan Nouveaun rakenteellisia ongelmia, joka vaatii suuria uudistuksia esimerkiksi muistinhallinnan (VMM/MMU) ja koodin lukitusten osalta. Toisin kuin Nouveau, Nova hyödyntää NVIDIAn GSP-laiteohjelmistoa yksinkertaistaakseen GPU:n alustusta ja ohjausta, vähentää koodin monimutkaisuutta ja poistaa tarpeen tukea vanhempia kortteja.

Nova-koodi se on kirjoitettu ruosteessa, kieli, joka ei ainoastaan ​​paranna turvallisuutta minimoimalla virheitä muistinhallinnassa, vaan mahdollistaa myös uudelleenkäytettävien kerrosten ja abstraktioiden luomisen muiden ohjainten kehittämiseen.

El proyecto Sitä tukevat useat rinnakkaiset aloitteet, kuten rust-device ohjainten luomiseen, rust-pci vuorovaikutukseen PCI-väylän ja rust-drm:n kanssa integroitavaksi DRM- ja GEM-alijärjestelmiin. Näitä työkaluja käytetään myös drm-asahia, Applen M1- ja M2-grafiikkasuorittimien Rust-ajuria kehitettäessä, mikä viittaa Rustilla kirjoitettujen näytönohjainten infrastruktuurin lähentymiseen.

Kielen käyttö Ruoste tässä kehityksessä ei ole sattumaa, koska Rust tarjoaa mekanismeja, jotka helpottavat tarkistusta ja uudelleenkäsittelyä, mikä lisää projektin vakautta. Tämän kielen ottaminen käyttöön Linux-ytimessä vastaa laajempaan strategiaan, jolla pyritään modernisoimaan moduulien kirjoittamista ja tekemään kehitystyöstä helpompaa uusien tekijöiden ulottuville.

Tämä ei ole ainoa jatkuva yritys integroida Rust ytimeen. Tällä kielellä kehitetään parhaillaan muita ohjaimia ja järjestelmiä, kuten Apple AGX GPU -ohjainta, NVMe-tallennustukea, PuzzleFS-tiedostojärjestelmää ja erilaisia ​​tietoturva- ja laitehallintatoteutuksia. Ruosteen suuntaus jatkaa nousuaan Linux-ekosysteemissä, mikä merkitsee merkittävää muutosta siinä, miten turvallisuutta ja vakautta käsitellään käyttöjärjestelmän ytimen kehittämisessä.

Toteutusvaiheet

tällä hetkellä, Nova on käyttöönottovaiheessa, joka sisältää nova-core-moduulin, jossa on noin 400 koodiriviä ja joka määrittää GSP-laiteohjelmiston kanssa kommunikointiin tarvittavat abstraktit. Nova-ytimen lisäksi on lisätty myös tärkeitä linkkejä NVIDIA-laiteohjelmiston integrointiin.

On syytä mainita, Novan oli alun perin tarkoitus saapua Linux 6.14:ään nova-core-moduulilla, joka koostuu 232 rivistä koodia, mutta lopulta sitä ei sisällytetty, koska Greg Kroah-Hartman mainitsi joitain yksityiskohtia joka vaati kiillotusta.

Uuden vahvistuksen myötä, että se sisällytetään nyt, Nyt ohjain siirtyy seuraaviin vaiheisiin johon on tarkoitus lisätä:

  • nova-drm: DRM (Direct Rendering Manager) -ohjain, joka hallitsee vuorovaikutusta GPU:n kanssa käyttäjätilasta.
  • VFIO vGPU-hallinnan kanssa: mahdollistaa NVIDIA-virtuaaligrafiikkasuorittimien käytön virtualisointiympäristöissä.

Lopuksi on tärkeää selventää, että Nova eNykyisessä tilassaan se ei ole toimiva ohjain ja että laastarit lähetetty Ne ovat vain perusta ohjaimen kehittämisen aloittamiselle, eli se on koodi, joka luo pohjan tulevalle kehitykselle.