Rugină, ceva cu care dezvoltatorii Linux par să fie de acord

Limbajul de programare Rust și-a propus întotdeauna să înlocuiască C în dezvoltarea kernel-ului Linux Pe măsură ce Rust s-a maturizat, mai mulți dezvoltatori și-au exprimat un interes din ce în ce mai mare pentru utilizarea sa în nucleul Linux.

La Conferința Virtuală a Instalatori Linux 2020, fluxul de microconferințe de LLVM a organizat o sesiune pe întrebări deschise si bariere pentru acceptarea ascendentă a Rust în nucleul Linux.

Interesul pentru acest subiect este vizibil, deoarece această sesiune a fost cea mai frecventată la evenimentul din 2020.

Deci ar trebui să rescriem acum întregul nucleu Linux cu limbajul Rust? Această discuție nu datează de astăzi și a fost accentuată de la apariția primei versiuni stabile de Rust în 2015.

Având în vedere posibilitățile oferite Rust, unii sugerează să o faci. Anul acesta, la conferința Linux Plumbers din august, vorbitorii au avut din nou timp să discute despre asta.

Și lucru surprinzător este că par să fie de acord în unanimitate, nu despre rescrierea codului existent în Rust, dar despre dezvoltarea kernel-ului, continuând să folosească Rust. Adică, își imaginează o lume în care noi bucăți de cod ar putea fi scrise în Rust.

Această sesiune s-a bazat pe munca anterioară a multor dezvoltatori, inclusiv o discuție susținută anul trecut de Alex Gaynor și Geoffrey Thomas la Linux Security Summit.

La conferință, aceștia și-au prezentat lucrările privind prototiparea modulelor nucleului Rust și au pledat pentru adoptarea Rust în nucleu.

Ei au citat lucrări care arată că aproximativ două treimi din vulnerabilitățile nucleului cărora li s-au atribuit CVE-uri în Android și Ubuntu sunt legate de probleme de siguranță a memoriei.

Au încheiat explicând că Rust poate evita complet acest tip de eroare datorită API-urilor mai sigure activat de tipul dvs. de sistem și de verificatorul dvs. de împrumut.

Acest studiu a reușit să convingă deja mai mulți menținători Linus Torvalds, care a susținut introducerea Rust în nucleu. Thomas și Gaynor, Josh Triplett, co-șeful echipei de limbă Rust și dezvoltator de lungă durată de kernel Linux, precum și alți dezvoltatori interesați au participat la discuția pe această temă.

Ei au atins pe scurt munca lor de până acum și câteva dintre gândurile și întrebările lor timpurii, înainte de a deschide cea mai mare parte a timpului pentru discuții.

Acestea sunt utilizarea API-urilor existente în kernel, suportul arhitectural și o întrebare despre compatibilitatea ABI între Rust și C.

De fapt, ei cred inițial asta Introducerea Rust în structura arborescentă trebuie să respecte API-urile C existente. 

Cu toate acestea, toată lumea simte că diavolul este în detalii, iar atât munca depusă până acum, cât și conversația din timpul sesiunii au scos la iveală câteva provocări deschise.

De exemplu, Linux folosește intens macrocomenzile preprocesorului și funcțiile inline, care nu sunt la fel de ușor acceptate de instrumentul Bindgen și de interfața cu funcții externe de la Rust.

Dupa parerea lor, în prezent, singura implementare matură a Rust este compilatorul rustc, care emite cod prin LLVM.

Nucleul Linux acceptă o mare varietate de arhitecturi, dintre care multe nu au un backend LLVM disponibil.

La rândul său, Triplett a sugerat că adăugarea Rust la nucleu ar ajuta la creșterea suportului arhitectural pentru Rust, citând experiența sa cu proiectul Debian. El a menționat că introducerea software-ului Rust în Debian a ajutat la motivarea entuziaștilor și utilizatorilor de arhitecturi de nișă pentru a îmbunătăți suportul Rust și speră să adauge suport pentru kernel pentru a avea un efect similar.

În special, eram convins că orice arhitectură cu un backend LLVM ar suporta rapid Rust. Discuția s-a concentrat, de asemenea, pe implementări alternative Rust ca o cale către un suport arhitectural mai larg.

Sesiunea s-a încheiat fără alte etape specifice, dar se pare că, în general, există entuziasm pentru susținerea Rust Mods și un acord tot mai mare cu privire la cerințele generale pentru acest suport.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Autopilot el a spus

    Parece el comienzo de una nueva era, el inamovible C sale a colación.

    Hello Rust, Bye Linus Torvalds!