Rust za Linux uključuje nekoliko poboljšanja za podršku

Tokom posljednjih mjeseci Linux programeri su se svađali mogućnost za dozvoliti upotrebu Rust jezika da napišete nove drajvere uređaja za kernel.

Prošle godine, programeri Linux kernela izgleda da su postigli dogovor po tom pitanju, Pristalice Rusta su citirale rad koji pokazuje da je otprilike dvije trećine ranjivosti kernela kojima su dodijeljeni CVE u Androidu i Ubuntuu povezani s problemima sigurnosti memorije.

Nakon ove izjave, Linus Torvalds, softverski inženjer, vodeći kreator i programer Linux kernela, rekao je u intervjuu da bi diskusije na ovu temu bile daleko važnije od dugačkog Google posta o jeziku.

Kada su ga upitali o prijedlogu da se koristi Rust, on je rekao da je "rješenje ovdje jednostavno: samo koristite C ++ umjesto Rusta."

Nakon toga u martu je pokrenuta prva podrškae koji je omogućio da se Rust drajveri postave u stablo Linux-Next radi daljeg testiranja prije njihovog eventualnog uključivanja u glavni kernel.

Odmah iza toga bio je ponovo objavljen "zahtjev za komentar" na mailing listi kernela o perspektivi Rust koda za Linux kernel.

Miguel OjedaProgramer Linux kernela pokrenuo je prijedlog zahtjeva za komentare (RFC) na mailing listi Linux kernela.

Post na mailing listi izložio je uvjerenja programera uključenih u dodavanje Rust koda u kernel, prednosti poput poboljšane sigurnosti memorije i još mnogo toga.

“Neki od vas su primijetili posljednjih sedmica i mjeseci da se ozbiljno pokušava uvesti drugi jezik u kernel. Konačno smo tamo, sa RFC-om koji dodaje Rust podršku Linux kernelu”, rekao je Miguel Ojeja. "Znamo da postoje ogromni troškovi i rizici koji su uključeni u uvođenje novog jezika u kernel," dodao je.

Rust for Linux projektni tim premješten sa Rust beta kompajlera na korištenje stabilnih izdanja, migrira svaki put kada se objavi nova verzija.

"Željeli bismo da se zahvalimo Rustu što je radio s nama na ovim opcijama kako bi kernel mogao da ih koristi," rekao je Miguel.

Prilikom ažuriranja kompajlera, tim uspio ukloniti neke nestabilne karakteristike sa liste: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic i try_reserve.

Pored ovoga, ističe se da neke opcije modularizacije su dodane više dodijeliti da onemogućite neke nepotrebne funkcije: no_rc i no_sync.

Upstream, da bi slučaj upotrebe kernela bio dobro podržan, ili tačnije "mješavina" opcija potrebnih kernelu, Upstream jezgro je također dodalo no_fp_fmt_parse.

S druge strane, Rust je omogućio niz dodatne dijagnostike za Rust i Clippy kompajler. Jedna razlika u odnosu na C je u tome što je dijagnostiku Rust-a malo lakše onemogućiti u kodu, što je strožije u opštem slučaju.

Takođe apstrakcije i ažuriranja drajvera su implementirana. Tim je dodao apstrakcije za zaključavanja toka, povratne pozive za upravljanje napajanjem, io memoriju (readX / writeX), irq čipove i menadžere tokova visokog nivoa, gpio čipove (uključujući irq čipove), periferne uređaje, amba periferne uređaje i drajvere.

Podrška od kontroler je poboljšan infrastrukturom nezavisnom od magistrale, Opozivi objekti, opozivi muteksi, efikasni iteratori bita, bolja dijagnostika panike i pojednostavljeni omoti pokazivača. Dodatno, poboljšao je i pojednostavio Ref objekte (kompatibilan sa refcount_t) i zamijenio sve Rust instance.

I novi drajver za gpio PL061 uređaje je implementiran i isporučen kao RFC patch.

Na kraju treba napomenuti da Podrška za hrđu još uvijek se smatra eksperimentalnom. Međutim, podrška je dovoljno dobra da programeri kernela prionu na posao u Rust apstrakcijama za podsisteme pisanja i kontrolere i druge module. Trenutna serija je upravo stigla na Linux-next, tako da će se prvo pokretanje održati ove sedmice.

Izvor: https://lkml.org/lkml


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.