Versioni i dhjetë i arnimeve për kernelin Linux me mbështetje për gjuhën Rust

Miguel Ojeda, autori i projektit Rust-for-Linux, propozoi lëshimin e komponentëve v10 për zhvillimin e drejtuesve të pajisjes në gjuhën Rust për t'u marrë në konsideratë nga zhvilluesit e kernelit Linux. Ky është edicioni i njëmbëdhjetë i arnimeve, duke marrë parasysh versionin e parë, të publikuar pa një numër versioni. Përfshirja e mbështetjes Rust është miratuar nga Linusum Torvalds për përfshirje në kernelin Linux 6.1, duke përjashtuar problemet e paparashikuara. Zhvillimi financohet nga Google dhe ISRG (Internet Security Research Group), i cili është themeluesi i projektit Let's Encrypt dhe promovon HTTPS dhe zhvillimin e teknologjive për të përmirësuar sigurinë në internet.

Ashtu si versioni i mëparshëm i arnimeve, lëshimi i v10 është shkurtuar në minimum, i mjaftueshëm për të ndërtuar një modul të thjeshtë kernel të shkruar në gjuhën Rust. Dallimet nga versioni i mëparshëm zbresin në modifikime të vogla, duke zëvendësuar sizeof me ARRAY_SIZE në kallsyms.c dhe duke përshtatur arna në kernelin v6.0-rc7. Pritet që patch-i minimal, madhësia e të cilit është zvogëluar nga 40 në 13 mijë rreshta kodi, do të thjeshtojë miratimin e mbështetjes Rust në kernelin kryesor. Pas ofrimit të mbështetjes minimale, është planifikuar të rritet gradualisht funksionaliteti ekzistues, duke transferuar ndryshime të tjera nga dega Rust-for-Linux.

Ndryshimet e propozuara bëjnë të mundur përdorimin e Rust si gjuhë të dytë për zhvillimin e drejtuesve dhe moduleve të kernelit. Mbështetja e Rust paraqitet si një opsion që nuk është aktivizuar si parazgjedhje dhe nuk rezulton që Rust të përfshihet si një varësi e nevojshme ndërtimi për kernelin. Përdorimi i Rust për zhvillimin e drejtuesve do t'ju lejojë të krijoni drejtues më të sigurt dhe më të mirë me përpjekje minimale, pa probleme të tilla si qasja në kujtesë pas çlirimit, çreferencat e treguesit null dhe tejkalimet e buferit.

Siguria e memories sigurohet në Rust në kohën e përpilimit përmes kontrollit të referencës, mbajtjes së gjurmëve të pronësisë së objektit dhe jetëgjatësisë së objektit (fushëveprimit), si dhe përmes vlerësimit të korrektësisë së aksesit në kujtesë gjatë ekzekutimit të kodit. Rust siguron gjithashtu mbrojtje kundër tejmbushjeve të 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ë pandryshueshme si parazgjedhje, ofron shtypje të fortë statike për të minimizuar gabimet logjike.

Burimi: opennet.ru

Shto një koment