Sëdyta editim i patch-ëve për bërthamën Linux me mbështetje për gjuhën Rust

Miguel Ojeda, autori i projektit Rust-for-Linux, ka propozuar për shqyrtim nga zhvilluesit e kernelit Linux një version të përmirësuar të komponenteve për zhvillimin e drejtorive të pajisjeve në gjuhën Rust. Mbështetja për Rust është i konsideruar si eksperimentale, por tashmë është miratuar për t'u përfshirë në degën linux-next. Në versionin e ri janë eliminuar vërejtjet e shprehura gjatë diskutimit të versionit të parë të patches. Linus Torvalds ka bërë tashmë një ndërhyrje në diskutim dhe ka propozuar një ndryshim në logjikën e trajtimit të disa operacioneve bitore.

Kujtojme se ndryshimet e propozuara ofrojnë mundësinë e përdorimit të Rust si gjuhë të dytë për zhvillimin e drejtuesve dhe moduleve të bërthamës. Mbështetja për Rust paraqitet si një opsion, i cili nuk aktivizohet nga parazgjedhja dhe nuk çon në përfshirjen e Rust në numrin e varësive të detyrueshme për ndërtimin e bërthamës. Përdorimi i Rust për zhvillimin e drejtuesve do të lejojë krijimin e drejtuesve të sigurt dhe më të kualitetshëm me përpjekje minimale, duke eliminuar probleme si përdorimi i hapësirës së memories pas lirimit të saj, dereferencimi i treguesve null dhe tejkalimi i kufijve të tamponit.

Funksionaliteti i sigurt i punës me kujtesën sigurohet në Rust gjatë kompilimit përmes verifikimit të referencave, ndjekjes së pronësisë së objekteve dhe llogaritjes së kohëzgjatjes së jetës së objekteve (fusha e dukshmërisë), si dhe përmes vlerësimit të saktësisë së aksesit në memorie gjatë ekzekutimit të kodit. Rust ofron gjithashtu mjete për mbrojtjen nga tejkalimet e numrave të tërë, kërkon inicializimin e detyrueshëm të vlerave të variablave para përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pandryshueshëm (immutable) si parazgjedhje, dhe ofron një tipizim statik të fortë për të minimizuar gabimet 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” nĂ« rast tĂ« gabimeve si mungesa e memories. NĂ« pĂ«rbĂ«rje Ă«shtĂ« pĂ«rfshirĂ« njĂ« variant i bibliotekĂ«s Rust alloc, nĂ« tĂ« cilĂ«n Ă«shtĂ« ri-shkruar kodi pĂ«r trajtimin e dĂ«shtimeve, por qĂ«llimi pĂ«rfundimtar Ă«shtĂ« transferimi nĂ« versionin kryesor tĂ« alloc tĂ« tĂ« gjitha mundĂ«sive qĂ« nevojiten pĂ«r kernelin (ndryshimet janĂ« pĂ«rgatitur dhe dĂ«rguar nĂ« pĂ«rbĂ«rjen e bibliotekĂ«s standarde Rust).
  • NĂ« vend tĂ« mbledhjeve tĂ« natĂ«s pĂ«r krijimin e kernelit me mbĂ«shtetje Rust tani mund tĂ« pĂ«rdoren versionet beta dhe lĂ«shimet stabile tĂ« kompiluesit rustc. Aktualisht, kompiluesi referencĂ« Ă«shtĂ« rustc 1.54-beta1, por pas lirimit tĂ« versionit 1.54 nĂ« fund tĂ« muajit, do tĂ« ruhet pikĂ«risht ai si kompilues referencĂ«.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r shkruan testesh duke pĂ«rdorur atributin standard pĂ«r Rust “#[test]” dhe mundĂ«sia e aplikimit tĂ« doctests pĂ«r dokumentimin e testeve.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r arkitekturĂ«n ARM32 dhe RISCV pĂ«rveç x86_64 dhe ARM64 tĂ« mbĂ«shtetur mĂ« parĂ«.
  • JanĂ« pĂ«rmirĂ«suar realizimet e GCC Rust (frontend-i GCC pĂ«r Rust) dhe rustc_codegen_gcc (backend-i rustc pĂ«r GCC), i cili tani kalon tĂ« gjitha testet bazike.
  • ÈshtĂ« propozuar njĂ« nivel mĂ« i lartĂ« abstraksioni pĂ«r tĂ« pĂ«rdorur mekanizmat e kernelit nĂ« programet nĂ« gjuhĂ«n Rust, tĂ« shkruara nĂ« gjuhĂ«n C, si pemĂ«t e kuqe-zemer, objektet me numĂ«rim referencash, krijimi i descriptorĂ«ve tĂ« skedarĂ«ve, detyrat, skedarĂ«t dhe vektorĂ«t e hyrjeve/daljeve.
  • NĂ« komponentĂ«t pĂ«r zhvillimin e drejtorive Ă«shtĂ« pĂ«rmirĂ«suar mbĂ«shtetja e modulit “file_operations”, makros “module!”, regjistrimi i makrove dhe drejtoritĂ« rudimentarĂ« (probe dhe remove).
  • NĂ« Binder Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r transferimin e descriptorĂ«ve tĂ« skedarĂ«ve dhe hooks LSM.
  • ÈshtĂ« propozuar njĂ« shembull mĂ« funksional i njĂ« drejtorie nĂ« Rust — bcm2835-rng pĂ«r gjeneratĂ«n e numrave tĂ« rastĂ«sishĂ«m nga pajisjet Raspberry Pi.

Përveç kësaj, përmenden projektet e disa kompanive lidhur me përdorimin e Rust në kernel:

  • Kompanija Microsoft shprehu interes pĂ«r tĂ« marrĂ« pjesĂ« nĂ« punĂ«n pĂ«r integrimin e mbĂ«shtetjes Rust nĂ« kernelin Linux dhe Ă«shtĂ« e gatshme qĂ« nĂ« muajt e ardhshĂ«m tĂ« ofrojĂ« implementimet e drejtorive pĂ«r Hyper-V nĂ« Rust.
  • Kompanija ARM po punon pĂ«r pĂ«rmirĂ«simin e mbĂ«shtetjes Rust pĂ«r sistemet e bazuara nĂ« procesorĂ« ARM. Projekti Rust tashmĂ« ka marrĂ« propozime pĂ«r ndryshime, duke e kaluar sistemet 64-bit ARM nĂ« listĂ«n e platformave tĂ« mbĂ«shtetjes sĂ« nivelit tĂ« parĂ« (Tier-1).
  • Kompanija Google ofron mbĂ«shtetje tĂ« drejtpĂ«rdrejtĂ« pĂ«r projektin Rust for Linux, po zhvillon njĂ« realizim tĂ« ri tĂ« mekanizmit tĂ« bashkĂ«veprimit ndĂ«r-procesor Binder nĂ« Rust dhe po shqyrton mundĂ«sinĂ« e ri-shkruar nĂ« Rust drejtoritĂ« e ndryshme. PĂ«rmes ISRG (Grupi i KĂ«rkimeve tĂ« SigurisĂ« nĂ« Internet), kompania Google siguroi financimin e punĂ«s pĂ«r integrimin nĂ« kernelin Linux tĂ« mbĂ«shtetjes Rust.
  • Kompanija IBM ka realizuar mbĂ«shtetje pĂ«r Rust nĂ« kernel pĂ«r sistemet PowerPC.
  • Laboratori LSE (Laboratori i KĂ«rkimeve nĂ« Sisteme) ka zhvilluar njĂ« drejtorie SPI nĂ« Rust.

Burimi: opennet.ru

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