La conferința Open-Source Summit 2022, care are loc în aceste zile, Linus Torvalds a menționat în cadrul sesiunii de întrebări și răspunsuri despre posibilitatea unei integrări rapide a componentelor pentru dezvoltarea driverelor de dispozitive în nucleul Linux, folosind limbajul Rust. Nu se exclude ca patch-urile cu suport pentru Rust să fie acceptate în următoarea fereastră de recepție a modificărilor, care va forma compoziția nucleului 5.20, programată pentru sfârșitul lunii septembrie.
Cererea de inclusie a modificărilor în nucleu încă nu a fost trimisă lui Torvalds, dar setul de patch-uri a trecut printr-o revizuire suplimentară, a fost curățat de observațiile principale, este testat de ceva vreme în ramura linux-next și a fost adus într-o stare adecvată pentru crearea straturilor de abstractizare peste subsistemele nucleului, precum și pentru scrierea driverelor și modulelor. Suportul pentru Rust este prezentat ca o opțiune, care nu este activată implicit și nu implică includerea Rust în lista de dependențe de construcție obligatorii pentru nucleu.
Modificările propuse permit utilizarea Rust ca al doilea limbaj pentru dezvoltarea driverelor și modulelor nucleului. Utilizarea Rust pentru dezvoltarea driverelor va permite crearea de drivere sigure și de calitate superioară cu eforturi minime, eliminând problemele precum accesarea zonelor de memorie după eliberare, dereferențierea pointerilor nuli și depășirea limitelor buffer-ului.
Funcționarea sigură a memoriei este asigurată în Rust în timpul compilării prin verificarea referințelor, urmărirea deținerii obiectelor și gestionarea duratei de viață a obiectelor (zona de vizibilitate), precum și prin evaluarea corectitudinii accesului la memorie în timpul execuției codului. Rust oferă, de asemenea, instrumente pentru protecția împotriva depășirilor de numere întregi, necesită inițializarea obligatorie a valorilor variabilelor înainte de utilizare, gestionează mai bine erorile în biblioteca standard, aplică conceptul de referințe și variabile imutabile (immutable) în mod implicit și oferă o tipizare statică puternică pentru a minimiza erorile logice.
Sursa: opennet.ro
