Versioni i ri i patches 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 tĂ« zhvilluesve tĂ« bĂ«rthamĂ«s Linux lĂ«shimin e versionit v5 tĂ« komponenteve pĂ«r zhvillimin e drivereve tĂ« pajisjeve nĂ« gjuhĂ«n Rust. Kjo Ă«shtĂ« redaktimi i gjashtĂ« i patch-eve, duke pĂ«rfshirĂ« versionin e parĂ«, i publikuar pa numĂ«r versioni. MbĂ«shtetja pĂ«r Rust konsiderohet eksperimentale, por Ă«shtĂ« pĂ«rfshirĂ« nĂ« degĂ«n linux-next dhe Ă«shtĂ« mjaft e zhvilluar pĂ«r tĂ« filluar punĂ«n mbi krijimin e shtresave tĂ« abstraksionit mbi nĂ«n-sistemet e bĂ«rthamĂ«s, si dhe pĂ«r shkruarjen e drivereve dhe moduleve. 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 tĂ« rritur sigurimin e internetit.

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ë versionin e ri të patch-eve vazhdohet eliminimi i vërejtjeve të shprehura gjatë diskutimeve për edicionet e para, të dyta, të tretat, të katërta dhe të pesta të patch-eve. Në versionin e ri:

  • Mjeti Ă«shtĂ« pĂ«rditĂ«suar nĂ« lĂ«shimin e Rust 1.59.0. Me versionin e ri tĂ« Rust Ă«shtĂ« sinqronizuar gjithashtu varianti i bibliotekĂ«s alloc, i cili Ă«shtĂ« eliminuar nga mundĂ«sitĂ« e gjenerimit tĂ« gjendjes "panic" nĂ« rast tĂ« gabimeve, siç Ă«shtĂ« mungesa e memories. ËshtĂ« stabilizuar mundĂ«sia e pĂ«rdorimit tĂ« inserteve assembly ("feature(global_asm)").
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r krijimin e programeve host tĂ« shkruara nĂ« gjuhĂ«n Rust, tĂ« pĂ«rdorura gjatĂ« procesit tĂ« komp limitjes sĂ« kernelit.
  • NĂ« vend qĂ« tĂ« dorĂ«zohen skedarĂ« tĂ« krijuar mĂ« parĂ« me specifikimin e platformave tĂ« synuara, Ă«shtĂ« siguruar gjenerimi dinamik i tyre mbi bazĂ«n e konfigurimit tĂ« kernelit.
  • ËshtĂ« shtuar parametri i kernelit HAVE_RUST, i cili aktivizohet pĂ«r arkitekturat ku mbĂ«shtetet Rust.
  • SĂ« bashku me kĂ«tĂ« janĂ« propozuar abstraksione pĂ«r pĂ«rdorim nĂ« kodin nĂ« gjuhĂ«n Rust tĂ« gjeneratorĂ«ve tĂ« numrave pseudo-rastĂ«sorĂ«.
  • ËshtĂ« lejuar pĂ«rdorimi i kodave tĂ« gabimeve pa prefiksin "Error::" (p.sh., "return Err(EINVAL)") pĂ«r t'u afruar me pĂ«rpunimin e kodave tĂ« gabimeve nĂ« C.
  • ËshtĂ« shtuar tipi "CString" pĂ«r stringjet e veta tĂ« C. JanĂ« bashkuar tipet Formatter dhe Buffer.
  • JanĂ« shtuar tipazhe tĂ« reja Bool dhe LockInfo.
  • Realizimi i spin-lock-eve Ă«shtĂ« thjeshtuar.

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