Miguel Ojeda, Rust-for-Linux projekti autor, esitas Linuxi tuumade arendajatele neljanda versiooni seadme draiverite arendamiseks Rusti keeles mĂ”eldud komponentidest. Rusti tugi on praegu katseline, kuid on juba kinnitatud lisamiseks linux-next harusse ning piisavalt arenenud, et alustada abstraktsioonikihtide loomist tuumakooslustes ja draiverite ning moodulite kirjutamist. Arendust finantseerivad Google ja ISRG (Internet Security Research Group), mis on Letâs Encrypt projekti asutaja ning toetab HTTPS-i edendamist ja tehnoloogiate arendamist, et suurendada interneti turvalisust.
Tulet meelde, et pakutud muudatused vÔimaldavad kasutada Rust'i teise keelena draiverite ja tuumamoodulite arendamiseks. Rust'i toetamist tutvustatakse valikuna, mis ei ole vaikimisi aktiivne ja ei too kaasa Rust'i lisamist tuuma kohustuslikesse kogumise sÔltuvustesse. Rust'i kasutamine draiverite arendamiseks vÔimaldab minimaalsete pingutustega luua turvalisemaid ja kvaliteetsemaid draivereid, vabastades need probleemidest nagu mÀlu kasutamine pÀrast selle vabastamist, nullviidete dereferenseerimine ja puhverserverist vÀlja minemine.
Rust tagab mĂ€lutöö turvalisust kompileerimise ajal viidatud linkide kontrollimise, objektide omaniku jĂ€lgimise ja objektide eluea arvestamise (nĂ€htavuse) kaudu, samuti pĂ€rast koodi kĂ€itamise ajal mĂ€lu juurdepÀÀsu Ă”igsuse hindamise kaudu. Rust pakub ka vahendeid tĂ€isarvude ĂŒlevoolude eest kaitsmiseks, nĂ”uab muutuja vÀÀrtuste kohustuslikku initsialiseerimist enne kasutamist, haldab vigu paremini standardraamatukogus, rakendab muutumatuse (immutable) kontseptsiooni linkide ja muutujate puhul vaikimisi ning pakub tugevat staatilist tĂŒĂŒpimist loogiliste vigade minimeerimiseks.
Uues versioonis on jÀtkatud mÀrkuste kÔrvaldamist, mis vÀljendati esimese, teise ja kolmanda patƥi arutelude kÀigus. Uues versioonis:
- On toimunud ĂŒleminek stabiliseeritud Rusti kompilaatori vĂ€ljaande versioonile 1.58.0. Projekti jaoks vajalikud muudatused, mis pole veel Rusti pĂ”hivahendite komplekti kuuluvad, on mĂ€rgitud lipuga â-Zsymbol-mangling-version=v0â (oodatakse Rustis 1.59.0) ja reĆŸiimiga âmaybe_uninit_extraâ (oodatakse Rustis 1.60.0).
- Automaatkontrollid Rust-tööriistade olemasolu kohta on lisatud ning Rusti toe testimise vÔimalusi on laiendatud.
- Uued abstraktsioonid on ettepanekud Rusti koodist seadmete identifikaatorite tabelitele juurdepÀÀsuks (âIdArrayâ ja âIdTableâ).
- Ajastusega seotud funktsioonide (kellaraamistik) kasutamiseks on lisatud vahekihti.
- Platvormide draiverid on nĂŒĂŒd mÀÀratletud tĂŒĂŒpide teostuse kaudu.
- Platvormide draiverite registreerimise hĂ”lbustamiseks on lisatud uus makro, samuti on ettepanek uus tĂŒĂŒpi draiveri mall.
- Struktuuride âdev_*â jaoks on lisatud makrod.
- TĂŒĂŒbile IoMem<T> on lisatud meetodid â{read,write}*_relaxedâ.
- Faili töötluse lihtsustamiseks on omadus FileOpener eemaldatud.
- Draiveri registreerimisel edastatavate argumentide hulka on lisatud parameeter âThisModuleâ.
- Rustis tuumamoodulite loomiseks on ettepanekud tĂŒĂŒpmallid.
Allikas: opennet.ru
