Linuxi tuuma viies plaastriversioon, mis toetab Rust programmi keelt

Miguel Ojeda, Rust-for-Linux projekti autor, on esitanud Linuxi tuuma arendajatele viienda versiooni Rusti seadme draiverite arendamiseks mõeldud komponentidest. Rusti tugi on eksperimenteerimise faasis, kuid on juba lisatud linux-next harusse ja piisavalt arenenud, et alustada põhituuma alamsüsteemide üle abstraktsioonikihtide loomist, samuti draiverite ja moodulite kirjutamist. Arendust rahastavad Google ja ISRG (Internet Security Research Group), mis on Let’s Encrypti projekti asutaja ja toetab HTTPSi edendamist ning tehnoloogiate arendamist interneti turvalisuse suurendamiseks.

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 patchi versioonis jätkatakse esitatud märkuste kõrvaldamist esimese, teise, kolmanda ja neljanda patchiversiooni arutelude käigus. Uues versioonis:

  • Inteli toetatud 0DAY/LKP botil põhinev pideva integreerimise süsteem on saanud Rusti toe kontrollimiseks komponente ja testimisaruannete avaldamine on alanud. KernelCI automaatse testimise süsteemi Rusti toe integreerimine on valmimas. GitHub CI testimine on seatud konteinerite kasutamisele.
  • Rustis põhinevad kernelimoodulid on vabastatud crate-atribuutide määramisest, nagu «#![no_std]» ja «#![feature(…)]».
  • Toetatud on üksikute ehitustavate (.o, .s, .ll ja .i).
  • Koodi vormindamise soovitustes on kehtestatud reeglid kommentaaride («//») ja koodi dokumenteerimise («///») eraldamiseks.
  • Is_rust_module.sh skript on ümber töödatud.
  • Lisatud on statiliste (globaalsete jagatud muutujate) sünkroniseerimise primitiivide tugi, mis põhinevad «CONFIG_CONSTRUCTORS» teostusel.
  • Lukustamise haldust on lihtsustatud: Guard ja GuardMut on ühendatud ning üks parametriseeritud tüüp.
  • Seadmete registreerimise ajal on võimalik määrata täiendavaid parameetreid.
  • Lisatud on «RwSemaphore» abstraktsioon, mis toimib Sii-struktuuri rw_semaphore ümberkorraldusega.
  • Mmap'i kasutamiseks on lisatud uus moodul mm ja abstraktsioon VMA (ümbermoodustamine vm_area_struct struktuuri jaoks).
  • GPIO PL061 draiver on muudetud kasutama makrot „dev_*!”.
  • Teostati koodi üldine puhastus.

Allikas: opennet.ru

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