Edisioni i tretë i patch-ave për bërthamën Linux me mbështetje për gjuhën Rust.

Miguel Ojeda, autori i projektit Rust-for-Linux, propozoi për shqyrtim nga zhvilluesit e kernelit Linux një variant të tretë të komponentëve për zhvillimin e drejtpërdrejtë të pajisjeve në gjuhën Rust. Mbështetje e Rust konsiderohet si eksperimentale, por tashmë është miratuar për t'u përfshirë në degën linux-next. Zhvillimi financohet nga kompania Google dhe organizata ISRG (Internet Security Research Group), e cila është themeluesi i projektit Let's Encrypt dhe kontribuon në promovimin e HTTPS dhe zhvillimin e teknologjive për rritjen e sigurisë në internet.

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.

Në variantin e ri të patch-ëve vazhdohet të adresohen vërejtjet e shprehura gjatë diskutimit të versioneve të para dhe të dytë të patch-ëve. Ndryshimet më të dukshme:

  • Kalimi i Ă«shtĂ« bĂ«rĂ« pĂ«r tĂ« pĂ«rdorur kompajlerin stabil tĂ« lĂ«shuar Rust 1.57 dhe Ă«shtĂ« siguruar lidhja me versionin e stabilizuar tĂ« gjuhĂ«s Rust 2021. MĂ« parĂ«, pashtet ishin tĂ« lidhura me degĂ«n beta tĂ« Rust dhe pĂ«rdornin disa veçori gjuhĂ«sore qĂ« bĂ«nin pjesĂ« nĂ« kategorinĂ« e veçorive tĂ« pasiguruara. Kalimi nĂ« specifikimin Rust 2021 lejoi fillimin e punĂ«s pĂ«r tĂ« shmangur pĂ«rdorimin e kĂ«tyre veçorive tĂ« pasiguruara nĂ« pashta, si p.sh. const_fn_transmute, const_panic, const_unreachable_unchecked dhe core_panic dhe try_reserve.
  • Ka vazhduar zhvillimi i versionit tĂ« bibliotekĂ«s Rust alloc, i pĂ«rfshirĂ« nĂ« pashta, i modifikuar pĂ«r tĂ« eliminuar funksionet e shpĂ«rndarjes sĂ« memories nga mundĂ«sitĂ« pĂ«r tĂ« gjeneruar gjendjen "panic" nĂ« rast tĂ« gabimeve si mungesa e memories. NĂ« versionin e ri janĂ« realizuar opsionet "no_rc" dhe "no_sync" pĂ«r tĂ« çaktivizuar funksionalitetin qĂ« nuk pĂ«rdoret nĂ« kodin Rust pĂ«r kernelin, duke e bĂ«rĂ« bibliotekĂ«n mĂ« modulare. Punimet me zhvilluesit kryesorĂ« tĂ« alloc vazhdojnĂ«, duke synuar transferimin e ndryshimeve tĂ« nevojshme pĂ«r kernelin nĂ« pĂ«rbĂ«rjen kryesore tĂ« bibliotekĂ«s. NĂ« biblioteken bazĂ« Rust (core) Ă«shtĂ« transferuar opsioni "no_fp_fmt_parse", i nevojshĂ«m pĂ«r funksionimin e bibliotekĂ«s nĂ« nivelin e kernelit.
  • U kryer pastrimi i kodit pĂ«r tĂ« eliminuar mundĂ«sitĂ« e paralajmĂ«rimeve tĂ« kompilatorit gjatĂ« ndĂ«rtimit tĂ« bĂ«rthamĂ«s nĂ« modin CONFIG_WERROR. GjatĂ« ndĂ«rtimit tĂ« kodit nĂ« gjuhĂ«n Rust janĂ« aktivizuar mĂ«nyra tĂ« tjera diagnostikuese tĂ« kompilatorit dhe paralajmĂ«rime nga linters Clippy.
  • Propozohen abstraksione pĂ«r pĂ«rdorim nĂ« kodin Rust pĂ«r bllokimet seqlock (bllokime sekuencash), thirrje callback pĂ«r menaxhimin e energjisĂ«, Memoria I/O (readX/writeX), trajtuesit e ndĂ«rprerjeve dhe rrjedhave, GPIO, aksesin nĂ« pajisje, drejtues dhe kredenciale.
  • JanĂ« zgjeruar mjetet pĂ«r zhvillimin e drejtuesve duke pĂ«rfshirĂ« mutex tĂ« lĂ«vizshĂ«m, iterues bitĂ«sh, mbĂ«shtjellje tĂ« thjeshtuara mbi treguesit, diagnostikĂ« tĂ« pĂ«rmirĂ«suar tĂ« dĂ«shtimeve dhe infrastrukturĂ« tĂ« pavarur nga autobusi i tĂ« dhĂ«nave.
  • ËshtĂ« pĂ«rmirĂ«suar puna me referencat duke pĂ«rdorur njĂ« tip tĂ« thjeshtuar Ref, i bazuar nĂ« backendin refcount_t, qĂ« pĂ«rdor API-nĂ« e njĂ«jtĂ« tĂ« bĂ«rthamĂ«s pĂ«r numĂ«rimin e referencave. MbĂ«shtetje pĂ«r tipet Arc dhe Rc, tĂ« ofruara nĂ« bibliotekĂ«n e zakonshme alloc, Ă«shtĂ« hequr dhe nuk Ă«shtĂ« e disponueshme nĂ« kodin qĂ« ekzekutohet nĂ« nivelin e bĂ«rthamĂ«s (pĂ«r vetĂ« bibliotekĂ«n janĂ« pĂ«rgatitur opsione qĂ« çaktivizojnĂ« kĂ«to tipa).
  • NĂ« pĂ«rbĂ«rjen e patches Ă«shtĂ« shtuar njĂ« variant i drajverit PL061 GPIO, i shkruar nĂ« Rust. Veçoria e drajverit Ă«shtĂ« se implementimi i tij pĂ«rsĂ«rit praktikisht nĂ« çdo rresht drajverin ekzistues GPIO tĂ« shkruar nĂ« gjuhĂ«n C. PĂ«r zhvilluesit qĂ« dĂ«shirojnĂ« tĂ« njohin krijimin e drajverĂ«ve nĂ« Rust, Ă«shtĂ« pĂ«rgatitur njĂ« krahasim rresht pas rreshti, qĂ« mundĂ«son tĂ« kuptohet nĂ« cilat struktura nĂ« Rust Ă«shtĂ« transformuar kodi nĂ« C.
  • NĂ« kodin kryesor tĂ« Rust Ă«shtĂ« pranuar rustc_codegen_gcc, backend i rustc pĂ«r GCC, qĂ« implementon mundĂ«sinĂ« e kompilimit tĂ« parashikueshĂ«m (AOT) duke pĂ«rdorur bibliotekĂ«n libgccjit. Me njĂ« zhvillim tĂ« duhur tĂ« backend-it, ai do tĂ« mundĂ«sojĂ« ndĂ«rtimin e kodit tĂ« pĂ«rdorur nĂ« bĂ«rthamĂ«n Rust nĂ«pĂ«rmjet GCC.
  • PĂ«rveç kompanive ARM, Google dhe Microsoft, interesi pĂ«r pĂ«rdorimin e gjuhĂ«s Rust nĂ« bĂ«rthamĂ«n Linux Ă«shtĂ« shprehur edhe nga kompania Red Hat. PĂ«rkujtojmĂ« se Google ofron mbĂ«shtetje direkte pĂ«r projektin Rust for Linux, zhvillon njĂ« zbatim tĂ« ri tĂ« mekanizmit tĂ« ndĂ«rveprimit ndĂ«rprocesor Binder nĂ« Rust dhe shqyrton mundĂ«sinĂ« e ribĂ«rjes nĂ« Rust tĂ« disa drejtuesve. Kompania Microsoft ka filluar tĂ« zbatojĂ« drejtuesit pĂ«r Hyper-V nĂ« Rust. Kompania ARM po punon pĂ«r pĂ«rmirĂ«simin e mbĂ«shtetjes pĂ«r Rust nĂ« sisteme me procesorĂ« ARM. Kompania IBM ka zbatuar mbĂ«shtetje pĂ«r Rust nĂ« bĂ«rthamĂ«n pĂ«r sistemet PowerPC.

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