Versioni e reviduara e patcheve për bërthamat Linux që mbështesin gjuhën Rust

Miguel Ojeda, autori i projektit Rust-for-Linux, propozoi për shqyrtim nga zhvilluesit e kernelit Linux një variant të përmirësuar të komponenteve për zhvillimin e drejtorive të pajisjeve në gjuhën Rust. Mbështetja për Rust shqyrtohet si eksperimentale, por tashmë është miratuar për t'u përfshirë në degën linux-next. Në variantin e ri janë eliminuar komentet e shprehura gjatë diskutimit të versionit të parë të patches. Linus Torvalds ka filluar tashmë diskutimin dhe ka propozuar të ndryshojë logjikën e përpunimit të disa operacioneve bitore.

Kujtojmë se ndryshimet e propozuara japin mundësinë për të përdorur Rust si gjuhën e dytë për zhvillimin e drejtorive dhe moduleve të bërthamës. Mbështetja për Rust paraqitet si një opsion, i cili nuk është aktiv me parazgjedhje dhe nuk çon në përfshirjen e Rust në listën e varësive të detyrueshme për ndërtimin e bërthamës. Përdorimi i Rust për zhvillimin e drejtorive do të lejojë krijimin e drejtorive të sigurta dhe më të kualitetshme me minimumin e mundimeve, duke eliminuar probleme si manipulimi me hapësirën e memories pas lirimit të saj, dereferencimi i pikave null dhe tejkalimi i kufijve të tamponit.

Trajtimi i sigurt i memories garantohet në Rust gjatë kompilimit përmes verifikimit të referencave, ndjekjes së pronësisë së objekteve dhe marrëveshjes së kohëzgjatjes së objekteve (zona e dukshmërisë), si dhe përmes vlerësimit të saktësisë së qasjes në memory gjatë ekzekutimit të kodit. Rust gjithashtu ofron mjete për mbrojtjen nga mbushjet e numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave përpara përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pazëvendësueshëm (immutable) si standard, dhe ofron tipizim të fortë statik për minimizimin e gabimeve logjike.

Ndryshimet më të dukshme në versionin e ri të patches:

  • Kodi pĂ«r shpĂ«rndarjen e memories Ă«shtĂ« çliruar nga gjenerimet e mundshme tĂ« gjendjes "panic" kur ndodhin gabime si mungesa e memories. NĂ« pĂ«rbĂ«rje Ă«shtĂ« pĂ«rfshirĂ« njĂ« variant i bibliotekĂ«s Rust alloc, nĂ« tĂ« cilin Ă«shtĂ« rishkruar kodi pĂ«r pĂ«rpunimin e gabimeve, por qĂ«llimi pĂ«rfundimtar Ă«shtĂ« transferimi nĂ« redaksinĂ« kryesore tĂ« alloc tĂ« tĂ« gjitha mundĂ«sive qĂ« nevojiten pĂ«r kernelin (ndryshimet janĂ« pĂ«rgatitur tashmĂ« dhe janĂ« dĂ«rguar nĂ« pĂ«rbĂ«rjen e bibliotekĂ«s standarte Rust).
  • NĂ« vend tĂ« ndĂ«rtimeve tĂ« natĂ«s pĂ«r kompilimin e kernelit me mbĂ«shtetje pĂ«r Rust, tani mund tĂ« pĂ«rdoren versione beta dhe lĂ«shime stabile tĂ« kompilatorit rustc. NĂ« kĂ«tĂ« moment, si kompilator referencĂ« pĂ«rdoret rustc 1.54-beta1, por pas daljes sĂ« lĂ«shimit 1.54 nĂ« fund tĂ« muajit, nga tani e tutje do tĂ« mbĂ«shtetet pikĂ«risht ai.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r shkruarjen e testeve duke pĂ«rdorur atributin standard pĂ«r Rust "#[test]" dhe mundĂ«sia e aplikimit tĂ« doctests pĂ«r dokumentimin e testeve.
  • Shtuar mbĂ«shtetje pĂ«r arkitekturĂ«n ARM32 dhe RISCV pĂ«rveç x86_64 dhe ARM64 qĂ« ishin mbĂ«shtetur mĂ« parĂ«.
  • JanĂ« pĂ«rmirĂ«suar implementimet GCC Rust (front-end i GCC pĂ«r Rust) dhe rustc_codegen_gcc (back-end i rustc pĂ«r GCC), i cili tani kalon tĂ« gjitha testet bazike.
  • Propozohet njĂ« nivel i ri abstraksioni pĂ«r pĂ«rdorim nĂ« programet nĂ« gjuhĂ«n Rust pĂ«r mekanizmat e kernelit, tĂ« shkruara nĂ« gjuhĂ«n C, siç janĂ« pemĂ«t e kuqe-madhe, objektet me ndihmĂ«s tĂ« numĂ«rimit tĂ« referencave, krijimi i deshifruesve tĂ« skedarĂ«ve, detyrat, skedarĂ«t dhe vektorĂ«t e hyrjes/daljes.
  • NĂ« komponentet pĂ«r zhvillimin e drejtorive Ă«shtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r modulimin e "file_operations", makron "module!", regjistrimin e makrave dhe drejtorĂ«t rudimentare (probe dhe remove).
  • NĂ« Binder Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r kalimin e deshifruesve tĂ« skedarĂ«ve dhe LSM-hooks.
  • NjĂ« shembull mĂ« funksional i shoferit nĂ« Rust — bcm2835-rng pĂ«r gjeneratorin harduerik tĂ« numrave tĂ« rastĂ«sishĂ«m tĂ« plaformave Raspberry Pi.

