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

Tijekom posljednjih mjeseci Linux programeri su se svađali mogućnost dopustiti korištenje jezika Rust za pisanje novih upravljačkih programa za kernel.

Prošle godine, programeri Linux kernela čini se da su postigli dogovor o tom pitanju, Pobornici Rusta naveli su rad koji pokazuje da je otprilike dvije trećine ranjivosti kernela kojima su dodijeljeni CVE-ovi u Androidu i Ubuntuu povezani s problemima sigurnosti memorije.

Nakon ove izjave, Linus Torvalds, softverski inženjer, vodeći kreator i programer jezgre Linuxa, rekao je u intervjuu da bi rasprave o toj temi bile mnogo važnije od podužeg posta na Googleu o jeziku.

Kada su ga upitali o prijedlogu za korištenje Rusta, rekao je: "Rješenje je jednostavno: samo upotrijebite C ++ umjesto Rusta."

Nakon toga u ožujku je pokrenuta prva podrškae što je omogućilo da se Rust drajveri smjeste u stablo Linux-Next radi daljnjeg testiranja prije njihovog eventualnog uključivanja u glavnu kernel.

Odmah iza toga bio je ponovno objavljen "zahtjev za komentar" na mailing listi kernela o perspektivi Rust koda za jezgru Linuxa.

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

Objava mailing liste iznijela 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 posljednjih tjedana i mjeseci primijetili da se ozbiljno pokušava uvesti drugi jezik u kernel. Konačno smo tamo, s RFC-om koji dodaje podršku za Rust Linux kernelu”, rekao je Miguel Ojeja. "Znamo da postoje ogromni troškovi i rizici uvođenje novog jezika u kernel", dodao je.

Projektni tim Rust za Linux prešao s Rust beta kompajlera na korištenje stabilnih izdanja, migrira svaki put kada se objavi nova verzija.

"Željeli bismo zahvaliti Rustu što je radio s nama na ovim opcijama kako bi ih kernel mogao koristiti", rekao je Miguel.

Prilikom ažuriranja kompajlera tim uspio ukloniti neke nestabilne značajke s popisa: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic i try_reserve.

Uz to se ističe da dodane su neke opcije modularizacije više dodijeliti kako biste onemogućili neke nepotrebne funkcije: no_rc i no_sync.

Upstream, kako bi slučaj korištenja kernela bio dobro podržan, ili točnije, "mješavina" opcija potrebnih kernelu, Upstream jezgra je također dodala 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 ta što je dijagnostiku Rust malo lakše onemogućiti u kodu, što je strože u općem slučaju.

također implementirane su apstrakcije i ažuriranja upravljačkih programa. Tim je dodao apstrakcije za zaključavanja streama, povratne pozive za upravljanje napajanjem, io memoriju (readX / writeX), irq čipove i upravitelje toka visoke razine, gpio čipove (uključujući irq čipove), periferne uređaje, periferne uređaje Amba i drajvere.

Podrška od kontroler je poboljšan infrastrukturom neovisnom o sabirnici, Opozivi objekti, opozivi muteksi, učinkoviti iteratori bita, bolja dijagnostika panike i pojednostavljeni omoti pokazivača. Dodatno, poboljšao je i pojednostavio Ref objekte (kompatibilan s 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 podsustave i kontrolere za pisanje i druge module. Trenutna serija je upravo stigla na Linux-next, tako da će se prvo pokretanje održati ovog tjedna.

izvor: https://lkml.org/lkml


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.