Miguel Ojeda, projekti âRust-for-â autorLinux, kerneli arendajatele kaalumiseks esitatud Linux Rusti seadmedraiverite arendamiseks mĂ”eldud komponentide neljas versioon. Rusti tuge peetakse eksperimentaalseks, kuid see on juba heaks kiidetud linux-next harusse lisamiseks ning on piisavalt kĂŒps, et alustada tööd abstraktsioonikihtide loomisega kerneli alamsĂŒsteemidele, samuti draiverite ja moodulite kirjutamisega. Arendust rahastavad Google ja ISRG (Internet Security Research Group), Let's Encrypt projekti asutaja, mis edendab HTTPS-i ja internetiturvalisust parandavate tehnoloogiate arendamist.
Tuletame meelde, et kavandatud muudatused vĂ”imaldavad kasutada Rusti draiverite ja tuumamoodulite arendamiseks teise keelena. Rooste tugi esitatakse valikuna, mis ei ole vaikimisi lubatud ja mille tulemuseks ei ole rooste kaasamine kerneli kohustusliku ehitussĂ”ltuvusse. Rooste kasutamine draiverite arendamiseks vĂ”imaldab teil luua turvalisemaid ja paremaid draivereid minimaalse pingutusega, ilma probleemideta, nagu juurdepÀÀs mĂ€lule pĂ€rast vabastamist, nullkursori viited ja puhvri ĂŒlekoormus.
MĂ€lu turvalisus on Rustis kompileerimise ajal tagatud viidete kontrollimise, objekti omandiĂ”iguse ja objekti eluea (ulatuse) jĂ€lgimise, samuti koodi tĂ€itmise ajal mĂ€lu juurdepÀÀsu Ă”igsuse hindamise kaudu. Rooste pakub ka kaitset tĂ€isarvude ĂŒletĂ€itumise eest, nĂ”uab muutujate vÀÀrtuste kohustuslikku lĂ€htestamist enne kasutamist, kĂ€sitleb standardteegi vigu paremini, rakendab vaikimisi muutumatute viidete ja muutujate kontseptsiooni, pakub tugevat staatilist tippimist loogiliste vigade minimeerimiseks.
Plaastrite uus versioon jÀtkab plaastrite esimese, teise ja kolmanda vÀljaande arutelul tehtud kommentaaride kÔrvaldamist. Uues versioonis:
- Ăleminek Rust 1.58.0 stabiilse vĂ€ljalaske kasutamisele vĂ”rdluskompilaatorina on tehtud. Projekti jaoks vajalike muudatuste hulgas, mis ei ole veel Rusti pĂ”hitööriistakomplektis sisalduvad, on lipp â-Zsymbol-mangling-version=v0â (oodatav versioonis Rust 1.59.0) ja reĆŸiim âmaybe_uninit_extraâ (oodatud versioonis Rust 1.60.0). .XNUMX) on mĂ€rgitud.
- Lisati automaatsed kontrollid sobivate Rusti tööriistade saadavuse osas ja laiendati sĂŒsteemis Rusti toe testimise vĂ”imalust.
- Seadme identifikaatori tabelitele ("IdArray" ja "IdTable") pÀÀsemiseks Rust-koodist on pakutud uusi abstraktsioone.
- Lisatud kihid taimeriga seotud funktsioonidele juurdepÀÀsuks (kellaraamistik).
- Platvormi draiverid on nĂŒĂŒd mÀÀratletud tunnuste juurutuste kaudu.
- Platvormidraiverite registreerimise lihtsustamiseks on lisatud uus makro ja pakutud on vĂ€lja uus ĂŒldine draiveri mall.
- Lisatud makrod "dev_*" struktuuride jaoks.
- IoMemi tĂŒĂŒbi jaoks on lisatud meetodid "{read,write}*_relaxed". .
- Failitoimingute lihtsustamiseks eemaldati atribuut FileOpener.
- Draiveri registreerimisel edastatud argumentidele on lisatud parameeter âThisModuleâ.
- Pakutakse vÀlja standardne mall tuumamoodulite loomiseks Rust keeles.
Allikas: opennet.ru