Për më tepër, përmenden projektet e disa kompanive, të lidhura me përdorimin e Rust në bërthamë:

  • Kompania Microsoft shprehu interes pĂ«r tĂ« marrĂ« pjesĂ« nĂ« punĂ«n pĂ«r integrimin e mbĂ«shtetjes Rust nĂ« bĂ«rthamĂ«n Linux dhe Ă«shtĂ« e gatshme tĂ« ofrojĂ« realizime tĂ« shoferĂ«ve pĂ«r Hyper-V nĂ« Rust nĂ« muajt nĂ« vijim.
  • Kompania ARM po punon pĂ«r pĂ«rmirĂ«simin e mbĂ«shtetjes Rust pĂ«r sistemet e bazuara nĂ« procesorĂ« ARM. Projektit Rust i janĂ« propozuar tashmĂ« ndryshime qĂ« e çojnĂ« sistemet 64-bit tĂ« ARM nĂ« mesin e platformave tĂ« mbĂ«shtetjes sĂ« nivelit tĂ« parĂ« (Tier-1).
  • Kompania Google siguron mbĂ«shtetje direkte pĂ«r projektin Rust for Linux, zhvillon njĂ« implementim tĂ« ri tĂ« mekanizmit tĂ« ndĂ«rveprimit nĂ« mes tĂ« proceseve Binder nĂ« Rust dhe po shqyrton mundĂ«sinĂ« e ristrukturimit nĂ« Rust tĂ« shoferĂ«ve tĂ« ndryshĂ«m. NĂ«pĂ«rmjet ISRG (Internet Security Research Group), kompania Google siguroi financimin pĂ«r punĂ«n nĂ« integrimin e mbĂ«shtetjes Rust nĂ« bĂ«rthamĂ«n Linux.
  • Kompania IBM ka realizuar mbĂ«shtetje pĂ«r Rust nĂ« bĂ«rthamĂ« pĂ«r sistemet PowerPC.
  • Laboratori LSE (Laboratori i KĂ«rkimeve tĂ« Sistemeve) ka zhvilluar njĂ« shofer SPI nĂ« Rust.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster