Neljanda Linuxi tuuma patšide redaktsioon Rusti toetusega

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

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster