Suportul pentru Rust a fost transferat din funcționalitățile experimentale în cele principale ale nucleului Linux

La conferința Maintainers Summit, care se desfășoară în aceste zile, a avut loc o discuție despre rezultatele experimentului de adăugare a funcționalității de dezvoltare a componentelor în nucleul Linux folosind limbajul Rust. Participanții au recunoscut experimentul ca fiind un succes și au decis să transfere suportul pentru limbajul Rust în categoria părților principale ale nucleului, eliminând eticheta de funcționalitate experimentală.

Acum trei ani, posibilitatea dezvoltării de drivere și module în limbajul Rust a fost adăugată în nucleul 6.1. De atunci, în nucleu au fost incluse abstracții pentru dezvoltarea driverelor pentru GPU, sisteme de fișiere, dispozitive de stocare, adaptoare de rețea și dispozitive USB. La limbajul Rust se dezvoltă driverul Nova pentru GPU NVIDIA, asahi pentru GPU Apple AGX, Tyr pentru GPU ARM Mali, rust_ext2 pentru sistemul de fișiere Ext2. În nucleu a fost acceptată o implementare IPC Binder scrisă în Rust. Proiectul RROS dezvoltă o subcadru în timp real pentru nucleul Linux, scris în Rust. Suportul pentru Rust este inactiv în mod implicit și nu duce la includerea Rust ca dependență de construire necesară în nucleu.

Conform susținătorilor promovării Rust, acest limbaj elimină apariția celor mai multe erori întâlnite în nucleu, cauzate de specificitățile limbajului C (corner case), permițând astfel concentrare asupra erorilor logice și a stărilor de competiție în timpul revizuirii. Rust ajută la evitarea problemelor precum accesarea memoriei după eliberare, depășirea limitelor buffer-ului, eliberarea incorectă a resurselor în gestionarea erorilor și uitarea verificărilor codurilor de erori returnate. Aplicarea Rust pentru noul cod oferă, de asemenea, posibilitatea de a reduce timpul de dezvoltare, datorită scăderii eforturilor de depanare și prin existența garanțiilor stricte în limbaj, care identifică erorile într-o etapă timpurie a scrierii codului.

Oponenții implementării Rust în nucleu consideră inacceptabilă utilizarea mai multor limbaje de programare în proiecte complexe — bazele de cod mixte îngreunează munca mentainerilor, deoarece îi fac să depindă de codul scris în alt limbaj. De exemplu, în cazul existenței de învăluiri scrise în Rust, dezvoltatorii subsistemelor scrise în C trebuie să ia în considerare impactul modificărilor asupra continuității funcționalității acestei învăluiri.

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