Miguel Ojeda, autori i projektit Rust-for-Linux, propozoi pĂ«r shqyrtim nga zhvilluesit e bĂ«rthamĂ«s Linux lĂ«shimin e komponentĂ«ve v5 pĂ«r zhvillimin e drejtorive tĂ« pajisjeve nĂ« gjuhĂ«n Rust. Kjo Ă«shtĂ« redaktimi i gjashtĂ« i patch-eve, duke marrĂ« parasysh variantin e parĂ« tĂ« publikuar pa numĂ«r versioni. MbĂ«shtetje pĂ«r Rust konsiderohet si eksperimentale, por tashmĂ« Ă«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-sistemĂ«t e bĂ«rthamĂ«s, si dhe pĂ«r shkruarjen e drejtorive dhe moduleve. Zhvillimi financohet nga kompania Google dhe organizata ISRG (Internet Security Research Group), e cila Ă«shtĂ« themeluesi i projektit Letâs Encrypt dhe ndihmon nĂ« promovimin e HTTPS dhe zhvillimin e teknologjive pĂ«r tĂ« rritur sigurinĂ« e 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 eliminimi i vërejtjeve që janë shprehur gjatë diskutimeve të redaktimeve të para, të dyta, të treta, të katërta dhe të pestë të patch-eve. Në versionin e ri:
- Instrumenti është përditësuar në lëshimin Rust 1.59.0. Me versionin e ri të Rust-it është sinkronizuar gjithashtu varianti i bibliotekës alloc, i liruar nga gjenerimet e mundshme të gjendjes "panic" në rast të gabimeve siç është mungesa e memories. Stabilizuar mundësia e përdorimit të futjeve assemblerike ("feature(global_asm)").
- Shtuar mbështetje për krijimin e programeve host në gjuhën Rust, të përdorura në procesin e kompilimit të bërthamës.
- Në vend të shpërndarjes së skedareve të krijuara paraprakisht me specifikimin e platformave të synuara, është siguruar gjenerimi i tyre dinamik në bazë të konfigurimit të bërthamës.
- Shtuar parametri i bërthamës HAVE_RUST, i aktivizuar për arkitekturat ku Rust mbështetet.
- Propozuar abstraksionet për përdorim në kodin në gjuhën Rust të gjeneratorit hardueror të numrave pseudo-rastor.
- Lejuar përdorimi i kodave të gabimeve pa prefix-in "Error::" (p.sh., "return Err(EINVAL)") për t'u afruar me trajtimin e kodave të gabimeve në C.
- Shtuar lloji "CString" për stringjet e veta C. Bashkuar tipet Formatter dhe Buffer.
- Shtuar tipazhet Bool dhe LockInfo.
- Thjeshtuar implementimi i spin-lock-ëve.
Burimi: opennet.ru
