Suportul pentru Rust în kernelul Linux s-a confruntat cu critici din partea lui Torvalds

Linus Torvalds a revizuit patch-urile pentru implementarea posibilității de a crea drivere în limbajul Rust pentru kernelul Linux și a exprimat unele observații critice.

Cele mai mari controverse le-a stârnit posibila ieșire în panică() în situații de eroare, de exemplu, în cazul insuficienței de memorie, când operațiile de alocare dinamică a memoriei, inclusiv cele din interiorul kernelului, pot eșua. Torvalds a declarat că o astfel de abordare este fundamental inacceptabilă în kernel și, în cazul în care acest aspect nu este înțeles, ar putea respinge complet (totally NAKed) orice cod care va încerca să utilizeze o astfel de abordare. Pe de altă parte, dezvoltatorul implicat în patch-uri a recunoscut problema și consideră că poate fi rezolvată.

O altă problemă a fost încercarea de a utiliza calcule cu virgulă mobilă sau tipuri de 128 de biți, ceea ce nu este permis pentru medii precum kernelul Linux. Aceasta s-a dovedit a fi o problemă mai serioasă, deoarece, în prezent, biblioteca de bază (core) Rust este indivizibilă și reprezintă un singur blob mare - nu există posibilitatea de a solicita doar unele dintre funcționalități, prevenind utilizarea anumitor funcții problematice. Rezolvarea problemei ar putea necesita modificări în compilatorul Rust și bibliotecă, având în vedere că, în prezent, echipa nu are o strategie pentru implementarea modularității bibliotecilor limbajului.

În plus, Torvalds a menționat că exemplul de driver furnizat este inutil și a sugerat să fie inclus ca exemplu un driver care să rezolve o problemă reală.

Adăugare: Compania Google a anunțat implicarea sa în inițiativa de promovare a suportului Rust în kernelul Linux și a prezentat aspecte tehnice privind fezabilitatea implementării Rust pentru a combate problemele care apar din erorile în gestionarea memoriei. Google consideră că Rust este deja pregătit să se alăture limbajului C pentru dezvoltarea componentelor kernelului Linux. Articolul include, de asemenea, exemple de utilizare a limbajului Rust pentru dezvoltarea driverelor kernelului, în contextul utilizării lor în platforma Android (Rust fiind recunoscut ca limbaj oficial pentru dezvoltarea Android).

Se menționează că Google a pregătit un prototip inițial al unui driver scris în Rust pentru mecanismul de interacțiune între procese Binder, care va permite o comparație detaliată a performanței și securității implementărilor Binder în C și Rust. În forma actuală, munca nu este finalizată, dar practic toate abstracțiile de bază ale funcționalității nucleului, necesare pentru funcționarea Binder, au fost pregătite cu straturi pentru utilizarea acestor abstracții în codul scris în Rust.

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