Kolmas versio Rust-ohjaintuen korjauksista Linuxissa on jo julkaistu

Kuusi kuukautta toisen version julkaisemisen jälkeen, Miguel Ojeda, Rust-for-Linux-projektin kirjoittaja, esitti ehdotuksen kolmatta vaihtoehtoa laiteajurien kehittämiseen Rust-kielellä Linux-ytimessä.

Rust-tukea pidetään kokeellisena, mutta sen sisällyttämisestä linux-next-haaraan on jo sovittu. Kehitystä rahoittavat Google ja ISRG (Internet Security Research Group) -organisaatio, joka on Let's Encrypt -projektin perustaja ja osallistuu HTTPS:n edistämiseen ja Internetin turvallisuutta parantavien teknologioiden kehittämiseen.

On syytä muistaa, että ehdotetut muutokset mahdollistavat Rustin käytön toisena kielenä ytimen ohjaimien ja moduulien kehittämisessä.

Rust ajurit Linuxissa
Aiheeseen liittyvä artikkeli:
Toinen versio Rust-ohjaintuen Linux-korjaustiedostoista on jo lähetetty

Ruostetukea mainostetaan vaihtoehtona, joka ei ole oletuksena aktiivinen eikä se johda siihen, että Rust sisällytetään vaadittuihin peruskoontiriippuvuuksiin. Rustin käyttäminen ajurien kehittämiseen antaa sinun luoda parempia ja turvallisempia ohjaimia pienellä vaivalla ilman, että sinun tarvitsee päästä käsiksi vapautettuun muistialueeseen, purkaa nollaosoittimia ja ylittää puskurirajoja.

Korjausten uusi versio poistaa edelleen korjaustiedostojen ensimmäisestä ja toisesta versiosta käydyn keskustelun aikana tehdyt kommentit ja merkittävimmät löytämämme muutokset:

Siirretty Rust 1.57 vakaaseen versioon viitekääntäjänä ja sitoutuminen Rust 2021 -kielen stabiloituun versioon on turvattu. Siirtyminen Rust 2021 p -spesifikaatioonsaa aloittaa työskentelyn tällaisten epävakaiden ominaisuuksien käytön välttämiseksi korjaustiedostoissa, kuten const_fn_transmute, const_panic, const_unreachable_unchecked ja core_panic ja try_reserve.

Se erottuu myös siitä alloc-version kehitystä on jatkettu Rust-kirjastosta, uudessa versiossa, "no_rc" ja "no_sync" on otettu käyttöön toiminnon poistamiseksi käytöstä jota ei käytetä ytimen Rust-koodissa, mikä tekee kirjastosta modulaarisemman. Jatkamme yhteistyötä tärkeimpien alloc-kehittäjien kanssa tuodaksemme tarvittavat ytimen muutokset pääkirjastoon. "no_fp_fmt_parse" -vaihtoehto, joka tarvitaan kirjaston toimimiseen ydintasolla, on siirretty Rustin peruskirjastoon (ytimen).

Koodi puhdistettiin kääntäjän mahdollisten varoitusten poistamiseksi kun käännetään ydintä CONFIG_WERROR-tilassa. Kun koodi luodaan Rustissa, mukana tulee muita diagnostisia kääntäjätiloja ja Clippyn linterivaroituksia.

He ehdottivat abstraktioita käyttää seqlockeja (sekvenssilukot), takaisinkutsut virranhallintaa varten, muistin I/O (readX / writeX), keskeytys- ja säikeenkäsittelijät, GPIO, laitekäyttö, ajurit ja ruostekoodin valtuustiedot.

Ohjainten kehitystyökaluja on laajennettu käyttämällä uudelleen sijoitettavia mutexeja, bittiteraattoreita, yksinkertaistettuja osoittimien sidoksia, parannettua vikadiagnostiikkaa ja tietoväylästä riippumatonta infrastruktuuria.

Linkkien käsittelyä on parannettu käyttämällä Ref-tyyppiä yksinkertaistettu, perustuu refcount_t-taustajärjestelmään, joka käyttää samannimistä keskussovellusliittymää viitteiden laskemiseen. Vakiokartoituskirjaston Arc- ja Rc-tyyppien tuki on poistettu, eikä se ole saatavilla ydintasolla suoritettavassa koodissa (itse kirjastoa varten on tehty valintoja näiden tyyppien poistamiseksi käytöstä).

Korjauksiin on lisätty versio PL061 GPIO -ohjaimesta, joka on kirjoitettu uudelleen ruosteeksi. Ohjaimen ominaisuus on, että sen lähes rivi riviltä toteutus toistaa olemassa olevan C GPIO -ohjaimen. Kehittäjille, jotka haluavat tutustua Rustin rakennusohjaimiin, on tehty rivi riviltä vertailu, joka auttaa ymmärtämään, mitä Rustissa C-koodista on tullut.

Rustin pääkoodikanta käyttää rustc_codegen_gcc:tä, rustc-taustaohjelmaa GCC:lle, joka toteuttaa AOT-käännöksen libgccjit-kirjaston avulla. Kun taustaa kehitetään asianmukaisesti, sen avulla voit kerätä ytimeen liittyvän Rust-koodin GCC:n avulla.
ARM:n, Googlen ja Microsoftin lisäksi Red Hat on ilmaissut kiinnostuksensa Rustin käyttämiseen Linux-ytimessä.

Lopuksi, jos olet kiinnostunut tietämään siitä lisää, voit tutustua yksityiskohtiin 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.