De vijfde editie van de Linux-kernelpatches met ondersteuning voor de programmeertaal Rust

Miguel Ojeda, de auteur van het Rust-for-Linux-project, heeft een vijfde variant van componenten voorgesteld voor de ontwikkeling van stuurprogramma's voor apparaten in de programmeertaal Rust, ter overweging aan de ontwikkelaars van de Linux-kern. Ondersteuning voor Rust wordt als experimenteel beschouwd, maar is al opgenomen in de linux-next tak en is voldoende ontwikkeld om te beginnen met het creëren van abstractielaag boven de subsysteem van de kern, evenals voor het schrijven van stuurprogramma's en modules. De ontwikkeling wordt gefinancierd door Google en de ISRG (Internet Security Research Group), die de oprichter is van het Let’s Encrypt-project en bijdraagt aan de bevordering van HTTPS en de ontwikkeling van technologieën voor het verbeteren van internetbeveiliging.

Laten we niet vergeten dat de voorgestelde wijzigingen het mogelijk maken om Rust als tweede taal te gebruiken voor het ontwikkelen van stuurprogramma's en kernelmodules. Ondersteuning voor Rust wordt gepresenteerd als een optie die standaard niet is ingeschakeld en die niet leidt tot het opnemen van Rust in de verplichte build afhankelijkheden van de kernel. Het gebruik van Rust voor het ontwikkelen van stuurprogramma's zal het mogelijk maken om met minimale inspanning veilige en kwalitatief hoogwaardige stuurprogramma's te creëren, vrij van problemen zoals het aanspreken van geheugengebieden na vrijgave, het de-referencen van null-pointers en buffer-overflows.

Veilige geheugentoegang wordt in Rust tijdens de compilatie gegarandeerd door middel van referentietests, objecteigenaarschap en het bijhouden van de levensduur van objecten (scope), evenals door het evalueren van de geldigheid van geheugentoegang tijdens het uitvoeren van code. Rust biedt ook middelen om te beschermen tegen gehele getallenoverflows, vereist dat variabelen verplicht worden geïnitialiseerd voordat ze worden gebruikt, behandelt fouten beter in de standaardbibliotheek, past het concept van onveranderlijkheid (immutable) van verwijzingen en variabelen standaard toe en biedt sterke statische typecontrole om logische fouten te minimaliseren.

In de nieuwe variant van de patches is de voortzetting van het oplossen van opmerkingen die zijn gemaakt tijdens de discussies over de eerste, tweede, derde en vierde versies van de patches. In de nieuwe versie:

  • In het door Intel ondersteunde continue integratiesysteem met de 0DAY/LKP-bot is een controle toegevoegd voor de componenten ter ondersteuning van Rust en is men begonnen met de publicatie van testverslagen. De integratie van de ondersteuning voor Rust in het automatische testsysteem KernelCI wordt voorbereid. De testen op basis van GitHub CI zijn overgestapt op het gebruik van containers.
  • Kernelmodules in Rust zijn vrijgesteld van de noodzaak om crate-attributen ‘#![no_std]’ en ‘#![feature(...)]’ te definiëren.
  • Ondersteuning voor enkele builddoelen (.o, .s, .ll en .i) is toegevoegd.
  • In de richtlijnen voor codevormgeving zijn regels vastgesteld met betrekking tot het scheiden van commentaar (‘//’) en het documenteren van code (‘///’).
  • Het script is_rust_module.sh is herzien.
  • Ondersteuning is toegevoegd voor statische (globale gedeelde variabelen) synchronisatieprimitieven, gebaseerd op de implementatie van ‘CONFIG_CONSTRUCTORS’.
  • Beheer van locks is vereenvoudigd: Guard en GuardMut zijn samengevoegd in één geparametriseerd type.
  • Het is mogelijk gemaakt om extra parameters op te geven bij het registreren van apparaten.
  • Een abstractie ‘RwSemaphore’ is toegevoegd, die dient als een wrapper om de C-structuur rw_semaphore.
  • Voor het gebruik van mmap is een nieuwe module mm en de abstractie VMA (wrapper om de structuur vm_area_struct) toegevoegd.
  • De GPIO PL061-stuurprogramma is overgezet naar het gebruik van de macro ‘dev_*!’.
  • Er is een algemene schoonmaak van de code uitgevoerd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster