Qafas għall-kitba ta 'sewwieqa siguri għall-kernel Linux f'Rut

Josh Triplett, li jaħdem ma' Intel u jinsab fil-kumitat li jissorvelja l-iżvilupp ta' Crates.io, jitkellem fis-Summit tat-Teknoloġija tas-Sors Miftuħ daħħal grupp ta' ħidma bil-għan li jġib il-lingwa Rust għall-parità mal-lingwa Ċ fil-qasam tal-ipprogrammar tas-sistemi.

Fi grupp ta' ħidma li jinsab fil-proċess li jinħoloq, l-iżviluppaturi ta' Rust, flimkien ma' inġiniera minn Intel, se jippreparaw speċifikazzjonijiet li jiddefinixxu l-funzjonalità li jeħtieġ li tiġi implimentata f'Rust għall-ipprogrammar tas-sistemi. L-ipprogrammar tas-sistema ħafna drabi jeħtieġ manipulazzjoni ta 'livell baxx, bħall-eżekuzzjoni ta' struzzjonijiet tal-proċessur privileġġjat u l-kisba ta 'informazzjoni dettaljata dwar l-istat tal-proċessur. Mill-karatteristiċi simili li diġà qed jiġu żviluppati għal Rust, huwa nnutat appoġġ għal strutturi bla isem, unions, inserzjonijiet tal-lingwa tal-assemblaġġ (il-makro "asm!") u l-format tan-numru b'punt li jvarja BFLOAT16.

Josh jemmen li l-futur tal-ipprogrammar tas-sistema jappartjeni għal Rust, u l-lingwa Ċ fir-realtajiet moderni qed titlob il-post li fl-aħħar snin kien okkupat mill-Assemblea. Sadid
mhux biss jeħles lill-iżviluppaturi mill-problemi inerenti fil-lingwa C li jinqalgħu minħabba xogħol ta 'livell baxx bil-memorja, iżda jipprovdi wkoll l-opportunità li jużaha fl-iżvilupp ta' paradigmi ta 'programmar moderni.

Matul diskussjonijiet wirjiet
Josh ħareġ bl-idea li jżid il-kapaċità li jiżviluppa sewwieqa fil-qalba tal-Linux fil-lingwa Rust, li jagħmilha possibbli li jinħolqu sewwieqa aktar sikuri u aħjar bi sforz minimu, ħielsa minn problemi bħall-aċċess għall-memorja wara l-ħelsien, null dereferenzi tal-pointer u buffer overruns.

Greg Kroah-Hartman, li huwa responsabbli għaż-żamma tal-fergħa stabbli tal-qalba tal-Linux, esprima r-rieda tiegħu li jżid qafas għall-iżvilupp ta 'sewwieqa fil-lingwa Rust mal-qalba jekk ikollu vantaġġi reali fuq C, per eżempju, se jipprovdi sigur. rbit fuq Kernel API. Barra minn hekk, Greg jikkunsidra dan il-qafas biss bħala għażla, mhux attiv b'mod awtomatiku, sabiex ma jinkludix Rust bħala dipendenza tal-bini fuq il-kernel.

Irriżulta li diversi timijiet diġà qed jaħdmu f’din id-direzzjoni. Per eżempju, l-iżviluppaturi mill-kumpanija "Fish in a Barrel" ippreparat sett ta 'għodda għall-kitba ta' moduli li jistgħu jitgħabbew għall-qalba tal-Linux fil-lingwa Rust, bl-użu ta 'sett ta' saffi astratti fuq l-interfaces u strutturi tal-qalba biex tiżdied is-sigurtà. Is-saffi huma ġġenerati awtomatikament abbażi tal-fajls eżistenti tal-header tal-qalba bl-użu tal-utilità bindgen. Clang jintuża biex jinbnew saffi. Minbarra s-saffi ta' bejn is-saffi, il-moduli immuntati jużaw il-pakkett staticlib.

Parallel qed tiżviluppa Proġett ieħor iffoka fuq l-iżvilupp ta 'sewwieqa għal sistemi inkorporati u tagħmir IoT, li juża wkoll bindgen biex jiġġenera saffi bbażati fuq fajls ta' header tal-kernel. Il-qafas jippermettilek ittejjeb is-sigurtà tas-sewwieq mingħajr ma tagħmel bidliet fil-qalba - minflok ma toħloq livelli ta 'iżolament addizzjonali għas-sewwieqa fil-qalba, huwa propost li timblokka l-problemi fl-istadju tal-kumpilazzjoni, bl-użu tal-lingwa Rust aktar sigura. Huwa preżunt li tali approċċ jista 'jkun fid-domanda mill-manifatturi tat-tagħmir li jiżviluppaw sewwieqa proprjetarji bil-għaġla mingħajr ma jwettqu verifika xierqa.

Mhux il-funzjonalità kollha maħsuba għadha ġiet implimentata, iżda l-qafas diġà huwa pjuttost adattat għax-xogħol u ntuża biex jikteb sewwieq tax-xogħol għall-kontrollur Ethernet LAN9512 USB fornut fil-bord Raspberry Pi 3. Is-sewwieq eżistenti smsc95xx, miktub minn fi Lingwa C. Huwa nnutat li d-daqs tal-modulu u l-overhead minn komponenti runtime meta jiġi żviluppat sewwieq f'Rut huma insinifikanti, li jippermetti li l-qafas jintuża għal apparati b'riżorsi limitati.

Sors: opennet.ru

Żid kumment