Miguel Ojeda, autor i projektit Rust-for-Linux, i propozuar për shqyrtim nga zhvilluesit e kernelit Linux Publikimi i versionit 5 të komponentëve për zhvillimin e drajverëve të pajisjeve në Rust. Ky është rishikimi i gjashtë i patch-eve, duke marrë parasysh versionin e parë, të publikuar pa një numër versioni. Mbështetja për Rust konsiderohet eksperimentale, por është përfshirë tashmë në degën linux-next dhe është mjaftueshëm e pjekur për të filluar punën për krijimin e shtresave të abstraksionit mbi nënsistemet e bërthamës, si dhe për shkrimin e drajverëve dhe moduleve. Zhvillimi financohet nga Google dhe ISRG (Internet Security Research Group), themeluesi i projektit Let's Encrypt, i cili promovon HTTPS dhe zhvillimin e teknologjive për të përmirësuar sigurinë në internet.
Kujtojmë se 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.
Versioni i ri i arnimeve vazhdon të eliminojë komentet e bëra gjatë diskutimit të botimit të parë, të dytë, të tretë, të katërt dhe të pestë të arnimeve. Në versionin e ri:
- Paketa e veglave është përditësuar për të lëshuar Rust 1.59.0. Një variant i bibliotekës alloc sinkronizohet gjithashtu me versionin e ri të Rust, duke eliminuar gjenerimin e mundshëm të një gjendjeje "paniku" kur ndodhin gabime, të tilla si pa memorie. Aftësia për të përdorur insertet e montimit ("veçori(global_asm)") është stabilizuar.
- Mbështetje e shtuar për krijimin e programeve pritës në Rust që përdoren gjatë përpilimit të kernelit.
- Në vend që të dorëzojnë skedarët e specifikimeve të platformës së synuar të krijuar paraprakisht, ato gjenerohen në mënyrë dinamike bazuar në konfigurimin e kernelit.
- U shtua parametri i kernelit HAVE_RUST për të aktivizuar arkitekturat që mbështesin Rust.
- Abstraksionet propozohen për përdorim në kodin Rust për një gjenerator të numrave pseudo të rastësishëm.
- Lejohet përdorimi i kodeve të gabimit pa prefiksin "Error::" (për shembull, "kthimi Err(EINVAL)") për të përafruar trajtimin e kodeve të gabimit në C.
- U shtua lloji "CString" për vargjet C me porosi. Llojet Formatter dhe Buffer janë kombinuar.
- Llojet e shtuara Bool dhe LockInfo.
- Zbatimi i bllokimeve me rrotullim është thjeshtuar.
Burimi: opennet.ru
