Redaktimi i tretë i patch-eve 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 bĂ«rthamĂ«s Linux njĂ« variant tĂ« tretĂ« tĂ« komponentĂ«ve pĂ«r zhvillimin e drejtorive tĂ« pajisjeve nĂ« gjuhĂ«n Rust. MbĂ«shtetja pĂ«r Rust konsiderohet si eksperimenti, por tashmĂ« Ă«shtĂ« miratuar pĂ«r t'u pĂ«rfshirĂ« nĂ« degĂ«n linux-next. Zhvillimi financohet nga kompania Google dhe organizata ISRG (Grupi pĂ«r KĂ«rkimin e SigurisĂ« nĂ« Internet), e cila Ă«shtĂ« themeluesi i projektit Let’s Encrypt dhe nxit avancimin e HTTPS dhe zhvillimin e teknologjive pĂ«r pĂ«rmirĂ«simin e sigurisĂ« sĂ« internetit.

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.

Në variantin e ri të patch-eve vazhdohet përmirësimi i vërejtjeve të shprehura gjatë diskutimeve të versioneve të para dhe të dyta të patch-eve. Ndryshimet më të dukshme janë:

  • ÊshtĂ« realizuar kalimi nĂ« pĂ«rdorimin si kompilator referencĂ« tĂ« versionit stabil Rust 1.57 dhe Ă«shtĂ« siguruar lidhja me versionin e stabilizuar tĂ« gjuhĂ«s Rust 2021. MĂ« parĂ«, patch-et ishin lidhur me degĂ«n beta tĂ« Rust dhe pĂ«rdornin disa mundĂ«si tĂ« gjuhĂ«s qĂ« pĂ«rfshiheshin nĂ« kategorinĂ« e paqĂ«ndrueshme. Kalimi nĂ« specifikimin Rust 2021 lehuar tĂ« fillonte punĂ«n pĂ«r tĂ« dalĂ« nga pĂ«rdorimi nĂ« patch-e tĂ« mundĂ«sive tĂ« paqĂ«ndrueshme si const_fn_transmute, const_panic, const_unreachable_unchecked dhe core_panic dhe try_reserve.
  • ËshtĂ« vazhduar zhvillimi i versionit tĂ« bibliotekĂ«s Rust alloc, i integruar nĂ« patches, i modifikuar pĂ«r tĂ« eliminuar funksionet e shpĂ«rndarjes sĂ« memories nga gjeneratat e mundshme tĂ« gjendjes "panic" nĂ« rast tĂ« gabimeve, siç Ă«shtĂ« 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. Vazhdon puna me zhvilluesit kryesorĂ« tĂ« alloc, e cila ka si qĂ«llim transferimin e ndryshimeve tĂ« nevojshme pĂ«r kernelin nĂ« pĂ«rbĂ«rjen kryesore tĂ« bibliotekĂ«s. Opsioni "no_fp_fmt_parse", i nevojshĂ«m pĂ«r funksionimin e bibliotekĂ«s nĂ« nivelin e kernelit, Ă«shtĂ« transferuar nĂ« bibliotekĂ«n bazĂ« Rust (core).
  • ËshtĂ« bĂ«rĂ« pastrimi i kodit pĂ«r tĂ« eliminuar njoftimet e mundshme tĂ« kompilatorit gjatĂ« ndĂ«rtimit tĂ« kernelit nĂ« mĂ«nyrĂ«n CONFIG_WERROR. GjatĂ« ndĂ«rtimit tĂ« kodit nĂ« gjuhĂ«n Rust janĂ« pĂ«rfshirĂ« modet diagnostikuese shtesĂ« tĂ« kompilatorit dhe njoftime tĂ« linters Clippy.
  • JanĂ« propozuar abstraksione pĂ«r pĂ«rdorim nĂ« kodin Rust tĂ« bllokimeve seqlock (bllokime sekuencash), thirrjeve callback pĂ«r menaxhimin e energjisĂ«, I/O Memory (readX/writeX), pĂ«rpunuesve tĂ« ndĂ«rprerjeve dhe kĂ«ndvĂ«shtrimeve, GPIO, aksesin nĂ« pajisje, drejtuesit dhe kredencialet.
  • JanĂ« zgjeruar mjetet pĂ«r zhvillimin e drejtuesve duke angazhuar mutex tĂ« zhvendosur, iterues tĂ« bitĂ«ve, lidhje tĂ« thjeshta mbi treguesit, diagnostikĂ« tĂ« pĂ«rmirĂ«suar tĂ« dĂ«shtimeve dhe njĂ« infrastrukturĂ« tĂ« pavarur nga autobusi i tĂ« dhĂ«nave.
  • ËshtĂ« pĂ«rmirĂ«suar puna me referencat pĂ«rmes njĂ« tipi tĂ« thjeshtuar Ref, i bazuar nĂ« backendin refcount_t, i cili pĂ«rdor API-nĂ« e njĂ«jtĂ« tĂ« kernelit pĂ«r numĂ«rimin e referencave. MbĂ«shtetje pĂ«r tipet Arc dhe Rc, tĂ« ofruara nĂ« bibliotekĂ«n standarde alloc, Ă«shtĂ« hequr dhe nuk Ă«shtĂ« e disponueshme nĂ« kodin qĂ« ekzekutohet nĂ« nivelin e kernelit (pĂ«r bibliotekĂ«n vetĂ« janĂ« pĂ«rgatitur opsione pĂ«r tĂ« ç aktivizuar kĂ«to tipe).
  • NĂ« pĂ«rbĂ«rjen e patches Ă«shtĂ« shtuar njĂ« variant drejtuesi PL061 GPIO, i ri-shkruar nĂ« Rust. Veçoria e drejtuesit Ă«shtĂ« se realizimi i tij pĂ«rsĂ«rit praktikisht rresht pĂ«r rresht drejtuesin ekzistues GPIO nĂ« gjuhĂ«n C. PĂ«r zhvilluesit qĂ« dĂ«shirojnĂ« tĂ« njohin krijimin e drejtuesve nĂ« Rust, Ă«shtĂ« pĂ«rgatitur njĂ« krahasim rresht pĂ«r rresht, qĂ« lejon tĂ« kuptojnĂ« se nĂ« cilat konstrukte nĂ« Rust Ă«shtĂ« transformuar kodi nĂ« C.
  • NĂ« bazĂ«n e kodit 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 zhvillimin e duhur tĂ« backend-it, ai do tĂ« lejojĂ« ndĂ«rtimin e kodit tĂ« angazhuar nĂ« bĂ«rthama Rust duke pĂ«rdorur GCC.
  • PĂ«rveç kompanive ARM, Google dhe Microsoft, interesi pĂ«r pĂ«rdorimin e gjuhĂ«s Rust nĂ« bĂ«rthamĂ«n Linux Ă«shtĂ« shprehur nga kompania Red Hat. KujtojmĂ« se Google ofron mbĂ«shtetje tĂ« drejtpĂ«rdrejtĂ« pĂ«r projektin Rust for Linux, zhvillon njĂ« realizim tĂ« ri tĂ« mekanizmit tĂ« ndĂ«rveprimit midis proceseve Binder nĂ« Rust dhe shqyrton mundĂ«sinĂ« e ripĂ«rpunimit tĂ« disa driverĂ«ve tĂ« ndryshĂ«m nĂ« Rust. Kompania Microsoft ka filluar implementimin e driverĂ«ve pĂ«r Hyper-V nĂ« Rust. Kompania ARM po punon pĂ«r tĂ« pĂ«rmirĂ«suar mbĂ«shtetje pĂ«r Rust pĂ«r sistemet e bazuara nĂ« procesorĂ«t ARM. Kompania IBM ka realizuar mbĂ«shtetje pĂ«r Rust nĂ« bĂ«rthamĂ« pĂ«r sistemet PowerPC.

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