De tiende versie van patches voor de Linux-kernel met ondersteuning voor de Rust-taal

Miguel Ojeda, de auteur van het Rust-for-Linux-project, stelde de release voor van v10-componenten voor de ontwikkeling van apparaatstuurprogramma's in de Rust-taal, ter overweging door Linux-kernelontwikkelaars. Dit is de elfde editie van de patches, rekening houdend met de eerste versie, gepubliceerd zonder versienummer. De opname van Rust-ondersteuning is goedgekeurd door Linusum Torvalds voor opname in de Linux 6.1-kernel, behoudens onvoorziene problemen. De ontwikkeling wordt gefinancierd door Google en de ISRG (Internet Security Research Group), de oprichter van het Let's Encrypt-project en promoot HTTPS en de ontwikkeling van technologieën om de internetbeveiliging te verbeteren.

Net als de vorige patchversie is de v10-release teruggebracht tot het absolute minimum, voldoende om een ​​eenvoudige kernelmodule te bouwen die in de Rust-taal is geschreven. Verschillen met de vorige versie komen neer op kleine bewerkingen, waarbij sizeof wordt vervangen door ARRAY_SIZE in kallsyms.c en patches worden aangepast aan de v6.0-rc7-kernel. Er wordt verwacht dat de minimale patch, waarvan de grootte is teruggebracht van 40 naar 13 duizend regels code, de adoptie van Rust-ondersteuning in de hoofdkernel zal vereenvoudigen. Na het bieden van minimale ondersteuning is het de bedoeling om de bestaande functionaliteit geleidelijk uit te breiden en andere wijzigingen uit de Rust-for-Linux-tak over te dragen.

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

Voeg een reactie