Ny version av patchar för Linux-kÀrnan med stöd för Rust-sprÄket

Miguel Ojeda, författare till projektet Rust-for-Linux, har föreslagit för Linux-kĂ€rnans utvecklare att slĂ€ppa v5-komponenterna för att utveckla enhetsdrivrutiner pĂ„ sprĂ„ket Rust. Detta Ă€r den sjĂ€tte versionen av patcharna och tar hĂ€nsyn till den första utgĂ„van som publicerades utan versionsnummer. Stödet för Rust betraktas som experimentellt men Ă€r redan inkluderat i linux-next-grenen och tillrĂ€ckligt utvecklat för att pĂ„börja arbetet med att skapa abstraheringslager över kĂ€rnunderavsnitt, samt för att skriva drivrutiner och moduler. Utvecklingen finansieras av företaget Google och organisationen ISRG (Internet Security Research Group), som Ă€r grundaren av projektet Let’s Encrypt och frĂ€mjar spridningen av HTTPS och utvecklingen av teknologier för att öka internetets sĂ€kerhet.

Vi pÄminner om att de föreslagna förÀndringarna ger möjlighet att anvÀnda Rust som ett andra sprÄk för utveckling av drivrutiner och moduler för kÀrnan. Stödet för Rust presenteras som ett alternativ, inte aktiverat som standard och inte som en obligatorisk byggberoende för kÀrnan. AnvÀndningen av Rust för utveckling av drivrutiner kommer att möjliggöra skapandet av sÀkrare och högre kvalitetsdrivrutiner med minimala insatser, utan problem som att referera till minnesomrÄden efter att de har frigjorts, dereferera nullpekare och överskridning av buffertgrÀnser.

SÀker minneshantering sÀkerstÀlls i Rust vid kompilering genom kontroll av referenser, spÄrning av Àgande av objekt och beaktande av objektens livstid (synlighet), samt genom utvÀrdering av korrekt tillgÄng till minnet under kodens körning. Rust tillhandahÄller ocksÄ verktyg för skydd mot heltalsöverflöden, krÀver obligatorisk initialisering av variabelvÀrden innan anvÀndning, hanterar fel bÀttre i standardbiblioteket, tillÀmpar konceptet av oförÀnderliga (immutable) referenser och variabler som standard och erbjuder stark statisk typning för att minimera logiska fel.

I den nya versionen av patcharna fortsÀtter arbetet med att ÄtgÀrda kommentarer som gavs under diskussionerna av första, andra, tredje, fjÀrde och femte versionerna av patcharna. I den nya versionen:

  • Verktyget har uppdaterats till Rust 1.59.0. Den nya versionen av Rust har ocksĂ„ synkroniserats med versionen av biblioteket alloc, vilket eliminerar eventuella genereringar av "panic"-tillstĂ„nd vid fel, som minnesbrist. Möjligheten att anvĂ€nda assemblerinlĂ€gg ("feature(global_asm)") har stabiliserats.
  • Stöd för att skapa vĂ€rdprogram pĂ„ sprĂ„ket Rust som anvĂ€nds under kompileringen av kĂ€rnan har lagts till.
  • IstĂ€llet för att leverera förskapade filer med specifikationer för mĂ„lplattformar möjliggörs deras dynamiska generation baserat pĂ„ kĂ€rnkonfigurationen.
  • En kĂ€rnparameter, HAVE_RUST, har lagts till och aktiveras för arkitekturer dĂ€r Rust stöds.
  • Abstraktioner för anvĂ€ndning i Rust-koden av en hĂ„rdvaru-genererad pseudorandom-generator har föreslagits.
  • AnvĂ€ndning av felkoder utan prefixet "Error::" (t.ex. "return Err(EINVAL)") har tillĂ„tits för att nĂ€rma sig felhantering i C.
  • En typ "CString" för egna C-strĂ€ngar har lagts till. Typerna Formatter och Buffer har slagits samman.
  • Typerna Bool och LockInfo har lagts till.
  • Implementeringen av spin-lĂ„s har förenklats.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster