Miguel Ojeda, Rust-for-Linux projekti autor, esitas Linuxi tuuma arendajatele neljanda versiooni Rusti keeles seadme draiverite arendamiseks mĂ”eldud komponentidest. Rusti toetamist kĂ€sitletakse eksperimentaalsena, kuid see on juba kokkulepitud sisestamiseks linux-next filiaali ja on piisavalt arenenud, et alustada abstraktsioonikihtide loomist tuuma alamsĂŒsteemide ĂŒle ning samuti draiverite ja moodulite kirjutamist. Arendust finantseerivad ettevĂ”te Google ja organisatsioon ISRG (Internet Security Research Group), mis on Let's Encrypt projekti asutaja ja toetab HTTPS-i edendamist ning Interneti kaitsetehnoloogia arendamist.
Tuletame meelde, et ettepanekud muudatused vĂ”imaldavad kasutada Rusti teise keele kui draiverite ja tuuma moodulite arendamiseks. Rusti toetus on esitatud valikuna, mis pole vaikimisi aktiveeritud ja ei too kaasa Rusti lisamist tuuma kohustuslikesse koostamise sĂ”ltuvustesse. Rusti kasutamine draiverite arendamiseks vĂ”imaldab minimaalse vaevaga luua turvalisi ja kvaliteetseid draivereid, vabanedes sellistest probleemidest nagu mĂ€luprobleemide juurde pÀÀsemine pĂ€rast nende vabastamist, nullviidete de-referentsimine ja mĂ€lupuhvri piiride ĂŒletamine.
Rust tagab mĂ€luga ohutu töö kompileerimise ajal viidete kontrollimise, objektide omandi jĂ€lgimise ja objektide eluea (nĂ€htavuse) arvestamise kaudu ning hindab koodi kĂ€ivitamise ajal mĂ€lule juurdepÀÀsu Ă”igust. Rust pakub ka vahendeid tĂ€isarvude ĂŒletĂ€itumise kaitsmiseks, nĂ”uab muutuja vÀÀrtuste kohustuslikku algvÀÀrtustamist enne kasutamist, kĂ€sitleb vigu paremini standardraamatukogus, rakendab muutujaid ja viiteid vaikimisi muutumatuks (immutable) ning pakub tugevat staatilist tĂŒĂŒbi mÀÀramist loogiliste vigade vĂ€hendamiseks.
Uues patƥide versioonis jÀtkatakse esimeses, teises ja kolmandas patƥi redaktsioonis esitatud mÀrkuste eemaldamist. Uues versioonis:
- On ĂŒlemineku tegemine stabiilse Rusti 1.58.0 versiooni kasutamisele viitamisse kompilaatorina. Projekti jaoks vajalikud muudatused, mis ei ole veel pĂ”hivarustusse kuuluvad, hĂ”lmavad lippu â-Zsymbol-mangling-version=v0â (oodatakse Rust 1.59.0-s) ja reĆŸiimi âmaybe_uninit_extraâ (oodatakse Rust 1.60.0-s).
- On lisatud automaatkontrollid sobivuse osas Rusti tööriistade olemasolule ja laiendatud testimise vĂ”imalusi Rusti toe osas sĂŒsteemis.
- On pakutud uusi abstraktsioone, mis vĂ”imaldavad Rust-i keeles kirjutatud koodist pÀÀseda seadme identifikaatorite tabelitele (âIdArrayâ ja âIdTableâ).
- On lisatud vahed, et pÀÀseda kellaraamide funktsioonide juurde (kellafraiming).
- Platvormide draiverid on nĂŒĂŒd mÀÀratud tĂŒĂŒpide rakenduse kaudu.
- On lisatud uus makro platvormide draiverite registreerimise lihtsustamiseks ning pakutud uus tĂŒĂŒpmakro draiveri nĂ€idis.
- On lisatud makrod struktuuridele âdev_*â.
- On lisatud meetodid â{read,write}*_relaxedâ tĂŒĂŒpi IoMem jaoks.
- FileOpener omadus on eemaldatud failide operatsioonide lihtsustamiseks.
- Draiveri registreerimise protsessis edastatavate argumendide hulka on lisatud parameeter âThisModuleâ.
- On pakutud tĂŒĂŒpmakro tuumamoodulite loomiseks Rusti keeles.
Allikas: opennet.ru
