Den andra versionen av korrigeringsfilerna för Rust-drivrutinsstöd på Linux har redan skickats

I mars i år på linux-nästa filial där vid den tiden det fungerade för Linux-kärnan 5.13, en första uppsättning komponenter inkluderades för att utveckla drivrutiner i språket Rost och nu har begäran gjorts att inkludera en andra upplaga av korrigeringar för att lägga till Rust-stöd till Linux-kärnan.

Den person som har skickat begäran till Linux-utvecklarna är Miguel Ojeda, författare till Rust-for-Linux-projektet och som vi också pratade om för några dagar sedan, eftersom han anställdes för att ta hand om "Prossimo" -projektet som i princip fokuserar på att samordna insatser för att flytta kritisk programvaruinfrastruktur till en säker kod för att säkra Linux-kärnminne med Rust (om du vill veta mer om projektet kan du konsultera postar på länken nedan.)

Rost drivrutiner på Linux
Relaterad artikel:
Prossimo, ett ISRG-projekt för att säkra Linux-kärnminne med Rust

Begäran skickad av Miguel Ojeda är en andra uppdaterad version av komponenterna för utveckling av enhetsdrivrutiner på Rust-språk och där kommentarerna som gjordes under diskussionen av den första versionen av korrigeringsfilerna raderas och till vilka Linus Torvalds redan gick med i diskussionen och föreslog att logiken skulle ändras för att bearbeta några bitoperationer.

Inuti fördelarna som nämns är det säker minneshantering garanteras i Rust vid sammanställningstid genom att kontrollera referenser, spåra objektägande och objektliv, samt utvärdera riktigheten av minnesåtkomst vid körningstid.

Rost ger också heltalsöverskridande skydd, kräver obligatorisk initialisering av variabla värden före användning, hanterar bättre fel i standardbiblioteket, antar begreppet referenser och oföränderliga variabler som standard och erbjuder stark statisk skrivning för att minimera logiska fel.

Av de förändringar som sticker ut av denna nya version av patcharna nämns det:

  • Minnestilldelningskoden förhindrar möjligheten att generera ett paniktillstånd när fel som minnet uppstår.
  • Ingår en variant av Rust-tilldelningsbiblioteket, där koden har omarbetats för att hantera lås, men slutmålet är att ta med alla nödvändiga funktioner för kärnan till huvudutgåvan av alloc (ändringarna har redan förberetts och överförts till standard Rust-biblioteket).
  • Istället för nattliga byggnader kan nu beta- och stabila versioner användas rustc-kompilator för att kompilera en rostaktiverad kärna. För närvarande används rustc 1.54-beta1 som en referenskompilator, men efter 1.54-utgåvan i slutet av månaden stöds den som en referenskompilator.
  • Lagt till stöd för att skriva tester med standard Rust-attributet "# [test]" och förmågan att använda doctests för att använda exempelkod från dokumentationen som tester.
  • Lagt till stöd för ARM32- och RISCV-arkitekturer utöver tidigare stödda x86_64 och ARM64.
    Förbättrade GCC-implementeringar Rust (GCC-frontend för Rust) och rustc_codegen_gcc (rustc-backend för GCC), som nu passerar alla riktmärken.
  • A ny abstraktionsnivå för att Rust-program ska använda kärnmekanismer skrivna i C, såsom träd, referensräkningsobjekt, skapa filbeskrivare, uppgifter, filer och I / O-vektorer.
  • Drivrutinsutvecklingskomponenterna har förbättrat stöd för modulen "file_operations", "module!" Makro, makrologgning och rudimentära drivrutiner (sond och radering).
  • Binder har stöd för att skicka filbeskrivare och LSM-länkar.
  • Ett mer funktionellt exempel på en rostdrivrutin, bcm2835-rng, föreslås för en hårdvaruslumpgenerator för Raspberry Pi-kort.

Slutligen, om du är intresserad av att veta mer om det, kan du konsultera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.