De mening van Greg Kroah-Hartman en Kasey Cook over de promotie van Rust in de Linux-kernel

Greg Kroah-Hartman, verantwoordelijk voor de ondersteuning van de stabiele tak van de Linux-kernel, heeft zijn steun uitgesproken voor de ontwikkeling van nieuwe kerncomponenten in de programmeertaal Rust. Als persoon waarover de afgelopen 15 jaar alle informatie over bugs en kwetsbaarheden in de Linux-kernel is gegaan, stelt hij dat de meeste fouten in de kernel veroorzaakt worden door niet-erkende kenmerken van de programmeertaal C (corner cases), die volledig zijn uitgesloten in code geschreven in Rust.

Met het gebruik van Rust kunnen problemen zoals het aanspreken van geheugen na vrijgave, buffer overflow (deels), onjuist vrijgeven van bronnen bij het afhandelen van fouten en vergeten controles van foutcodes, tot het verleden behoren. Dit stelt maintainers in staat om zich te concentreren op echte fouten, zoals race conditions en logische problemen, in plaats van hun aandacht te verspreiden over kleine zaken tijdens het reviewproces.

De reeds bestaande oude code in C verdwijnt niet, maar voor nieuwe code en nieuwe drivers zal de implementatie van Rust de kwaliteit aanzienlijk verbeteren. De implementatie van Rust biedt ook de mogelijkheid om interne API's van de kernel te structureren op een manier die vrijwel alle fouten bij het gebruik van de interne API uitsluit. De kernel heeft te veel complexe en verwarrende API's verzameld, wat een grote belasting vormt voor maintainers bij het controleren of deze API's correct worden gebruikt. Tijdens de ontwikkeling van Rust- wrappers krijgen maintainers de kans om API's te heroverwegen en op orde te brengen, wat voordelen biedt voor iedereen, inclusief gebruikers van de programmeertaal C.

Greg ziet Rust niet als de 'zilver bullet' die alle problemen in de kernel zal oplossen, maar deze taal zal zeker helpen in een groot aantal situaties. De ondersteuning van Rust zal ook voldoen aan de behoeften van driverontwikkelaars, die hopen op een tool waarmee ze code voor hun hardware kunnen schrijven, waardoor veel soorten fouten worden uitgesloten. Wat betreft de mengeling van meerdere talen, ziet Greg daar geen groot probleem in; naar zijn mening hebben kernelontwikkelaars in het verleden ook met ernstigere uitdagingen te maken gehad, en er is geen reden om goede nieuwe ideeƫn die de succes van het project in de komende 20+ jaar kunnen waarborgen, af te wijzen.

Kees Cook, voormalig hoofd systeembeheerder van kernel.org en leider van het Ubuntu Security Team, heeft zich ook bij de discussie aangesloten. Kees verduidelijkte dat het niet gaat om het herschrijven van bestaande code in de kernel, maar om de mogelijkheid om Rust te gebruiken voor het creëren van nieuwe drivers en subsystems. Het gebruik van Rust voor nieuwe code zal niet alleen het aantal geheugenfouten verminderen, maar ook de ontwikkelingstijd verkorten. De snelheid van ontwikkeling neemt toe dankzij de verminderde arbeidsbelasting voor debugging en de strenge garanties in de taal die het mogelijk maken om fouten in een vroeg stadium van de code-writing te identificeren, nog vóór de producttesting begint.

De effectiviteit van de strategie om Rust te gebruiken voor het verbeteren van de kwaliteit van nieuwe code is al aangetoond door Google op het Android-platform. Het is aangetoond dat de belangrijkste bron van beveiligingsproblemen nieuwe code is, en het is belangrijk om de kwaliteit daarvan prioriteit te geven. Voor oude code bestaat er een exponentiƫle afhankelijkheid van beveiliging naargelang de tijd (bijvoorbeeld, code van 5 jaar oud heeft gemiddeld 3.4 keer minder kwetsbaarheden per eenheid dan nieuwe code).

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster