Botimi i katërt i patches për kernelin Linux me mbështetje për gjuhën Rust

Miguel Ojeda, autori i projektit Rust-for-Linux, propozi pĂ«r shqyrtim nga zhvilluesit e bĂ«rthamĂ«s Linux variantin e katĂ«rt tĂ« komponenteve pĂ«r zhvillimin e driverĂ«ve tĂ« pajisjeve nĂ« gjuhĂ«n Rust. MbĂ«shtetja pĂ«r Rust shihet 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 mbi krijimin e shtresave tĂ« abstraksionit mbi nĂ«n-sistemet e bĂ«rthamĂ«s, si dhe pĂ«r tĂ« shkruar driverĂ« dhe module. 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.

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 eliminimi i vërejtjeve të shprehura gjatë diskutimit të redaksive të para, të dyta dhe të treta të patch-eve. Në versionin e ri:

  • ËshtĂ« realizuar kalimi nĂ« pĂ«rdorimin e si kompilator referencĂ« versionin e stabilizuar Rust 1.58.0. Nga ndryshimet e nevojshme pĂ«r projektin, tĂ« cilat ende nuk janĂ« pĂ«rfshirĂ« nĂ« grupin kryesor tĂ« mjetĂ«ve Rust, pĂ«rmenden flagu «-Zsymbol-mangling-version=v0» (pritet nĂ« Rust 1.59.0) dhe moda «maybe_uninit_extra» (pritet nĂ« Rust 1.60.0).
  • Shtuar verifikimet automatike pĂ«r praninĂ« e mjeteve tĂ« pĂ«rshtatshme Rust dhe janĂ« zgjeruar mundĂ«sitĂ« pĂ«r testimin e mbĂ«shtetjes Rust nĂ« sistem.
  • Propozuar abstraksione tĂ« reja pĂ«r qasje nga kodi nĂ« gjuhĂ«n Rust nĂ« tabelat e identifikimit tĂ« pajisjeve («IdArray» dhe «IdTable»).
  • Shtuar shtresa pĂ«r t'u drejtuar funksioneve tĂ« lidhura me orĂ«n (kĂ«ndvishte orare).
  • Drivert pĂ«r platformat tani janĂ« pĂ«rcaktuar pĂ«rmes realizimit tĂ« tipazheve.
  • Shtuar njĂ« makro tĂ« re pĂ«r tĂ« thjeshtuar regjistrimin e driverĂ«ve tĂ« platformĂ«s, si dhe njĂ« shablon tĂ« ri pĂ«r driverin tipik.
  • Shtuar makrot pĂ«r strukturat «dev_*».
  • Shtuar metodat «{read,write}*_relaxed» pĂ«r llojin IoMem.
  • Larguar vetia FileOpener pĂ«r tĂ« thjeshtuar operacionet me skedarĂ«.
  • NĂ« numrin e argumenteve tĂ« kaluara gjatĂ« regjistrimit tĂ« driverit Ă«shtĂ« shtuar parameteri «ThisModule».
  • Propozuar njĂ« shablon tipik pĂ«r krijimin e moduleve tĂ« bĂ«rthamĂ«s nĂ« gjuhĂ«n Rust.

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