Miguel Ojeda, auteur van het Rust-for-projectLinux, voorgesteld ter overweging door kernelontwikkelaars Linux Versie 10 van de Rust-componenten voor de ontwikkeling van apparaatstuurprogramma's is uitgebracht. Dit is de elfde patch-release, rekening houdend met de eerste versie die zonder versienummer werd gepubliceerd. De opname van Rust-ondersteuning in de kernel is goedgekeurd door Linus Torvalds. Linux 6.1, tenzij er zich onvoorziene problemen voordoen. De ontwikkeling wordt gefinancierd door Google en ISRG (Internet Security Research Group), de oprichter van het Let's Encrypt-project, dat HTTPS promoot en de ontwikkeling van technologieën ter verbetering van de internetbeveiliging stimuleert.
Net als de vorige patch is de v10-release teruggebracht tot het absolute minimum, voldoende voor het bouwen van een eenvoudige kernelmodule geschreven in Rust. Verschillen met de vorige versie bestaan uit kleine aanpassingen, zoals het vervangen van `sizeof` door `ARRAY_SIZE` in `kallsyms.c` en het aanpassen van de patches aan de v6.0-rc7-kernel. Naar verwachting zal de minimale patch, waarvan de omvang is teruggebracht van 40 naar 13 regels code, de integratie van Rust-ondersteuning in de hoofdkernel vereenvoudigen. Nadat de minimale ondersteuning is gewaarborgd, is het de bedoeling om de bestaande functionaliteit geleidelijk uit te breiden en andere wijzigingen van de Rust-for-branch over te nemen.Linux.
De voorgestelde wijzigingen maken het mogelijk om Rust als tweede taal te gebruiken voor het ontwikkelen van stuurprogramma's en kernelmodules. Rust-ondersteuning wordt gepresenteerd als een optie die niet standaard is ingeschakeld en die er niet toe leidt dat Rust wordt opgenomen als een vereiste build-afhankelijkheid voor de kernel. Door Rust te gebruiken voor de ontwikkeling van stuurprogramma's kunt u met minimale inspanning veiligere en betere stuurprogramma's maken, vrij van problemen zoals geheugentoegang na het vrijmaken, null pointer-dereferenties en bufferoverruns.
Rust dwingt de geheugenveiligheid af tijdens het compileren door referentiecontrole, objecteigendom en het volgen van de levensduur van objecten (scopes), en door de juistheid van geheugentoegang tijdens runtime te evalueren. Rust biedt ook bescherming tegen overflows van gehele getallen, vereist dat variabelewaarden vóór gebruik worden geïnitialiseerd, heeft een betere foutafhandeling in de standaardbibliotheek, gebruikt standaard het concept van onveranderlijke referenties en variabelen en biedt sterke statische typering om logische fouten te minimaliseren.
Bron: opennet.ru
