De vijfde versie van de patches voor ondersteuning van Rust-stuurprogramma's op Linux is gepubliceerd

onlangs Miguel Ojeda, auteur van het Rust-for-Linux-project het vijfde voorstel uitgebracht Linux-kernelontwikkelaars naar keuze voor ontwikkelingscomponenten Roest apparaatstuurprogramma's voor hen om te overwegen.

Voor degenen die nog steeds niet op de hoogte zijn van deze reeks voorstellen die al enkele maanden zijn gepubliceerd, moet u weten dat het idee erachter te wijten is aan het feit dat Rust-ondersteuning momenteel als experimenteel wordt beschouwd, maar is al opgenomen in de linux-next branch en is volwassen genoeg om te gaan werken aan het maken van abstractielagen over de kernelsubsystemen, evenals het schrijven van stuurprogramma's en modules.

nog, De ontwikkelingscommissie van Miguel Ojeda 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 vergroten.

Het is belangrijk te vermelden dat de voorgestelde wijzigingen ze maken het mogelijk om Rust te gebruiken als een tweede taal voor het ontwikkelen van stuurprogramma's en kernelmodules. Rust-ondersteuning wordt gepresenteerd als een optie die niet standaard is ingeschakeld en er niet toe leidt dat Rust wordt opgenomen in de vereiste build-afhankelijkheden voor de kernel.

Door Rust te gebruiken om stuurprogramma's te ontwikkelen, kunt u met minimale inspanning betere en veiligere stuurprogramma's maken, zonder problemen zoals toegang tot een geheugengebied nadat het is vrijgemaakt, verwijzing naar null-aanwijzers en bufferoverlopen.

Geheugenbeveiliging wordt in Rust tijdens het compileren geboden door referenties te controleren, objecteigendom en objectlevensduur (scope) te volgen, evenals door de juistheid van geheugentoegang te evalueren tijdens de uitvoering van de code. Rust biedt ook bescherming tegen overloop bij gehele getallen, vereist dat variabelen vóór gebruik worden geïnitialiseerd, gaat beter om met fouten in de standaardbibliotheek, dwingt standaard het concept van onveranderlijke variabelen en verwijzingen af ​​en biedt sterk statisch typen om logische fouten te minimaliseren.

Belangrijkste nieuwigheden in het vijfde voorstel

In de nieuwe versie van de patches, ging door met het verwijderen van reacties gemaakt tijdens de bespreking van de patches van de eerste, tweede, derde en vierde editie.

In het deel van de wijzigingen en verbeteringen die zijn aangebracht, kunnen we vinden dat de component validatie voor compatibiliteit met Rust is toegevoegd aan het continue integratiesysteem gebaseerd op de Intel-compatibele 0DAY/LKP-bot en testrapporten zijn begonnen te worden vrijgegeven.

Daarnaast wordt benadrukt dat: integratie van Rust-ondersteuning wordt voorbereid in geautomatiseerd testsysteem KernelCI, plus GitHub CI-gebaseerde tests werden overgeschakeld naar het gebruik van containers.

Dat wordt ook benadrukt de mogelijkheid toegevoegd om extra parameters te definiëren bij het registreren van apparaten, evenals het script is_rust_module.sh is opnieuw ontworpen en dat ondersteuning voor statische synchronisatieprimitieven (global gedeelde variabelen) op basis van de "CONFIG_CONSTRUCTORS"-implementatie is toegevoegd.

Van de andere opvallende veranderingen in dit nieuwe voorstel van controllers:

  • Rust Core-modules hoeven niet de attributen te definiëren: "#![no_std]" en "#![feature(...)]".
  • Ondersteuning toegevoegd voor single build-doelen (.o, .s, .ll en .i).
  • De coderichtlijnen definiëren nu regels voor het afbakenen van opmerkingen ("//") en het documenteren van code ("///").
  • Vereenvoudigd slotbeheer: Guard en GuardMut zijn gecombineerd in één geparametriseerd type.
  • De "RwSemaphore"-abstractie toegevoegd, die fungeert als een wrapper over de C rw_semafoorstructuur.
  • Om mmap te gebruiken, zijn een nieuwe mm-module en een VMA-abstractie (bindend op de vm_area_struct-structuur) toegevoegd.
  • De PL061 GPIO-controller is gewijzigd om de macro "dev_*!" te gebruiken.
  • Algemene code opschonen.

Eindelijk als u er meer over wilt weten over dit nieuwe voorstel, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.