Uusi versio korjaustiedostoista Linux-ytimelle, joka tukee Rust-kieltä

Rust-for-Linux-projektin kirjoittaja Miguel Ojeda ehdotti v5-komponenttien julkaisua laiteajurien kehittämiseen Rust-kielellä Linux-ytimen kehittäjien harkittavaksi. Tämä on korjauspäivitysten kuudes painos, kun otetaan huomioon ensimmäinen versio, julkaistu ilman versionumeroa. Rust-tukea pidetään kokeellisena, mutta se sisältyy jo linux-next-haaraan 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, neljännestä ja viidennestä painoksesta. Uudessa versiossa:

  • Työkalupaketti on päivitetty julkaisemaan Rust 1.59.0. Alloc-kirjaston muunnos synkronoidaan myös uuden Rustin version kanssa, mikä eliminoi mahdollisen "paniikkitilan" syntymisen virheiden, kuten muistin loppumisen, ilmetessä. Mahdollisuus käyttää assembler-inserttejä ("feature(global_asm)") on vakiintunut.
  • Lisätty tuki isäntäohjelmien luomiseen Rustissa, joita käytetään ytimen käännöksen aikana.
  • Valmiiksi luotujen kohdealustan määritystiedostojen toimittamisen sijaan ne luodaan dynaamisesti ytimen kokoonpanon perusteella.
  • Lisätty HAVE_RUST-ytimen parametri mahdollistamaan ruostetta tukevat arkkitehtuurit.
  • Abstraktioita ehdotetaan käytettäväksi laitteiston pseudosatunnaislukugeneraattorin Rust-koodissa.
  • Virhekoodien käyttö ilman "Error::"-etuliitettä (esimerkiksi "return Err(EINVAL)") sallittiin C:n virhekoodien käsittelyn arvioimiseksi.
  • Lisätty "CString"-tyyppi mukautetuille C-merkkijonoille. Muotoilija- ja puskurityypit on yhdistetty.
  • Lisätty Bool- ja LockInfo-tyypit.
  • Pyörimislukkojen käyttöönottoa on yksinkertaistettu.

Lähde: opennet.ru

Lisää kommentti