Miguel Ojeda, Rust-for-Linux projekti autor, pakkus Linuxi tuuma arendajatele kaaluda Rusti keeles seadmedraiverite arendamiseks mĂ”eldud komponentide v5 vabastamist. See on kuues kord, kui patĆĄid vĂ€lja antakse, arvestades esimest mustandit, mis avaldati ilma versiooninumbrita. Rusti tugi on eksperimenteerimise faasis, kuid on juba kaasatud linux-next haru ja piisavalt arenenud, et alustada abstraktsioonikihtide loomist tuuma alamĂŒsteemide ĂŒle ning kirjutada draivereid ja mooduleid. Arendust finantseerivad Google ja ISRG (Internet Security Research Group), kes on Letâs Encrypt projekti asutaja ning toetab HTTPS-i ja interneti turvalisuse tehnoloogiate edendamist.
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 patƥi variandis jÀtkatakse varasemate patƥi versioonide - esimese, teise, kolmanda, neljanda ja viienda - arutelust saadud mÀrkuste kÔrvaldamist. Uues versioonis:
- Tööriistakomplekt on uuendatud Rust 1.59.0 versioonini. Koos uue Rust versiooniga on sĂŒnkroniseeritud alloc teegi variant, mis vĂ€listab vĂ”imaliku "panic" seisundi genereerimise vigade, nĂ€iteks mĂ€lu nappuse, korral. Stabiliseeritud on assembleri sisestuste kasutamine ("feature(global_asm)").
- Lisatud tugi Rustis kirjutatud hostiprogrammide loomisele, mida kasutatakse kernelit kompileerimise protsessis.
- Kohandatud platvormide spetsifikatsioonifailide eelehituslik pakkumine on asendatud nende dĂŒnaamilise genereerimisega kernelikonfiguratsiooni pĂ”hjal.
- Lisatud kerneliparameter HAVE_RUST, mis aktiveeritakse arhitektuuridel, kus Rust on toetatud.
- Pakutakse abstraktsioone, et kasutada Rusti koodis psĂŒhhosatellitite generaatorit.
- Lubatud on kasutada vigu ilma "Error::" eelmissita (nÀiteks "return Err(EINVAL)") C keele vigade töötlemise lÀhenemise lihtsustamiseks.
- Lisatud tĂŒĂŒp "CString" lĂ€htekoodi stringide jaoks. Formatter ja Buffer tĂŒĂŒbid on ĂŒhendatud.
- Lisatud tĂŒĂŒbid Bool ja LockInfo.
- Spin-lockide teostust on lihtsustatud.
Allikas: opennet.ru
