Den fjärde versionen av patchar för Rust-drivrutinsstöd på Linux har publicerats

Miguel Ojeda, författare till Rust-for-Linux-projektet, Teme presenterade nyligen det fjärde förslaget för drivrutinskomponenter Rust för Linux-kärnutvecklare att överväga.

Roststöd anses vara experimentellt, men den har redan godkänts för att inkluderas i linux-next-grenen och är mogen nog att börja arbeta med abstraktionslager ovanpå kärndelsystem, samt skriva drivrutiner och moduler. Utvecklingen finansieras av Google och ISRG (Internet Security Research Group), som är grundare av Let's Encrypt-projektet och främjar HTTPS och utveckling av teknologier för att öka säkerheten på Internet.

För de som fortfarande inte känner till de föreslagna ändringarna bör de veta att de gör det möjligt användningen av Rust som ett andra språk för att utveckla kontroller och moduler av kärnan. Rust-stöd presenteras som ett alternativ som inte är aktiverat som standard och leder inte till att Rust ingår bland de nödvändiga byggberoendena för kärnan.

Använder Rust för att utveckla drivrutiner gör att du kan skapa bättre och säkrare förare med minimal ansträngning, utan problem som att komma åt ett minnesområde efter att det har frigjorts, avläsning av nollpekare och buffertspill.

Minnessäkerhet tillhandahålls i Rust vid kompilering genom att kontrollera referenser, spåra objektägande och objektlivslängd (omfattning), samt genom att utvärdera riktigheten av minnesåtkomst under exekvering av koden.

Rust ger också heltalsöversvämningsskydd, kräver att variabler initieras före användning, hanterar fel i standardbiblioteket bättre, upprätthåller konceptet med oföränderliga variabler och referenser som standard, och erbjuder stark statisk typning för att minimera logiska fel.

Vilka är förändringarna i den fjärde delen?

I den här nya versionen av lapparna som presenteras nämns det att kommentarerna som gjordes under diskussionen om första, andra och tredje upplagan av lapparna fortsatte att elimineras.

Vi kommer att fortsätta uppdatera tills vi inte är beroende av några instabila funktioner;
vid vilken tidpunkt vi kanske vill börja deklarera en minimal version av Rust
stöds, vilket görs till exempel för GCC och Clang.

På samma sätt migrerade vi till 2021 års upplaga av Rust-språket.

När det gäller de andra ändringarna som gjordes i denna nya version nämns följande i meddelandet:

  • Övergick till att använda stabil Rust 1.58.0 som referenskompilator.
  • Ändringar som krävs för projektet, som ännu inte inkluderats i huvudverktygssatsen för Rust, inkluderar flaggan "-Zsymbol-mangling-version=v0" (förväntas i Rust 1.59.0) och läget "maybe_uninit_extra" (förväntas i Rust 1.60.0) .
  • Automatiska kontroller för tillgängligheten av Rustverktyg och deras lämplighet har lagts till, och möjligheten att testa Rust-stöd på systemet har också utökats.
  • Nya abstraktioner föreslås för att kunna komma åt enhetsidentifieringstabellerna ("IdArray" och "IdTable") från Rustkoden.
  • Lade till lager för att anropa funktioner som är relaterade till timern (klockram).
  • Plattformskontroller definieras nu genom egenskapsimplementeringar.
  • Ett nytt makro har lagts till för att förenkla registreringen av plattformsdrivrutiner och en ny generisk drivrutinsmall har föreslagits.
  • Lade till nya makron för "dev_*"-strukturer.
  • Lade till nya metoder "{read,write}*_relaxed" för IoMem-typ .
  • Tog bort FileOpener-egenskapen för att förenkla filhanteringen.
  • Lade till parametern "ThisModule" till antalet argument som skickades under kontrollerregistreringen.
  • En typisk mall för att skapa kärnmoduler i språket Rust föreslås.

Slutligen, om du är intresserad av att veta mer om denna nya version, 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.