Viides painos korjaustiedostoja Linux-ytimelle, joka tukee Rust-kieltä

Miguel Ojeda, Rust-for-Linux-projektin kirjoittaja, on ehdottanut viidettä versiota komponenteista laiteajurien kehittämiseen Rust-kielellä Linux-ytimen kehittäjien harkittavaksi. Rust-tukea pidetään kokeellisena, mutta se on jo mukana linux-next-haarassa ja on riittävän kehittynyt, jotta voidaan aloittaa abstraktiokerrosten luominen ytimen alijärjestelmiin sekä ajurien ja moduulien kirjoittaminen. Kehitystä rahoittavat Google ja ISRG (Internet Security Research Group), joka on Let’s Encrypt -projektin perustaja ja edistää HTTPS:ää ja Internetin turvallisuutta parantavien teknologioiden kehitystä.

Muista, että ehdotetut muutokset mahdollistavat Rustin käytön toisena kielenä ohjaimien ja ydinmoduulien kehittämisessä. Ruosteen tuki esitetään vaihtoehtona, joka ei ole oletusarvoisesti käytössä, eikä se johda ruosteen sisällyttämiseen ytimen pakollisena koontiriippuvuutena. Rustin käyttäminen ajurien kehittämiseen mahdollistaa turvallisempien ja parempien ohjainten luomisen vähällä vaivalla, ilman ongelmia, kuten muistin käyttöä vapauttamisen jälkeen, nollaosoittimen viittauksia ja puskurin ylityksiä.

Muistiturvallista käsittelyä tarjotaan Rustissa käännöshetkellä referenssitarkistuksen, objektin omistajuuden ja objektin käyttöiän (laajuus) seurantaan sekä muistin käytön oikeellisuuden arviointiin koodin suorittamisen aikana. Ruoste tarjoaa myös suojan kokonaislukujen ylivuodoilta, vaatii muuttujien arvojen pakollisen alustamisen ennen käyttöä, käsittelee virheet paremmin standardikirjastossa, soveltaa oletusarvoisesti muuttumattomien viitteiden ja muuttujien käsitettä, tarjoaa vahvan staattisen kirjoittamisen loogisten virheiden minimoimiseksi.

Korjausten uusi versio poistaa edelleen kommentit, jotka on tehty keskustelun aikana korjaustiedostojen ensimmäisestä, toisesta, kolmannesta ja neljännestä painoksesta. Uudessa versiossa:

  • Intelin tukemaan 0DAY/LKP-bottiin perustuvaan jatkuvaan integrointijärjestelmään on lisätty Rust-tuen komponenttien testaus ja testausraporttien julkaiseminen on alkanut. Valmistaudumme integroimaan Rust-tuen automaattiseen KernelCI-testausjärjestelmään. GitHub CI:hen perustuva testaus on siirretty konttikäyttöön.
  • Rust-ytimen moduulit vapautetaan tarpeesta määrittää laatikon attribuutit "#![no_std]" ja "#![ominaisuus(…)]".
  • Lisätty tuki yksittäisille kokoonpanokohteille (.o, .s, .ll ja .i).
  • Koodiohjeet määrittelevät säännöt kommenttien ("//") ja dokumentointikoodin ("///") erottamiseen.
  • Is_rust_module.sh-skripti on muokattu.
  • Lisätty tuki staattisille (globaali jaettu muuttuja) synkronointiprimitiiville "CONFIG_CONSTRUCTORS"-toteutuksen perusteella.
  • Lukituksen hallinta on yksinkertaistettu: Guard ja GuardMut on yhdistetty ja yksi parametroitu tyyppi.
  • Laitteita rekisteröitäessä on mahdollista määrittää lisäparametreja.
  • Lisätty "RwSemaphore" -abstraktio, joka toimii kääreenä rw_semaphore C -rakenteen päällä.
  • Mmapin käyttöä varten on lisätty uusi mm-moduuli ja VMA-abstraktio (kääre vm_area_struct-rakenteen päälle).
  • GPIO PL061 -ohjain on muunnettu käyttämään "dev_*!"-makroa.
  • Koodin yleinen puhdistus suoritettiin.

Lähde: opennet.ru

Lisää kommentti