Seitsemäs versio Rust-ohjaintuen korjaustiedostoista Linuxissa on julkaistu

Muutama päivä sitten, Miguel Ojeda, joka vastaa näiden ehdotusten kehittämisestä ja toimittamisesta ja Rust-for-Linu -projektin kirjoittajax julkisti seitsemännen komponenttiehdotuksen laiteohjainten kehittämiseen Ruoste Linux-ytimen kehittäjien harkittavaksi.

Tämä on korjaustiedostojen seitsemäs painos ja jolle jopa Rust-tukea pidetään kokeellisena, mutta se on jo mukana linux-next-haarassa ja on riittävän kypsä aloittamaan abstraktiokerrosten luomisen ytimen alijärjestelmiin sekä kirjoittamaan ohjaimia ja moduuleja. 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.

Tärkeimmät uutuudet seitsemännessä ehdotuksessa

Tämä uusi ehdotus korostaa sitä työkalupakki ja vaihtoehto alloc-kirjastosta, joka eliminoi mahdollisen "paniikkitilan" syntymisen virheistä, päivitetty versioon Rust 1.60 ja joka näin vakauttaa ytimen korjauspäivityksissä käytetyn "may_uninit_extra"-tilan tuen.

Tämän lisäksi huomautetaan, että lisätty mahdollisuus suorittaa testejä dokumentaatiosta (testit, joita käytetään samanaikaisesti esimerkkeinä dokumentaatiossa), muuntamalla ytimen API:hen sidotut käännösaikatestit KUnit-testeiksi, jotka suoritetaan ytimen käynnistyksen yhteydessä. Testejä ei vaadita tuottamaan Clippy linter -varoitusta, kuten ruosteen ydinkoodi on.

lisäksi ehdotetaan "net"-moduulin ensimmäistä toteutusta verkkotoimintoineen. Rust-koodi tarjoaa pääsyn ytimen verkkorakenteisiin, kuten "Namespace" (perustuu "struct net" -ytimen rakenteeseen), SkBuff (struct sk_buff), TcpListener, TcpStream (struct socket), Ipv4Addr (struct in_addr), SocketAddrV4 (struct sockaddr_in) ja sen IPv6-vastineet.

takapää rustc_codegen_gcc, on ottanut käyttöön mahdollisuuden käynnistää rustc-kääntäjä. Kääntäjän käyttöönotto viittaa rustc:n kykyyn käyttää GCC-pohjaista koodigeneraattoria rustc-kääntäjän rakentamiseen.

Myös äskettäin julkaistu GCC 12.1 sisältää korjauksia libgccjitiin, jotka ovat välttämättömiä rustc_codegen_gcc:n toimimiseksi oikein. Valmistelut ovat käynnissä, jotta rustc_codegen_gcc voidaan asentaa rustup-apuohjelman avulla.

Niistä muut erottuvat muutokset tästä uudesta versiosta:

  • Alkuperäinen tuki toteutettu asynkronisille ohjelmointimenetelmille (async), toteutettu kasync-moduulin muodossa.
  • Lisätty net::filter-moduuli verkkopakettisuodattimien käsittelemiseen. Lisätty esimerkki rust_netfilter.rs suodattimen toteutuksella Rust-kielellä.
  • Lisätty toteutus yksinkertaisesta mutexista smutex::Mutex, joka ei vaadi kiinnitystä.
  • Lisätty NoWaitLock-lukko, joka ei koskaan odota vapautumista, ja jos se on toisen säikeen varassa, se epäonnistuu yrittäessään hankkia lukkoa soittajan pysäyttämisen sijaan.
  • Lisätty RawSpinLock-lukko, jonka ytimessä on raw_spinlock_t ja joka koskee osioita, jotka eivät voi olla käyttämättömiä.
  • Lisätty ARef-tyyppi objektiviittauksille, joihin käytetään viitteiden laskentamekanismia (aina kumottu).
  • Edistystä nähdään GCC:n gccrs-käyttöliittymän kehityksessä GCC:hen perustuvan Rust-kielen kääntäjän käyttöönoton myötä. Gccrs:n parissa työskentelee tällä hetkellä kaksi kokopäiväistä kehittäjää.

Vihdoin Jos haluat tietää enemmän siitä, voit tarkistaa yksityiskohdat seuraava linkki.


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.