Linuxi tuuma kaitstud draiverite kirjutamise raamistik Rusti keeles

Josh Triplett, kes töötab Intelis ja kuulub Crates.io arenduse supervisioonikomiteesse, rÀÀkis Open Source Technology Summit'i konverentsil esitles töörĂŒhmast, mille eesmĂ€rk on viia Rusti keel pariteeti C keelega sĂŒsteemiprogrammeerimise valdkonnas.

Uues töörĂŒhmas, mis on moodustamisel, töötavad Rusti arendajad koos Intel'i inseneridega vĂ€lja spetsifikatsioonid, mÀÀratledes funktsionaalsuse, mida tuleb Rustis korraldada sĂŒsteemiprogrammeerimiseks. SĂŒsteemiprogrammeerimine nĂ”uab sageli madala taseme manipuleerimist, nagu privileege omavad protsessori kĂ€sud ja detailse teabe saamine protsessori seisundi kohta. Rustile arendatavaid sarnaseid vĂ”imalusi on juba mĂ€rgitud, sealhulgas nimeta struktuurid, liidendid (union), assembleri sisestused (makro „asm!”) ja BFLOAT16 ujukomaarvude formaat.

Josh usub, et sĂŒsteemse programmeerimise tulevik kuulub Rustile ning C-keel pĂŒĂŒab kaasaegsetes oludes koha, mille eelnevatel aastatel oli hĂ”ivanud Assembly. Rust
ei vabasta arendajaid mitte ainult C-keele tÀiendavatest probleemidest, mis tulenevad madala tasemega mÀlu haldamisest, vaid ka pakub vÔimalusi kaasaegsete programmeerimisparadigmade rakendamiseks.

Arutelul esitati esinemisest
Josh tÔi vÀlja idee lisada Linuxi tuumale vÔimalus arendada draivereid Rusti keeles, mis vÔimaldaks luua ohutuid ja kvaliteetsemaid draivereid minimaalse vaevaga, vÀltides probleeme nagu vabastatud mÀlu alale juurdepÀÀs, null viidete kasutamine ja puhvri piiridest vÀljumine.

Greg Kroah-Hartman, kes vastutab Linuxi stabiilse tuuma toetamise eest, on vĂ€ljendanud valmidust lisada tuuma raamistik Rusti keeles draiverite arendamiseks, kui see pakub reaalseid eeliseid vĂ”rreldes C-ga, nĂ€iteks kui see pakub turvalisi sidumisi tuuma API ĂŒle. Lisaks peab Greg seda raamistikku vaid vĂ”imaluseks, mitte vaikimisi aktiivseks, et mitte lisada Rusti tuuma kogumisse sĂ”ltuvused.

Selgus, et mitu meeskonda töötab juba selles suunas. NÀiteks ettevÔtte "Fish in a Barrel" arendajad valmistasid on loonud tööriistakomplekti Linuxi tuuma laaditavate moodulite kirjutamiseks Rusti keeles, kasutades kaitse suurendamiseks tuuma liideste ja struktuuride kohalolevate abstraktsete kihtide komplekti. Kihtide loomine toimub olemasolevate tuuma pÀistefailide pÔhjal utiliidi bindgen. Kihtide koostamiseks kasutatakse Clangit. Koostatavad moodulid kasutavad lisaks kihtidele ka paketti staticlib.

Samaaegselt arendatakse veel ĂŒks projekt, mis keskendub draiverite arendamisele sisseehitatud sĂŒsteemidele ja asjade interneti seadmetele ning kasutab ka bindgen'i, et genereerida kihte pĂ”hinedes kernel'i pĂ€istele. Raamistik vĂ”imaldab tĂ”sta draiverite turvalisust ilma tuuma muutmiseta — selle asemel, et luua tuumas tĂ€iendavaid isoleerimise tasandeid draiverite jaoks, pakutakse vĂ€lja vĂ”imalus probleemide blokeerimine kompileerimise etapil, rakendades turvalisemat keelt Rust. Eeldatakse, et selline lĂ€henemine vĂ”ib osutuda nĂ”udlikuks riistvaratootjate seas, kes arendavad kiirusel omandiĂ”igusega draivereid ilma nĂ”uetekohase auditeerimiseta.

Kuigi kĂ”ik planeeritud funktsionaalsused pole veel realiseeritud, on raamistik juba piisavalt töökorras ja seda on kasutatud Ethernet-kontrolleri LAN9512 USB juhtme rakendamiseks, mis on kaasas Raspberry Pi 3 plaadiga. Rust-draiveri kirjutamisel kasutati olemasolevat smsc95xx draiverit, mis on kirjutatud C keeles. MĂ€rgitakse, et mooduli suurus ja runtime-komponentide ĂŒlejÀÀk Rust-draiveri arendamisel on ebaolulised, mis vĂ”imaldab raamistikku kasutada piiratud ressurssidega seadmetes.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster