Rust pentru Linux include câteva îmbunătățiri de suport

În ultimele luni Dezvoltatorii Linux s-au certat posibilitatea de permite utilizarea limbajului Rust pentru a scrie noi drivere de dispozitiv pentru nucleu.

Anul trecut, dezvoltatorii de kernel Linux Se pare că au ajuns la un acord în această problemă, Susținătorii Rust au citat lucrări care arată că aproximativ două treimi din vulnerabilitățile kernelului atribuite CVE-urilor în Android și Ubuntu sunt legate de probleme de siguranță a memoriei.

În urma acestei declarații, Linus Torvalds, inginer software și principal creator și dezvoltator al kernel-ului Linux, a declarat într-un interviu că discuțiile pe această temă ar fi mult mai importante decât o postare lungă pe Google pe limbă.

Când a fost întrebat despre sugestia de a folosi Rust, el a indicat că „soluția de aici este simplă: folosește doar C++ în loc de Rust”.

Dupa aceea În martie, a fost lansat primul suporte care a permis ca driverele Rust să fie plasate în arborele Linux-Next pentru testare ulterioară înainte de eventuala lor includere în nucleul principal.

Chiar în spatele ei era o „cerere de comentarii” republicată pe lista de corespondență a nucleului cu privire la perspectivele pentru codul Rust pentru nucleul Linux.

Miguel Ojeda, dezvoltatorul nucleului Linux, a inițiat o propunere de solicitare de comentarii (RFC) pe lista de corespondență a nucleului Linux.

Postarea pe lista de corespondență a subliniat convingerile dezvoltatorilor implicați în adăugarea codului Rust la kernel, beneficii precum securitatea îmbunătățită a memoriei și multe altele.

„Unii dintre voi ați observat în ultimele săptămâni și luni că este în desfășurare o încercare serioasă de a aduce o a doua limbă în nucleu. Suntem în sfârșit acolo, cu un RFC care adaugă suport pentru Rust la kernel-ul Linux”, a spus Miguel Ojeja. „Știm că există costuri și riscuri enorme implicate în introducerea unei noi limbi în nucleu”, a adăugat el.

Echipa de proiect Rust pentru Linux a trecut de la compilatorul Rust beta la utilizarea versiunilor stabile, migrând de fiecare dată când este lansată o nouă versiune.

„Am dori să-i mulțumim lui Rust pentru că a lucrat cu noi la aceste opțiuni, astfel încât nucleul să le poată folosi”, a spus Miguel.

Când actualizați compilatorul, computerul a putut elimina unele caracteristici instabile: const_fn_transmute , const_panic , const_unreachable_unchecked , core_panic și try_reserve .

Pe lângă aceasta, se subliniază că au fost adăugate unele opțiuni de modularizare plus la alloc pentru a dezactiva unele funcții inutile: no_rc și no_sync .

Upstream, astfel încât cazul de utilizare a nucleului să fie bine suportat, sau mai precis, „combinația” de opțiuni de care are nevoie nucleul, nucleul Upstream a adăugat și no_fp_fmt_parse .

Pe de altă parte, Rust a activat o serie de diagnostice suplimentare pentru compilatorul Rust și Clippy. O diferență cu C este că diagnosticarea Rust este puțin mai ușor de dezactivat în cod, ceea ce este mai strict în cazul general.

de asemenea abstracțiile și actualizările driverelor au fost implementate. Echipa a adăugat abstracții pentru blocarea fluxului, apeluri de gestionare a energiei, memorie io (readX/writeX), cipuri irq și manageri de flux de nivel înalt, cipuri gpio (inclusiv cipuri irq), periferice, periferice amba și drivere.

Sprijinul lui controlerul este îmbunătățit cu o infrastructură independentă de magistrală, obiecte revocabile, mutexuri revocabile, iteratoare eficiente de biți, diagnosticare de panică mai bună și împachetare de indicatori simplificate. În plus, a îmbunătățit și simplificat obiectele Ref (care acceptă refcount_t ) și a înlocuit toate instanțele Rust.

Și un nou driver pentru dispozitivele gpio PL061 a fost implementat și este livrat ca un patch RFC.

În cele din urmă, trebuie remarcat faptul că Suport de rugină considerat încă experimental. Cu toate acestea, suportul este suficient de bun pentru ca dezvoltatorii de kernel să înceapă lucrul în abstracții Rust pentru subsisteme și drivere de scriere și alte module. Seria actuală tocmai a sosit pe Linux-next, așa că prima rulare va avea loc săptămâna aceasta.

Fuente: https://lkml.org/lkml


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.