Ilana fun kikọ awọn awakọ to ni aabo fun ekuro Linux ni Rust

Josh Triplett, ti o ṣiṣẹ ni Intel ati pe o wa lori igbimọ ti o nṣe abojuto idagbasoke ti Crates.io, ti o nsọrọ ni Open Source Technology Summit ṣafihan ẹgbẹ iṣẹ kan ti o ni ero lati mu ede Rust wa ni ibamu pẹlu ede C ni aaye ti siseto awọn eto.

Ninu ẹgbẹ ti n ṣiṣẹ ti o wa ninu ilana ti ṣiṣẹda, awọn olupilẹṣẹ ipata, pẹlu awọn onimọ-ẹrọ lati Intel, yoo mura awọn alaye ni pato ti n ṣalaye iṣẹ ṣiṣe ti o nilo lati ṣe imuse ni ipata fun siseto awọn eto. Eto eto nigbagbogbo nilo ifọwọyi ipele kekere, gẹgẹbi ṣiṣe awọn ilana ero isise ti o ni anfani ati gbigba alaye alaye nipa ipo ero isise naa. Ninu awọn ẹya ti o jọra ti a ti dagbasoke tẹlẹ fun Rust, atilẹyin fun awọn ẹya ti a ko darukọ, awọn ẹgbẹ, awọn ifibọ ede apejọ (“asm!” Makiro) ati ọna kika nọmba oju omi lilefoofo BFLOAT16 jẹ akiyesi.

Josh gbagbọ pe ọjọ iwaju ti siseto eto jẹ ti Rust, ati pe ede C ni awọn otitọ ode oni n sọ aaye pe ni awọn ọdun ti o kọja ti tẹdo nipasẹ Apejọ. Ipata
kii ṣe iranlọwọ nikan awọn olupilẹṣẹ lati awọn iṣoro ti o wa ninu ede C ti o dide nitori iṣẹ ipele kekere pẹlu iranti, ṣugbọn tun pese aye lati lo ninu idagbasoke awọn eto siseto ode oni.

Nigba awọn ijiroro awọn iṣe
Josh wa pẹlu imọran ti ṣafikun agbara lati ṣe idagbasoke awọn awakọ ni ekuro Linux ni ede Rust, eyiti yoo jẹ ki o ṣee ṣe lati ṣẹda ailewu ati awakọ ti o dara julọ pẹlu ipa diẹ, laisi awọn iṣoro bii iraye si iranti lẹhin ominira, asan. ijuboluwole dereferences ati saarin overruns.

Greg Kroah-Hartman, ẹniti o ni iduro fun mimu ẹka iduroṣinṣin ti ekuro Linux, ṣalaye imurasilẹ rẹ lati ṣafikun ilana fun idagbasoke awakọ ni ede Rust si ekuro ti o ba ni awọn anfani gidi lori C, fun apẹẹrẹ, yoo pese aabo. abuda lori ekuro API. Ni afikun, Greg ṣe akiyesi ilana yii nikan bi aṣayan, ko ṣiṣẹ nipasẹ aiyipada, nitorinaa ki o ma ṣe pẹlu Rust bi igbẹkẹle kikọ lori ekuro.

O wa jade pe ọpọlọpọ awọn ẹgbẹ ti n ṣiṣẹ tẹlẹ ni itọsọna yii. Fun apẹẹrẹ, awọn olupilẹṣẹ lati ile-iṣẹ “Ẹja ni Barrel kan” pese sile Ohun elo irinṣẹ fun kikọ awọn modulu fifuye fun ekuro Linux ni ede Rust, ni lilo ṣeto ti awọn fẹlẹfẹlẹ áljẹbrà lori awọn atọkun ati awọn ẹya kernel lati mu aabo pọ si. Awọn fẹlẹfẹlẹ jẹ ipilẹṣẹ laifọwọyi da lori awọn faili akọsori ekuro ti o wa tẹlẹ nipa lilo ohun elo naa dipọ. Clang ti lo lati kọ awọn fẹlẹfẹlẹ. Ni afikun si awọn interlayers, awọn modulu ti o pejọ lo package staticlib.

Ni afiwe ndagba Ise agbese miiran ti dojukọ awọn awakọ idagbasoke fun awọn eto ifibọ ati awọn ẹrọ IoT, eyiti o tun nlo bindgen lati ṣe ipilẹṣẹ awọn ipele ti o da lori awọn faili akọsori ekuro. Ilana naa ngbanilaaye lati ni ilọsiwaju aabo awakọ laisi ṣiṣe awọn ayipada si ekuro - dipo ṣiṣẹda awọn ipele ipinya afikun fun awọn awakọ ninu ekuro, o dabaa lati dènà awọn iṣoro ni ipele akopọ, ni lilo ede Rust ti o ni aabo diẹ sii. O ti ro pe iru ọna bẹ le wa ni ibeere nipasẹ awọn aṣelọpọ ohun elo ti n dagbasoke awakọ ohun-ini ni iyara laisi ṣiṣe iṣayẹwo to dara.

Kii ṣe gbogbo awọn iṣẹ ṣiṣe ti a pinnu sibẹsibẹ ti ni imuse, ṣugbọn ilana naa ti dara fun iṣẹ tẹlẹ ati pe a lo lati kọ awakọ ti n ṣiṣẹ fun LAN9512 USB Ethernet oludari ti a pese ni igbimọ Rasipibẹri Pi 3. Awakọ smsc95xx ti o wa tẹlẹ, ti a kọ nipasẹ ninu C ede. O ṣe akiyesi pe iwọn module ati oke lati awọn paati asiko-akoko nigbati o ba dagbasoke awakọ kan ni Rust ko ṣe pataki, eyiti o fun laaye ilana lati lo fun awọn ẹrọ pẹlu awọn orisun to lopin.

orisun: opennet.ru

Fi ọrọìwòye kun