Raamistik kaitstud Linuxi sĂŒdamiku draiverite kirjutamiseks Rustis

Josh Triplett, Intel'i töötaja ja Crates.io arenduse komitee liige, rÀÀkis oma esitluses Open Source Technology Summit konverentsil esitles töörĂŒhmast, mille eesmĂ€rk on viia Rusti programmeerimiskeel sĂŒsteemiprogrammeerimise osas tasemele, mis on vĂ”rdne C keele tasemega.

Uues töörĂŒhmas, mis on moodustamisel, töötavad Rusti arendajad koos Intel'i inseneridega vĂ€lja spetsifikatsioonid, mis mÀÀravad funktsionaalsuse, mida on vaja Rustis sĂŒsteemiprogrammeerimise jaoks rakendada. SĂŒsteemiprogrammeerimine nĂ”uab sageli madalamal tasemel manipulatsioone, nagu privileegitud protsessori juhiste tĂ€itmine ja ĂŒksikasjalike teabe saamine protsessori oleku kohta. Juba arendatavad sarnased vĂ”imalused Rustile sisaldavad nimetamata struktuure, ĂŒhendusi (union), assembler'i sisendeid (makro „asm!”) ja ujuvapunktnumbrite formaati BFLOAT16.

Josh usub, et sĂŒsteemiprogrammeerimise tulevik kuulub Rustile, ja C keel pĂŒĂŒab tĂ€napĂ€eval saavutada positsiooni, mida pealegi varem oli omanud Assembly. Rust
ei aita mitte ainult arendajaid vabastada C keele madalama taseme mÀlutöötlusega seotud probleemidest, vaid pakub ka vÔimalust rakendada kaasaegseid programmeerimisparadigmasid.

Esitluse kÀigus arutelu esitas
Josh idee lisada Linuxi kerneli vĂ”imalus arendada draivereid Rusti keeles, mis vĂ”imaldab luua ohutumaid ja kvaliteetsemaid draivereid minimaalse vaevaga, vabastades taolised probleemid nagu mĂ€lu vabastamise jĂ€rgne juurdepÀÀs, nullviidete de-referentsimine ja puuteĂŒlemine.

Greg Kroah-Hartman, kes vastutab Linuxi kerneli stabiilse haru toe eest, vĂ€ljendas valmisolekut lisada kĂ€rneli raamistik rusti keeles draiverite arendamiseks, kui see pakub reaalseid eeliseid vĂ”rreldes C-ga, nĂ€iteks pakkudes ohutuid ĂŒmbritsevaid teenuseid kĂ€rneli API-le. Lisaks peab Greg seda raamistikku vaid valikuks, mis pole vaikimisi aktiivne, et Rust ei muutuks kĂ€rneli sĂ”ltuvusteks.

Selgus, et mitmed meeskonnad töötavad juba selle suuna kallal. NĂ€iteks arendajad ettevĂ”ttest "Fish in a Barrel" valmis tööriistakomplekt, mis on mĂ”eldud laaditavate moodulite kirjutamiseks Linuxi sĂŒdamikku Rusti keeles, kasutades turvalisuse suurendamiseks abstraktsete kihtide komplekti sĂŒdamiku liideste ja struktuuride kohal. Kihti genereeritakse automaatselt olemasolevate sĂŒdamiku pealkirjade pĂ”hjal tööriista abil bindgen. Kihtide kokkupanekuks kasutatakse Clangit. Kogutavad moodulid kasutavad lisaks kihtidele ka staatilist paketti.

Samas areneb on veel ĂŒks projekt, mis keskendub draiverite vĂ€ljatöötamisele sisseehitatud sĂŒsteemidele ja asjade interneti seadmetele, mis samuti kasutab bindgeni kihtide genereerimiseks sĂŒdamiku pealkirjade pĂ”hjal. Raamistik vĂ”imaldab suurendada draiverite turvalisust ilma muutmata sĂŒdamikku — selle asemel, et luua sĂŒdamikus tĂ€iendavaid isolatsioonitasandeid draivereid jaoks, soovitatakse probleeme blokeerida kompileerimise etapis, kasutades turvalisemat Rusti keelt. Eeldatakse, et sarnane lĂ€henemine vĂ”ib olla nĂ”udlik seadmete tootjate seas, kes töötavad vĂ€lja omandiĂ”igusega draivereid kiiresti, ilma korraliku auditeerimise lĂ€biviimata.

Kuid mitte kÔik planeeritud funktsioonid pole veel ellu kutsutud, kuid raamistik on juba piisavalt töökindel ning seda on kasutatud töö draiveri kirjutamiseks Ethernet-kontrollerile LAN9512 USB, mis on varustatud Raspberry Pi 3 plaadil. Rusti draiveri kirjutamisel kasutati malli rakendamiseks olemasolevat C keeles kirjutatud smsc95xx draiverit. MÀrgitakse, et mooduli suurus ja runtime-komponentide kulud Rusti draiveri vÀljatöötamisel on ebaolulised, mis vÔimaldab raamistikku kasutada piiratud ressurssidega seadmetes.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster