Rust, nešto s čime se programeri Linuxa slažu

Programski jezik Rust je uvijek imao za cilj zamijeniti C u razvoju Linux kernela Kako je Rust sazrevao, nekoliko programera je izrazilo sve veći interes za njegovu upotrebu u Linux kernelu.

Na virtuelnoj konferenciji od Linux Plumbers 2020, tok mikrokonferencija od LLVM organizovao sesiju o otvorenim pitanjima i barijere za naviše prihvatanje Rusta u Linux kernelu.

Interesovanje za ovu temu je vidljivo, jer je ova sesija bila najposjećenija na manifestaciji 2020. godine.

Dakle, treba li sada prepisati cijeli Linux kernel sa Rust jezikom? Ova rasprava ne datira do danas i bila je naglašena od pojave prve stabilne verzije Rusta 2015. godine.

S obzirom na mogućnosti koje se nude Rust, neki predlažu da se to uradi. Ove godine, na konferenciji Linux vodoinstalatera u avgustu, govornici su ponovo imali vremena da o tome razgovaraju.

A iznenađujuće je to izgleda da se slažu jednoglasno, ne na ponovnom pisanju postojećeg koda u Rustu, ali na razvoju kernela nastavljajući koristiti Rust. To jest, oni zamišljaju svijet u kojem bi se novi dijelovi koda mogli pisati u Rustu.

Ova sesija se temeljila na prethodnom radu mnogih programera, uključujući prošlogodišnji govor Alex Gaynor i Geoffrey Thomas na Linux Security Summitu.

Na konferenciji su predstavili svoj rad na izradi prototipova Rust kernel modula i založili se za usvajanje Rusta u kernelu.

Naveli su rad koji pokazuje da je otprilike dvije trećine ranjivosti kernela kojima su dodijeljeni CVE u Androidu i Ubuntuu povezani s problemima sigurnosti memorije.

Završili su tako što su to objasnili Rust može u potpunosti izbjeći ovu vrstu greške zahvaljujući sigurnijim API-jima omogućeno prema tipu vašeg sistema i verifikatoru kredita.

Ova studija je već uspjela uvjeriti nekoliko održavatelja Linus Torvalds, koji je podržao uvođenje Rusta u kernel. Thomas i Gaynor, Josh Triplett, ko-šef tima za jezik Rust i dugogodišnji programer Linux kernela, kao i drugi zainteresovani programeri su učestvovali u diskusiji na ovu temu.

Kratko su se dotakli svog dosadašnjeg rada i nekih svojih ranih misli i pitanja prije nego što su većinu vremena otvorili za diskusiju.

To su upotreba postojećih API-ja u kernelu, arhitektonska podrška i pitanje o ABI kompatibilnosti između Rusta i C.

U stvari, oni u početku vjeruju u to Uvođenje Rusta u strukturu stabla mora poštovati postojeće C API-je. 

Međutim, svi smatraju da je đavo u detaljima, a i dosadašnji rad i razgovor tokom sesije otkrili su neke otvorene izazove.

Na primjer, Linux intenzivno koristi makronaredbe predprocesora i inline funkcije, koje Rust-ov alat za bindgen i sučelje vanjskih funkcija ne podržavaju tako lako.

Prema njima, trenutno jedina zrela implementacija Rusta je kompajler rustc, koji emituje kod preko LLVM-a.

Linux kernel podržava širok spektar arhitektura, od kojih mnoge nemaju dostupan LLVM backend.

Sa svoje strane, Triplett je sugerirao da bi dodavanje Rusta u kernel pomoglo u povećanju arhitektonske podrške za Rust, navodeći svoje iskustvo s Debian projektom. Spomenuo je da je uvođenje Rust softvera u Debianu pomoglo motivirati entuzijaste i korisnike nišnih arhitektura da poboljšaju Rust podršku, te se nada da će dodati podršku kernelu kako bi imao sličan učinak.

Konkretno, bio sam uvjeren da će svaka arhitektura sa LLVM pozadinom brzo podržati Rust. Diskusija se također fokusirala na alternativne Rust implementacije kao put ka široj arhitektonskoj podršci.

Sesija je završena bez ikakvih konkretnijih prekretnica, ali izgleda da generalno postoji entuzijazam za podršku Rust Mods-a i rastuća saglasnost oko opštih zahteva za ovu podršku.


Komentar, ostavi svoj

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.

  1.   automatski pilot rekao je

    Čini se kao početak nove ere, dolazi nepokretni C.

    Zdravo Rust, ćao Linus Torvalds!