Rust-ondersteuning voor de Linux-kernel krijgt kritiek van Torvalds

Linus Torvalds beoordeelde de patches die de mogelijkheid implementeerden om stuurprogramma's in de Rust-taal voor de Linux-kernel te maken, en maakte enkele kritische opmerkingen.

De grootste klachten werden veroorzaakt door de potentiële mogelijkheid van paniek() in foutsituaties, bijvoorbeeld in een situatie met weinig geheugen, wanneer bewerkingen van dynamische geheugentoewijzing, inclusief binnen de kernel, kunnen mislukken. Torvalds verklaarde dat een dergelijke benadering in de kernel fundamenteel onaanvaardbaar is en als dit punt niet wordt begrepen, kan hij elke code die een dergelijke benadering probeert te gebruiken, volledig NAKEREN. Aan de andere kant was de patchontwikkelaar het met dit probleem eens en beschouwt het als oplosbaar.

Een ander probleem waren pogingen om drijvende komma- of 128-bits typen te gebruiken, die niet acceptabel zijn voor omgevingen zoals de Linux-kernel. Dit bleek een serieuzer probleem te zijn, aangezien de kern van de Rust-bibliotheek op dit moment ondeelbaar is en één grote klodder vertegenwoordigt - er is geen manier om slechts enkele van de functies op te vragen, waardoor het gebruik van een of andere problematische functionaliteit wordt voorkomen. Om dit probleem op te lossen zijn mogelijk wijzigingen aan de rust-compiler en -bibliotheken nodig, hoewel het team op dit moment nog geen strategie heeft voor het implementeren van de modularisering van de taalbibliotheken.

Bovendien merkte Torvalds op dat het meegeleverde drivervoorbeeld nutteloos was en adviseerde hij ons om als voorbeeld een driver te gebruiken die een van de echte problemen oplost.

Update: Google heeft zijn deelname aangekondigd aan het initiatief om Rust-ondersteuning naar de Linux-kernel te pushen en heeft technische redenen gegeven voor de introductie van Rust om problemen als gevolg van geheugenfouten te bestrijden. Google is van mening dat Rust klaar is om zich bij C aan te sluiten als de taal voor het ontwikkelen van Linux-kernelcomponenten. Het artikel geeft ook voorbeelden van het gebruik van de Rust-taal om kernelstuurprogramma's te ontwikkelen, in de context van hun gebruik op het Android-platform (Rust wordt erkend als een officieel ondersteunde taal voor Android-ontwikkeling).

Opgemerkt wordt dat Google een eerste prototype heeft voorbereid van een stuurprogramma geschreven in Rust voor het interprocess-communicatiemechanisme van Binder, dat een gedetailleerde vergelijking van de prestaties en veiligheid van Binder-implementaties in C en Rust mogelijk zal maken. In zijn huidige vorm is het werk nog niet voltooid, maar voor bijna alle basisabstracties van de kernelfunctionaliteit die nodig zijn om Binder te laten werken, zijn er lagen voorbereid voor het gebruik van deze abstracties in Rust-code.

Bron: opennet.ru

Voeg een reactie