Den tredje versionen av patchar för Rust-drivrutinsstöd i Linux har redan släppts

Sex månader efter publiceringen av den andra versionen, Miguel Ojeda, författare till Rust-for-Linux-projektet, tillkännagav förslaget om det tredje alternativet för utveckling av enhetsdrivrutiner i Rust-språket i Linux-kärnan.

Roststöd anses vara experimentellt, men införandet av det i Linux-next-grenen har redan överenskommits. Utvecklingen finansieras av Google och organisationen ISRG (Internet Security Research Group), som är grundare av projektet Let's Encrypt och bidrar till främjandet av HTTPS och utvecklingen av tekniker för att förbättra Internetsäkerheten.

Man bör komma ihåg att de föreslagna ändringarna tillåter Rust att användas som ett andra språk för att utveckla kärndrivrutiner och moduler.

Rost drivrutiner på Linux
Relaterad artikel:
Den andra versionen av korrigeringsfilerna för Rust-drivrutinsstöd på Linux har redan skickats

Roststöd annonseras som ett alternativ som inte är aktivt som standard och det resulterar inte i att Rust ingår i de nödvändiga grundläggande byggberoendena. Genom att använda Rust för utveckling av drivrutiner kan du skapa bättre och säkrare drivrutiner med minimal ansträngning, utan krångel med att komma åt ett minnesområde när det väl är frigjort, därav referera nollpekare och överskrida buffertgränser.

Den nya versionen av patcharna fortsätter att eliminera kommentarerna som gjordes under diskussionen om den första och andra versionen av patcharna och de mest anmärkningsvärda ändringarna vi kan hitta:

Övergått till Rust 1.57 stabil version som referenskompilator och bindning till den stabiliserade utgåvan av språket Rust 2021. Övergången till Rust 2021 p-specifikationenfår börja arbeta för att undvika att använda sådana instabila funktioner i patchar som const_fn_transmute, const_panic, const_unreachable_unchecked och core_panic och try_reserve.

Det sticker också ut att utvecklingen av alloc-versionen har fortsatt från Rust-biblioteket, i den nya versionen, alternativen "no_rc" och "no_sync" implementeras för att inaktivera funktionen som inte används i Rust-kod för kärnan, vilket gör biblioteket mer modulärt. Vi fortsätter att arbeta med de viktigaste alloc-utvecklarna för att ta med de nödvändiga kärnändringarna till huvudbiblioteket. Alternativet "no_fp_fmt_parse", som krävs för att biblioteket ska fungera på kärnnivå, har flyttats till Rusts basbibliotek (kärna).

Koden har rensats för att ta bort eventuella kompilatorvarningar när kärnan kompileras i CONFIG_WERROR-läge. När kod skapas i Rust ingår ytterligare diagnostiska kompilatorlägen och Clippy linter-varningar.

De föreslog abstraktioner för att använda seqlocks (sekvenslås), callback-anrop för energihantering, minnes-I/O (readX / writeX), avbrotts- och trådhanterare, GPIO, enhetsåtkomst, drivrutiner och referenser i rostkod.

Verktyg för förarutveckling har utökats med användning av flyttbara mutexes, bititeratorer, förenklade bindningar över pekare, förbättrad feldiagnostik och databussoberoende infrastruktur.

Arbetet med länkar har förbättrats med hjälp av Ref-typen förenklat, baserat på refcount_t backend, som använder det centrala API:et med samma namn för att räkna referenser. Stöd för Arc- och Rc-typerna som tillhandahålls i standardmappningsbiblioteket har tagits bort och är inte tillgängligt i kod som körs på kärnnivå (för själva biblioteket har alternativ förberetts för att inaktivera dessa typer).

En version av PL061 GPIO-drivrutinen, omskriven i Rust, har lagts till i patcharna. En egenskap hos drivrutinen är att dess nära-linje-för-linje-implementering upprepar den befintliga C GPIO-drivrutinen. För utvecklare som vill bekanta sig med byggnadskontroller i Rust har en rad-för-rad-jämförelse utarbetats som ger insikt i vilka byggen i Rust C-koden har blivit.

Rusts huvudkodbas använder rustc_codegen_gcc, en rustc-backend för GCC som implementerar AOT-kompilering med libgccjit-biblioteket. Med korrekt utveckling av backend kommer det att tillåta dig att samla in Rust-koden som är involverad i kärnan med hjälp av GCC.
Förutom ARM, Google och Microsoft har Red Hat uttryckt intresse för att använda Rust i Linux-kärnan.

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.