Miguel Ojeda, Rust-for-Linux projekti autor, pakkus Linuxi arendajatele arutamiseks välja v10 komponentide väljaandmise seadme draiverite arendamiseks Rusti keeles. See on juba üheteistkümnes redaktsioon patchidest, võttes arvesse esimest varianti, mis avaldati ilma versiooninumbrita. Rusti toe lisamine on Linus Torvalds'i poolt heaks kiidetud lisamiseks Linuxi 6.1 tuumasse, kui ei ilmne ootamatuid probleeme. Arendust rahastab Google ja ISRG (Internet Security Research Group), mis on Let’s Encrypt projekti asutaja ja toetab HTTPSi edendamist ning tehnoloogiate arendamist interneti turvalisuse suurendamiseks.
Nagu eelmine väljaanne, on v10 plaastriväljaanne kärbitud kõige vajalikuni, mis on piisav lihtsalt Rusti keeles kirjutatud tuumamooduli koostamiseks. Erinevused eelmisest versioonist on peamiselt väikesed parandused, sizeof asendamine ARRAY_SIZE-ga failis kallsyms.c ning plaastrite kohandamine tuuma v6.0-rc7 jaoks. Eeldatakse, et minimaalne plaastriversioon, mille koodirida pikkus on vähenenud 40 000-lt 13 000 reani, lihtsustab Rusti toe aktsepteerimist tuuma põhiväljaandes. Pärast minimaalset toe tagamist on plaanis järk-järgult suurendada olemasolevat funktsionaalsust, kandes üle ka teised muudatused Rust-for-Linux harust.
Teie muudatused võimaldavad kasutada Rusti teise keelena draiverite ja tuumamoodulite arendamisel. Rusti toega tutvustatakse valikuna, mis ei ole vaikimisi aktiivne ega too Rusti tuuma kohustuslikesse koostamise sõltuvustesse. Rusti kasutamine draiverite arendamiseks võimaldab vähese vaevaga luua turvalisi ja kvaliteetseid draivereid, vabastades need probleemidest, nagu mälu juurde pääsemine pärast vabastamist, null-punktide dereferentseerimine ja puhvri ületamine.
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.
Allikas: opennet.ru
