A patra versiune a patch-urilor pentru suportul driverelor Rust pe Linux a fost publicată

Miguel Ojeda, autor al proiectului Rust-for-Linux, Teme a dezvăluit recent a patra propunere pentru componentele driverului dispozitivului Rust pentru dezvoltatorii de kernel Linux să ia în considerare.

Suportul de rugină este considerat experimental, dar s-a convenit deja să fie inclus în ramura linux-next și este suficient de matur pentru a începe să lucreze la straturi de abstractizare deasupra subsistemelor nucleului, precum și să scrie drivere și module. Dezvoltarea este finanțată de Google și ISRG (Internet Security Research Group), care este fondatorul proiectului Let's Encrypt și promovează HTTPS și dezvoltarea tehnologiilor pentru creșterea securității pe Internet.

Pentru cei care încă nu cunosc modificările propuse, ar trebui să știe că le fac posibile utilizarea Rust ca a doua limbă pentru a dezvolta controlere și module a miezului. Suportul Rust este prezentat ca o opțiune care nu este activată implicit și nu are ca rezultat includerea Rust printre dependențele de compilare necesare pentru nucleu.

Folosind Rust pentru a dezvolta drivere vă va permite să creați drivere mai bune și mai sigure cu un efort minim, fără probleme, cum ar fi accesarea unei zone de memorie după eliberarea acesteia, dereferențiarea pointerilor nuli și depășirile de buffer.

Siguranța memoriei este asigurată în Rust în momentul compilării prin verificarea referințelor, urmărirea proprietății obiectului și durata de viață a obiectului (sfera de aplicare), precum și prin evaluarea corectitudinii accesului la memorie în timpul execuției codului.

Rust oferă, de asemenea, protecție împotriva depășirii întregului, necesită ca variabilele să fie inițializate înainte de utilizare, gestionează mai bine erorile din biblioteca standard, impune conceptul de variabile și referințe imuabile în mod implicit și oferă o tastare statică puternică pentru a minimiza erorile logice.

Care sunt modificările din a patra tranșă?

În această nouă versiune a patch-urilor care sunt prezentate, se menționează că comentariile făcute în timpul discuției despre prima, a doua și a treia ediție a patch-urilor au continuat să fie eliminate.

Vom continua să actualizăm până când nu depindem de nicio caracteristică instabilă;
moment în care putem dori să începem să declarăm o versiune minimă a Rust
este acceptat, așa cum se face, de exemplu, pentru GCC și Clang.

În mod similar, am migrat și la ediția din 2021 a limbii Rust.

În ceea ce privește celelalte modificări care au fost făcute în această nouă versiune, anunțul menționează următoarele:

  • S-a făcut tranziție pentru a utiliza Rust 1.58.0 stabil ca compilator de referință.
  • Modificările necesare pentru proiect, care nu sunt încă incluse în setul principal de instrumente Rust, includ indicatorul „-Zsymbol-mangling-version=v0” (așteptată în Rust 1.59.0) și modul „maybe_uninit_extra” (așteptată în Rust 1.60.0) .
  • Au fost adăugate verificări automate pentru disponibilitatea instrumentelor Rust și adecvarea acestora, iar capacitatea de a testa suportul Rust pe sistem a fost, de asemenea, extinsă.
  • Sunt propuse noi abstracții pentru a putea accesa tabelele de identificare a dispozitivului ("IdArray" și "IdTable") din codul Rust.
  • Straturi adăugate pentru apelarea funcțiilor care sunt legate de cronometru (cadru de ceas).
  • Controlerele platformei sunt acum definite prin implementări de trăsături.
  • A fost adăugată o nouă macrocomandă pentru a simplifica înregistrarea driverului de platformă și a fost propus un nou șablon generic de driver.
  • S-au adăugat noi macrocomenzi pentru structurile „dev_*”.
  • S-au adăugat metode noi „{read,write}*_relaxed” pentru tipul IoMem .
  • Proprietatea FileOpener a fost eliminată pentru a simplifica operațiunile cu fișierele.
  • S-a adăugat parametrul „ThisModule” la numărul de argumente transmise în timpul înregistrării controlerului.
  • Este propus un șablon tipic pentru crearea modulelor kernel în limbajul Rust.

În fine, dacă sunteți interesat să aflați mai multe despre această nouă versiune, 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.