În ramura nucleului Linux-next a fost adăugat cod pentru dezvoltarea de drivere în limbajul Rust

În cadrul ramurii linux-next, pe baza căreia va fi formată versiunea nucleului Linux 5.13, a fost inclus un set inițial de componente pentru dezvoltarea driverelor de dispozitive în limbajul Rust. A fost publicată separată documentația privind utilizarea Rust în nucleul Linux și un exemplu de modul kernel cu un driver de dispozitiv de tip simbol în limbajul Rust. Codul a fost adăugat de Stephen Rothwell, întreținătorul ramurii Linux-next. De obicei, ramura Linux-next include cod care este gata să fie acceptat în următorul ciclu de acceptare a modificărilor în nucleu, dar nu este clar dacă suportul pentru Rust va fi acceptat de Linus Torvalds în Linux 5.13, deoarece codul nu a trecut printr-o revizuire de către un grup larg de dezvoltatori.

Suportul pentru dezvoltarea driverelor nucleului Linux în limbajul Rust a fost discutat activ anul trecut, inclusiv cu participarea lui Linus Torvalds, care nu a exclus această posibilitate. Ideea a fost de asemenea susținută de Greg Kroah-Hartman, responsabil pentru suportul ramurii stabile a nucleului Linux. Utilizarea Rust pentru dezvoltarea driverelor va permite crearea unor drivere sigure și de calitate superioară cu un efort minim, eliminând probleme precum accesul la zona de memorie după ce aceasta a fost eliberată, dereferențierea pointerilor nuli și depășirea limitelor buffer-ului.

Pentru a activa suportul pentru Rust în ramura linux-next, în KConfig a fost adăugată opțiunea CONFIG_RUST („Suport Rust” în meniul „Configurare generală”), activarea căreia verifică existența compilatorului rustc în sistem și, în cazul prezenței acestuia, permite activarea altor componente legate de Rust (de exemplu, în meniul „Hacking kernel” apare secțiunea „Rust hacking”). Utilizarea Rust este considerată o opțiune, care nu este activă în mod implicit și nu conduce la includerea Rust în lista dependențelor obligatorii de compilare pentru nucleu.

Compunerea componentelor nucleului în Rust este posibilă atât utilizând GCC, cât și prin compilarea cu Clang. Pentru a utiliza Rust în nucleu, este necesar să instalați cele mai recente build-uri nightly ale compilatorului rustc, nu mai vechi de ramura nightly-2021-02-20 (se promite adăugarea suportului pentru ramurile stabile Rust, dar deocamdată există o legătură cu unele funcționalități experimentale). De asemenea, este necesar să aveți în sistem bibliotecile standard Rust, furnizate în pachetul rust-src, și generatorul de legături bindgen. Suportul este deocamdată limitat la platformele x86_64 și ARM64.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster