Linuxin Rust-ohjaintuen korjauspäivitysten kahdeksas versio saapuu

Miguel Ojeda, Rust-for-Linux-projektin kirjoittaja julkaisi kahdeksannen julkaisun kehittää Linux-ytimen korjaustiedostoja Rust-kielen tuella Linux-ytimen kehittäjille.

Tämä on korjauspäivitysten yhdeksäs julkaisu (ottaen huomioon ensimmäinen julkaistu versio ilman versionumeroa). Ruosteen tukea pidetään kokeellisena, mutta se on jo mukana linux-next-haarassa, vaatii integrointia syksyn 5.20/6.0-julkaisussa, ja se on tarpeeksi edistynyt aloittaakseen työskentelyn abstraktiokerrosten luomisessa ytimen alijärjestelmien päälle sekä kirjoitusohjaimien ja moduulien kanssa.

Kehitystä rahoittavat Google ja ISRG (Internet Security Research Group), joka on Let's Encrypt -projektin perustaja ja edistää HTTPS:ää ja Internetin turvallisuutta lisäävien teknologioiden kehitystä.

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 vaadittujen koontiriippuvuuksien joukkoon. Rustin käyttäminen ohjaimien kehittämiseen antaa sinun luoda parempia ja turvallisempia ohjaimia pienellä vaivalla, ilman ongelmia, kuten muistialueen käyttäminen sen vapauttamisen jälkeen, nollaosoittimien poistaminen ja puskurin ylivuoto.

Muistin suojaus tarjotaan Rustissa käännöshetkellä tarkistamalla viitteet, seuraamalla objektin omistajuutta ja objektin elinikää (scope) sekä arvioimalla muistin käytön oikeellisuutta koodin suorittamisen aikana.

Mitä uutta tässä kahdeksannessa julkaisussa on?

Tässä julkaistussa uudessa ehdotuksessa se mainitaan alloc-kirjaston variantti, joka eliminoi mahdollisen "paniikkitilan" syntymisen virheistä, päivitetty Rust-versioon 1.62. Edelliseen versioon verrattuna Rust-työkalupakkissa on vakiintunut tuki ytimen korjauspäivityksissä käytetylle const_fn_trait_bound-toiminnallisuudelle.

Sen lisäksi sidontakoodi on erotettu nipuksi "sidos"-laatikoita erikseen, mikä helpottaa uudelleen rakentamista, jos vain pääytimen pakettia muutetaan.

The "concat_idents!"-makron käyttöönotto, Kirjoitettu uudelleen proseduurimakroksi, jota ei ole sidottu concat_idents-toimintoon ja sallii paikallisten muuttujaviittausten käytön.

Lisäksi mainitaan, että makro "static_sert!" on kirjoitettu uudelleen sallimaan "core::assert!()" käytetään missä tahansa yhteydessä vakioiden sijaan, kun taas makro "construction_error!" on mukautettu toimimaan, kun moduuleille asetetaan "RUST_BUILD_ASSERT_{WARN,ALLOW}" -tila.

fs-moduuli lisätty joka tarjoaa linkkejä tiedostojärjestelmien kanssa työskentelemiseen. Esitetään esimerkki yksinkertaisesta Rust-kielellä kirjoitetusta tiedostojärjestelmästä sekä työjonomoduuli, joka on lisätty toimimaan järjestelmäjonojen kanssa.

Muista muutoksista jotka erottuvat tästä uudesta ehdotuksesta:

  • Lisätty erillinen asetustiedosto "kernel/configs/rust.config".
  • Makrokorvauksissa käsitellyt "*.i"-tiedostot on nimetty uudelleen muotoon "*.rsi".
  • Poistettu tuki Rust-komponenttien rakentamiselle, joiden optimointitasot ovat muut kuin C-koodissa käytetyt.
  • Kasync-moduulin kehitystyö jatkui asynkronisten ohjelmointimenetelmien (async) käyttöönotolla.
  • Lisätty esimerkki ydintason TCP-palvelimesta, joka on kirjoitettu Rustissa ja lisätty mahdollisuus käsitellä keskeytyksiä Rustissa.
  • Lisätty toimintomakro, joka helpottaa funktioosoitintaulukoiden, kuten file_operations-rakenteen, kanssa työskentelyä.
  • Lisätty kaksisuuntaisen linkitetyn luettelon toteutus "unsafe_list::List".
  • Lisätty alustava tuki RCU:lle ja Guard-tyypille sen tarkistamiseksi, onko lukulukko sidottu nykyiseen säikeeseen.
  • Lisätty toiminto Task::spawn(), joka luo ja käynnistää ytimen säikeet automaattisesti.
  • Myös Task::wake_up()-metodi on lisätty.
  • Lisätty viivemoduuli

Vihdoin jos olet kiinnostunut tietämään siitä lisää, voit tarkistaa yksityiskohdat Seuraavassa linkissä.


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.