Suport anti-rugină pentru nucleu Linux s-a confruntat cu critici din partea lui Torvalds

Linus Torvalds a analizat patch-uri care implementează posibilitatea de a crea drivere în limbajul Rust pentru kernel. Linuxși a făcut câteva comentarii critice.

Cele mai mari plângeri au fost cauzate de posibilitatea potențială de panică() în situații de eroare, de exemplu, într-o situație de memorie scăzută, când operațiunile de alocare dinamică a memoriei, inclusiv în cadrul nucleului, pot eșua. Torvalds a afirmat că o astfel de abordare în nucleu este fundamental inacceptabilă și, dacă acest punct nu este înțeles, poate anula complet orice cod care încearcă să folosească o astfel de abordare. Pe de altă parte, dezvoltatorul de corecții a fost de acord cu această problemă și o consideră rezolvabilă.

O altă problemă a fost încercările de a utiliza tipuri cu virgulă mobilă sau pe 128 de biți, ceea ce nu este acceptabil pentru medii precum kernelul. LinuxAceasta s-a dovedit a fi o problemă mai serioasă, deoarece biblioteca principală Rust este în prezent indivizibilă și reprezintă o singură „blob” mare — nu permite solicitarea doar a anumitor caracteristici, împiedicând utilizarea anumitor funcționalități problematice. Rezolvarea acestei probleme ar putea necesita modificări ale compilatorului și bibliotecilor Rust, iar echipa nu are în prezent o strategie pentru implementarea modularității în bibliotecile de limbaj.

În plus, Torvalds a remarcat că exemplul de driver furnizat a fost inutil și ne-a sfătuit să folosim ca exemplu un driver care rezolvă una dintre problemele reale.

Actualizare: Google și-a anunțat participarea la inițiativa de a include suportul pentru Rust în kernel. Linux și a subliniat fezabilitatea tehnică a implementării Rust pentru a combate problemele care apar din cauza erorilor de gestionare a memoriei. Google consideră că Rust este acum pregătit să se alăture limbajului C pentru dezvoltarea componentelor kernelului. LinuxArticolul oferă, de asemenea, exemple de utilizare a limbajului Rust pentru dezvoltarea de drivere de kernel, în contextul utilizării lor în platformă. Android (Rust este recunoscut ca un limbaj de dezvoltare oficial suportat) Android).

Se observă că Google a pregătit un prototip inițial al unui driver scris în Rust pentru mecanismul de comunicare interprocese Binder, care va permite o comparație detaliată a performanței și securității implementărilor Binder în C și Rust. În forma sa actuală, lucrarea nu este încă finalizată, dar pentru aproape toate abstracțiile de bază ale funcționalității nucleului necesare pentru ca Binder să funcționeze, au fost pregătite straturi pentru utilizarea acestor abstracții în codul Rust.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster