Ediçioni i katërt i patç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 versionin e katĂ«rt tĂ« komponentĂ«ve pĂ«r zhvillimin e driverĂ«ve tĂ« pajisjeve nĂ« gjuhĂ«n Rust. MbĂ«shtetje pĂ«r Rust shqyrtohet si eksperimentale, por tashmĂ« Ă«shtĂ« miratuar pĂ«r t'u pĂ«rfshirĂ« nĂ« degĂ«n linux-next dhe Ă«shtĂ« mjaft e zhvilluar pĂ«r tĂ« filluar punĂ«n nĂ« krijimin e shtresave tĂ« abstraksionit mbi nĂ«nssystemet e bĂ«rthamĂ«s, si dhe pĂ«r shkruajtjen e driverĂ«ve dhe moduleve. Zhvillimi financohet nga kompania Google dhe organizata ISRG (Internet Security Research Group), e cila Ă«shtĂ« themeluese e projektit Let’s Encrypt dhe ndihmon nĂ« promovimin e HTTPS dhe zhvillimin e teknologjive pĂ«r rritjen e sigurisĂ« sĂ« 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-ëve vazhdon eliminimi i vërejtjeve të shtruara gjatë diskutimeve të redaksive të para, të dyta dhe të treta të patch-eve. Në versionin e ri:

  • Kaluar nĂ« pĂ«rdorimin e versionit stabil tĂ« kompilatorit Rust 1.58.0 si standard. Nga ndryshimet e nevojshme pĂ«r projektin, tĂ« cilat ende nuk janĂ« pĂ«rfshirĂ« nĂ« pĂ«rbĂ«rjen kryesore tĂ« mjeteve tĂ« Rust, pĂ«rmendim flagun “-Zsymbol-mangling-version=v0” (pritet nĂ« Rust 1.59.0) dhe modin “maybe_uninit_extra” (pritet nĂ« Rust 1.60.0).
  • Shtohen kontrollet automatike pĂ«r praninĂ« e mjeteve tĂ« pĂ«rshtatshme Rust dhe zgjerohen mundĂ«sitĂ« e testimit pĂ«r mbĂ«shtetje Rust nĂ« sistem.
  • Propozohet abstraksione tĂ« reja pĂ«r aksesin nga kodi nĂ« gjuhĂ«n Rust nĂ« tabelat e identifikuesve tĂ« pajisjeve ("IdArray" dhe "IdTable").
  • Shtohen pĂ«rmbyllje pĂ«r thirrjet nĂ« funksionet e lidhura me orarin (framework i orĂ«s).
  • DrejtorĂ«t pĂ«r platformat tani janĂ« tĂ« pĂ«rcaktuar nĂ«pĂ«rmjet implementimit tĂ« tipazheve.
  • Shtohet njĂ« makro pĂ«r tĂ« thjeshtĂ«suar regjistrimin e drejtorĂ«ve tĂ« platformĂ«s, si dhe propozohet njĂ« model i ri pĂ«r drejtorin standard.
  • Shtohen makrot pĂ«r struktura "dev_*".
  • Shtohen metodat "{read,write}*_relaxed" pĂ«r tipin IoMem.
  • Hiqet pronĂ«sia FileOpener pĂ«r tĂ« thjeshtĂ«suar operacionet me skedarĂ«.
  • NĂ« numrin e argumenteve tĂ« dĂ«rguara gjatĂ« regjistrimit tĂ« drejtorit, shtohet parametri "ThisModule".
  • Propozohet njĂ« model standard pĂ«r krijimin e moduleve tĂ« bĂ«rthamĂ«s nĂ« gjuhĂ«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