Druga različica popravkov za podporo gonilnikom Rust v Linuxu je že poslana

Marca letos na podružnici linux-next v katerem je takrat delal za jedro Linuxa 5.13, Za razvoj gonilnikov naprav v operacijskem sistemu Windows je bil vključen začetni nabor komponent jezik Rust in zdaj je bila dana zahteva, da se vključi druga izdaja popravkov za dodajanje podpore Rustu jedru Linuxa.

Oseba, ki je zahtevo poslala razvijalcem Linuxa, je Miguel Ojeda, avtor projekta Rust-for-Linux in o kateri smo se pred dnevi tudi pogovarjali, saj je bil najet za prevzem projekta "Prossimo", ki je v osnovi se osredotoča na usklajevanje prizadevanj za premik kritične programske infrastrukture na varno kodo za zaščito pomnilnika jedra Linuxa z Rustom (če želite izvedeti več o projektu, se lahko posvetujete objavite na spodnji povezavi.)

Gonilniki Rust v Linuxu
Povezani članek:
Prossimo, projekt ISRG za zaščito pomnilnika jedra Linuxa z Rustom

Zahteva, ki jo je poslal Miguel Ojeda, je druga posodobljena različica komponent za razvoj gonilnikov naprav v jeziku Rust in v katerem se črtajo komentarji med razpravo o prvi različici popravkov in na katere se je Linus Torvalds že pridružil razpravi ter predlagal spremembo logike za obdelavo nekaterih bitnih operacij.

Znotraj koristi ki so omenjeni varno upravljanje pomnilnika je zagotovljeno v Rustu v času prevajanja s preverjanjem referenc, sledenjem lastništva in življenjske dobe predmeta ter ocenjevanjem pravilnosti dostopa do pomnilnika med izvajanjem.

Rja tudi zagotavlja zaščita pred prelivom celotnega številazahteva obvezno inicializacijo vrednosti spremenljivk pred uporabo, bolje obravnava napake v standardni knjižnici, privzeto sprejme koncept referenc in nespremenljive spremenljivke in ponuja močno statično pisanje, da zmanjša logične napake.

Od sprememb, ki izstopajo te nove različice popravkov je omenjeno:

  • Koda za dodelitev pomnilnika preprečuje možnost generiranja stanja panike, ko pride do napak, kot je pomanjkanje pomnilnika.
  • Je vključen različica knjižnice Rust alloc, v kateri je bila koda predelana za obdelavo ključavnic, vendar je končni cilj pripeljati vse potrebne funkcije jedra v glavno izdajo alloc (spremembe so že pripravljene in prenesene v standardno knjižnico Rust).
  • Namesto nočne gradnje je zdaj mogoče uporabljati beta in stabilne različice prevajalnik rustc za sestavljanje jedra z omogočenim Rustom. Trenutno se rustc 1.54-beta1 uporablja kot referenčni prevajalnik, po izdaji 1.54 konec meseca pa bo podprt kot referenčni prevajalnik.
  • Dodana podpora za pisanje testov z uporabo standardnega atributa Rust "# [test]" in možnost uporabe doctestov za uporabo vzorčne kode iz dokumentacije kot testov.
  • Dodana podpora za arhitekturi ARM32 in RISCV poleg prej podprtih x86_64 in ARM64.
    Izboljšane izvedbe GCC Rust (vmesnik GCC za Rust) in rustc_codegen_gcc (zaledje rustc za GCC), ki zdaj prenaša vsa merila uspešnosti.
  • A nova stopnja abstrakcije za programe Rust za uporabo mehanizmov jedra, napisanih v jeziku C, kot so drevesa, predmeti za štetje referenc, ustvarjanje deskriptorjev datotek, opravil, datotek in I / O vektorjev.
  • Komponente za razvoj gonilnikov so izboljšale podporo modulu "file_operations", makru "module!", Beleženju makrov in osnovnim gonilnikom (preizkusite in izbrišite).
  • Binder ima podporo za posredovanje deskriptorjev datotek in povezav LSM.
  • Bolj funkcionalen primer gonilnika Rust, bcm2835-rng, je predlagan za strojni generator naključnih števil za plošče Raspberry Pi.

Nazadnje, če vas zanima več o tem, se lahko obrnete na podrobnosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.