Miguel Ojeda, autori i projektit Rust-for-Linux, propozoi për shqyrtim nga zhvilluesit e kernelit Linux një variant të përmirësuar të komponenteve për zhvillimin e drejtorive të pajisjeve në gjuhën Rust. Mbështetja për Rust shqyrtohet si eksperimentale, por tashmë është miratuar për t'u përfshirë në degën linux-next. Në variantin e ri janë eliminuar komentet e shprehura gjatë diskutimit të versionit të parë të patches. Linus Torvalds ka filluar tashmë diskutimin dhe ka propozuar të ndryshojë logjikën e përpunimit të disa operacioneve bitore.
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.
Ndryshimet më të dukshme në versionin e ri të patches:
- Kodi për shpërndarjen e memories është çliruar nga gjenerimet e mundshme të gjendjes "panic" kur ndodhin gabime si mungesa e memories. Në përbërje është përfshirë një variant i bibliotekës Rust alloc, në të cilin është rishkruar kodi për përpunimin e gabimeve, por qëllimi përfundimtar është transferimi në redaksinë kryesore të alloc të të gjitha mundësive që nevojiten për kernelin (ndryshimet janë përgatitur tashmë dhe janë dërguar në përbërjen e bibliotekës standarte Rust).
- Në vend të ndërtimeve të natës për kompilimin e kernelit me mbështetje për Rust, tani mund të përdoren versione beta dhe lëshime stabile të kompilatorit rustc. Në këtë moment, si kompilator referencë përdoret rustc 1.54-beta1, por pas daljes së lëshimit 1.54 në fund të muajit, nga tani e tutje do të mbështetet pikërisht ai.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r shkruarjen e testeve duke pĂ«rdorur atributin standard pĂ«r Rust "#[test]" dhe mundĂ«sia e aplikimit tĂ« doctests pĂ«r dokumentimin e testeve.
- Shtuar mbështetje për arkitekturën ARM32 dhe RISCV përveç x86_64 dhe ARM64 që ishin mbështetur më parë.
- Janë përmirësuar implementimet GCC Rust (front-end i GCC për Rust) dhe rustc_codegen_gcc (back-end i rustc për GCC), i cili tani kalon të gjitha testet bazike.
- Propozohet një nivel i ri abstraksioni për përdorim në programet në gjuhën Rust për mekanizmat e kernelit, të shkruara në gjuhën C, siç janë pemët e kuqe-madhe, objektet me ndihmës të numërimit të referencave, krijimi i deshifruesve të skedarëve, detyrat, skedarët dhe vektorët e hyrjes/daljes.
- Në komponentet për zhvillimin e drejtorive është përmirësuar mbështetja për modulimin e "file_operations", makron "module!", regjistrimin e makrave dhe drejtorët rudimentare (probe dhe remove).
- Në Binder është implementuar mbështetje për kalimin e deshifruesve të skedarëve dhe LSM-hooks.
- NjĂ« shembull mĂ« funksional i shoferit nĂ« Rust â bcm2835-rng pĂ«r gjeneratorin harduerik tĂ« numrave tĂ« rastĂ«sishĂ«m tĂ« plaformave Raspberry Pi.
Për më tepër, përmenden projektet e disa kompanive, të lidhura me përdorimin e Rust në bërthamë:
- Kompania Microsoft shprehu interes për të marrë pjesë në punën për integrimin e mbështetjes Rust në bërthamën Linux dhe është e gatshme të ofrojë realizime të shoferëve për Hyper-V në Rust në muajt në vijim.
- Kompania ARM po punon për përmirësimin e mbështetjes Rust për sistemet e bazuara në procesorë ARM. Projektit Rust i janë propozuar tashmë ndryshime që e çojnë sistemet 64-bit të ARM në mesin e platformave të mbështetjes së nivelit të parë (Tier-1).
- Kompania Google siguron mbështetje direkte për projektin Rust for Linux, zhvillon një implementim të ri të mekanizmit të ndërveprimit në mes të proceseve Binder në Rust dhe po shqyrton mundësinë e ristrukturimit në Rust të shoferëve të ndryshëm. Nëpërmjet ISRG (Internet Security Research Group), kompania Google siguroi financimin për punën në integrimin e mbështetjes Rust në bërthamën Linux.
- Kompania IBM ka realizuar mbështetje për Rust në bërthamë për sistemet PowerPC.
- Laboratori LSE (Laboratori i Kërkimeve të Sistemeve) ka zhvilluar një shofer SPI në Rust.
Burimi: opennet.ru
