Kad pou ekri chofè ki an sekirite pou nwayo Linux nan Rust

Josh Triplett, ki travay nan Intel e ki nan komite k ap sipèvize devlopman Crates.io, k ap pale nan Open Source Technology Summit la. entwodwi yon gwoup travay ki vize pou pote lang Rust la egalite ak lang C nan domèn pwogramasyon sistèm.

Nan yon gwoup travay ki nan pwosesis pou yo kreye, devlopè Rust, ansanm ak enjenyè Intel, pral prepare espesifikasyon ki defini fonksyonalite ki bezwen aplike nan Rust pou pwogramasyon sistèm yo. Pwogramasyon sistèm souvan mande pou manipilasyon ba nivo, tankou egzekite enstriksyon processeur privilejye ak jwenn enfòmasyon detaye sou eta a nan processeur a. Nan karakteristik ki sanble yo deja devlope pou Rust, sipò pou estrikti san non, sendika, foure langaj asanble (macro "asm!" la) ak fòma nimewo a k ap flote BFLOAT16.

Josh kwè ke lavni nan pwogramasyon sistèm ki dwe nan Rust, ak lang C nan reyalite modèn ap reklame plas la ki nan ane ki sot pase yo te okipe pa Asanble. Rouye
pa sèlman soulaje devlopè yo nan pwoblèm nannan nan lang C a ki rive akòz travay ki ba-nivo ak memwa, men tou, bay opòtinite pou yo sèvi ak li nan devlopman nan paradigm modèn pwogramasyon.

Pandan diskisyon pèfòmans
Josh te vini ak lide pou ajoute kapasite pou devlope chofè nan nwayo Linux nan lang Rust, ki ta fè li posib pou kreye chofè ki pi an sekirite ak pi bon ak efò minim, san pwoblèm tankou aksè memwa apre yo fin libere, nil. dereferences pointeur ak depase tanpon.

Greg Kroah-Hartman, ki responsab pou kenbe branch ki estab nan nwayo Linux la, te eksprime li dispoze ajoute yon kad pou devlope chofè nan lang Rust nan nwayo a si li gen avantaj reyèl sou C, pou egzanp, li pral bay sekirite. Liaisons sou Kernel API. Anplis de sa, Greg konsidere fondasyon sa a sèlman kòm yon opsyon, pa aktif pa default, pou yo pa enkli Rust kòm yon depandans bati sou nwayo a.

Li te tounen soti ke plizyè ekip yo deja travay nan direksyon sa a. Pou egzanp, devlopè nan konpayi an "Pwason nan yon barik" prepare yon zouti pou ekri modil chaje pou nwayo Linux nan lang Rust, lè l sèvi avèk yon seri kouch abstrè sou entèfas ak estrikti nwayo pou ogmante sekirite. Kouch yo pwodwi otomatikman baze sou dosye header nwayo ki deja egziste lè l sèvi avèk sèvis piblik la bindgen. Clang yo itilize pou konstwi kouch. Anplis interlayers, modil reyini yo sèvi ak pake staticlib la.

Paralèl ap devlope Yon lòt pwojè konsantre sou devlope chofè pou sistèm entegre ak aparèy IoT, ki itilize tou bindgen pou jenere kouch ki baze sou dosye header nwayo. Fondasyon an pèmèt ou amelyore sekirite chofè san yo pa fè chanjman nan nwayo a - olye pou yo kreye nivo izolasyon adisyonèl pou chofè nan nwayo a, li pwopoze pou bloke pwoblèm nan etap konpilasyon an, lè l sèvi avèk lang Rust ki pi an sekirite. Li sipoze ke yon apwòch sa a ka nan demann pa manifaktirè ekipman yo devlope chofè propriétaires nan yon prese san yo pa fè yon kontwòl kontab apwopriye.

Se pa tout nan fonksyonalite a gen entansyon ankò te aplike, men fondasyon an se deja byen apwopriye pou travay e li te itilize yo ekri yon chofè k ap travay pou LAN9512 USB Ethernet kontwolè a apwovizyone nan tablo a Franbwaz Pi 3. Chofè a ki deja egziste smsc95xx, ekri pa nan lang C. Li te note ke gwosè modil la ak anlè soti nan konpozan ègzekutabl lè w ap devlope yon chofè nan Rust yo ensiyifyan, ki pèmèt kad la yo dwe itilize pou aparèy ki gen resous limite.

Sous: opennet.ru

Add nouvo kòmantè