Edicioni i pestë i patch-eve për kernelin 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 variantin e pestĂ« tĂ« komponenteve pĂ«r zhvillimin e drejtorive tĂ« pajisjeve nĂ« gjuhĂ«n Rust. MbĂ«shtetje pĂ«r Rust shihet si eksperimentale, por tashmĂ« Ă«shtĂ« pĂ«rfshirĂ« nĂ« degĂ«n linux-next dhe Ă«shtĂ« mjaft e zhvilluar pĂ«r tĂ« filluar punĂ«n pĂ«r krijimin e shtresave tĂ« abstrahimit mbi nĂ«n-sistemet e kernelit, si dhe pĂ«r tĂ« shkruar drejtues dhe module. Zhvillimi financohet nga kompania Google dhe organizata ISRG (Internet Security Research Group), e cila Ă«shtĂ« themeluesja e projektit Let’s Encrypt dhe ndihmon nĂ« promovimin e HTTPS dhe zhvillimin e teknologjive pĂ«r pĂ«rmirĂ«simin e sigurisĂ« nĂ« internet.

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-ëve, vazhdohet eliminimi i vërejtjeve të shtruara gjatë diskutimit të redaktimeve të para, të dyta, të treta dhe të katërta. Në versionin e ri:

  • NĂ« sistemin e integrimit tĂ« vazhdueshĂ«m tĂ« bazuar nĂ« botin 0DAY/LKP tĂ« mbĂ«shtetur nga Intel, Ă«shtĂ« shtuar kontrolli i komponenteve pĂ«r mbĂ«shtetje Rust dhe kanĂ« filluar publikimet e raporteve tĂ« testimit. Po pĂ«rgatitet integrimi i mbĂ«shtetjes pĂ«r Rust nĂ« sistemin e testimit automatizuar KernelCI. Testimi i bazuar nĂ« GitHub CI Ă«shtĂ« kaluar nĂ« pĂ«rdorimin e konteinerĂ«ve.
  • Modulet e kernelit nĂ« Rust janĂ« liruar nga nevoja pĂ«r tĂ« pĂ«rcaktuar atributet e crate-it "#![no_std]" dhe "#![feature(
)]".
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r objektet e ndĂ«rtimit tĂ« vetme (.o, .s, .ll dhe .i).
  • NĂ« rekomandimet pĂ«r formatimin e kodit janĂ« pĂ«rcaktuar rregullat nĂ« lidhje me ndarjen e komenteve ("//") dhe dokumentimin e kodit ("///").
  • Skirpti is_rust_module.sh Ă«shtĂ« rishikuar.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r primitive sinkronizimi statike (variabla tĂ« pĂ«rbashkĂ«ta globale) tĂ« bazuara nĂ« realizimin e "CONFIG_CONSTRUCTORS".
  • Menaxhimi i bllokimeve Ă«shtĂ« thjeshtuar: Guard dhe GuardMut janĂ« bashkuar nĂ« njĂ« tip tĂ« parametrizuar.
  • I Ă«shtĂ« dhĂ«nĂ« mundĂ«sia e pĂ«rcaktimit tĂ« parametrave tĂ« tjerĂ« gjatĂ« regjistrimit tĂ« pajisjeve.
  • ËshtĂ« shtuar abstraksioni "RwSemaphore", qĂ« vepron si mbĂ«shtetje mbi strukturĂ«n C rw_semaphore.
  • PĂ«r pĂ«rdorimin e mmap Ă«shtĂ« shtuar njĂ« modul i ri mm dhe abstraksioni VMA (mbĂ«shtetje mbi strukturĂ«n vm_area_struct).
  • Drejtuesi GPIO PL061 Ă«shtĂ« kaluar nĂ« pĂ«rdorimin e makros "dev_*!".
  • ËshtĂ« kryer njĂ« pastrim i pĂ«rgjithshĂ«m i kodit.

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