A doua versiune a patch-urilor pentru suportul driverului Rust pe Linux a fost deja livrată

În luna martie a acestui an pe sucursala Linux-următoare în care la momentul respectiv funcționa pentru kernel-ul Linux 5.13, a fost inclus un set inițial de componente pentru a dezvolta driverele de dispozitiv în limba Rust și acum s-a făcut solicitarea de a include o a doua ediție de patch-uri pentru a adăuga suport Rust la kernel-ul Linux.

Persoana care a trimis solicitarea dezvoltatorilor Linux este Miguel Ojeda, autorul proiectului Rust-for-Linux și despre care am vorbit și acum câteva zile, de când a fost angajat să se ocupe de proiectul „Prossimo” care practic se concentrează pe coordonarea eforturilor de a muta infrastructura software critică într-un cod sigur pentru a securiza memoria kernel-ului Linux cu Rust (dacă doriți să aflați mai multe despre proiect, puteți consulta postarea la linkul de mai jos.)

Rust drivere pe Linux
Articol asociat:
Prossimo, un proiect ISRG pentru securizarea memoriei kernel Linux cu Rust

Solicitarea trimisă de Miguel Ojeda este a doua versiune actualizată a componentelor pentru dezvoltarea driverelor de dispozitiv în limbajul Rust și în care comentariile făcute în timpul discuției despre prima versiune a patch-urilor sunt șterse și la care Linus Torvalds s-a alăturat deja discuției și a sugerat schimbarea logicii pentru a procesa unele operații de biți.

În interiorul beneficiilor care sunt menționate sunt că gestionarea sigură a memoriei este garantată în Rust la compilare, verificând referințele, urmărind proprietatea obiectului și durata de viață a obiectului, precum și evaluând corectitudinea accesului la memorie în timpul rulării.

Rugina oferă, de asemenea protecție de depășire a numărului întreg, necesită inițializarea obligatorie a valorilor variabilei înainte de utilizare, gestionează mai bine erorile din biblioteca standard, adoptă în mod implicit conceptul de referințe și variabile imuabile și oferă scriere statică puternică pentru a minimiza erorile logice.

Dintre schimbările care ies în evidență din această nouă versiune a patch-urilor se menționează:

  • Codul de alocare a memoriei previne posibilitatea de a genera o stare de panică atunci când apar erori precum lipsă de memorie.
  • Este inclus o variantă a bibliotecii de alocare Rust, în care codul a fost refăcut pentru a gestiona încuietori, dar scopul final este de a aduce toate caracteristicile necesare pentru kernel la ediția principală a alloc (modificările au fost deja pregătite și transferate în biblioteca standard Rust).
  • În loc de versiuni de noapte, versiunile beta și stabile pot fi folosite acum compilator rustc pentru a compila un kernel Rust-enabled. În prezent rustc 1.54-beta1 este utilizat ca un compilator de referință, dar după lansarea 1.54 la sfârșitul lunii, acesta va fi acceptat ca un compilator de referință.
  • S-a adăugat suport pentru scrierea testelor folosind atributul standard Rust „# [test]” și posibilitatea de a utiliza doctests pentru a utiliza codul de probă din documentație ca teste.
  • S-a adăugat suport pentru arhitecturile ARM32 și RISCV pe lângă x86_64 și ARM64 acceptate anterior.
    Implementări GCC îmbunătățite Rust (frontendul GCC pentru Rust) și rustc_codegen_gcc (backend-ul rustc pentru GCC), care acum depășește toate criteriile de referință.
  • A nou nivel de abstractizare pentru programele Rust să utilizeze mecanisme de nucleu scrise în C, cum ar fi copaci, obiecte de numărare a referințelor, crearea descriptorilor de fișiere, sarcini, fișiere și vectori I / O.
  • Componentele de dezvoltare a driverelor au îmbunătățit suportul pentru modulul "file_operations", pentru modulul "module!", Pentru înregistrarea macro și pentru driverele rudimentare (probează și șterge).
  • Binder are suport pentru trecerea descriptorilor de fișiere și a linkurilor LSM.
  • Un exemplu mai funcțional de driver Rust, bcm2835-rng, este propus pentru un generator de numere aleatoare hardware pentru plăcile Raspberry Pi.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre aceasta, puteți consulta detaliile În următorul link.


Lasă comentariul tău

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

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  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.