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

Programski jezik Rust je uvijek imao za cilj zamijeniti C u razvoju Linux jezgre I to je slučaj kako je Rust sazrijevao, nekoliko programera izrazilo je sve veći interes za njegovu upotrebu u Linux jezgri.

U virtualnoj konferenciji Linux Plumbers 2020, tok mikrokonferencija autor LLVM organizirao sjednicu o otvorenim pitanjima i barijere za prihvaćanje Rusta na Linux jezgri.

Interes za ovu temu je vidljiv, jer je ova sesija bila najprometnija od 2020. godine.

Pa bismo li sada trebali prepisati cijelu jezgru Linuxa jezikom Rust? Ova rasprava ne datira od danas i naglašena je od pojave prve stabilne verzije Rusta 2015. godine.

S obzirom na mogućnosti koje nudi Rust, neki predlažu da se to učini. Ove godine, na konferenciji Linux Plumbers u kolovozu, govornici su opet imali vremena raspraviti o tome.

I iznenađujuće je to čini se da se slažu jednoglasno br ne da se prepiše postojeći kôd u Rustu, već da se razvoj jezgre nastavi koristiti Rust. Odnosno, oni zamišljaju svijet u kojem bi se novi dijelovi koda mogli pisati na Rustu.

Ova se sesija temeljila na prethodnom radu mnogih programera, uključujući govor koji su prošle godine održali Alex Gaynor i Geoffrey Thomas na Linux Security Summitu.

Na konferenciji su predstavili svoj rad na prototipiranju modula jezgre Rust i zalagali se za usvajanje Rusta u jezgri.

Naveli su rad koji pokazuje da su otprilike dvije trećine ranjivosti jezgre dodijeljene CVE-ima u Androidu i Ubuntuu povezane s problemima sigurnosti memorije.

Na kraju su to objasnili Rust može u potpunosti izbjeći ovu vrstu pogreške zahvaljujući sigurnijim API-ima omogućen od vaše vrste sustava i vašeg verifikatora zajma.

Ova je studija uspjela uvjeriti već nekoliko održavatelja Linus Torvalds, koji je podržao uvođenje Rust-a u jezgru. Thomas i Gaynor, Josh Triplett, supredsjedatelj jezičnog tima Rust i dugogodišnji programer jezgre Linux, kao i drugi zainteresirani programeri sudjelovali su u raspravi na tu temu.

Ukratko su se dotaknuli njegova dosadašnjeg rada i nekih prvih razmišljanja i pitanja prije nego što su većinu vremena otvorili za raspravu.

To su uporaba postojećih API-ja u jezgri, podrška za arhitekturu i pitanje o ABI kompatibilnosti između Rust-a i C.

Zapravo, oni u početku vjeruju u to uvođenje Rust-a u strukturu stabla mora poštivati ​​postojeće C API-je. 

Međutim, svi osjećaju da je vrag u detaljima, a i dosadašnji posao i razgovor tijekom sesije otkrili su neke otvorene izazove.

Na primjer, Linux intenzivno koristi makronaredbe pretprocesora i ugrađene funkcije, koje alat za vezanje i vanjsko sučelje Rustovih vanjskih funkcija ne podržavaju tako lako.

Prema njima, trenutno jedina zrela implementacija Rusta je kompajler rustc, koji izdaje kôd putem LLVM-a.

Linux kernel podržava širok spektar arhitektura, od kojih mnoge nemaju na raspolaganju LLVM pozadinu.

Sa svoje strane, Triplett je sugerirao da bi dodavanje Rusta u jezgru pomoglo povećati arhitektonsku podršku za Rust, pozivajući se na svoje iskustvo s projektom Debian. Spomenuo je da je uvođenje Rust softvera u Debianu pomoglo motivirati entuzijaste i korisnike nišnih arhitektura da poboljšaju podršku Rustu, te se nada da će dodati podršku za jezgru da bi imao sličan učinak.

Osobito je bio uvjeren da će svaka arhitektura s LLVM pozadinom brzo biti kompatibilna s Rustom. Rasprava se također fokusirala na alternativne implementacije Rust-a kao put do šire arhitektonske podrške.

Sjednica je završila bez dodatnih konkretnih prekretnica, ali čini se kako postoji sveukupni entuzijazam za podršku Rust modovima i rastući dogovor oko općih zahtjeva za ovu potporu.


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.

  1.   automatski pilot dijo

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

    Pozdrav Rust, ćao Linus Torvalds!