Isakhelo sokubhala abaqhubi abakhuselekileyo beLinux kernel kwiRust

UJosh Triplett, osebenza e-Intel kwaye ukukomiti eyongamela uphuhliso lwe-Crates.io, ethetha kwiNgqungquthela yeTekhnoloji ye-Open Source. wazisiwe Iqela elisebenzayo elijolise ekuziseni ulwimi lweRust ukuba lulingane nolwimi lwe-C kummandla wenkqubo yeenkqubo.

Kwiqela elisebenzayo elikwinkqubo yokudalwa, abaphuhlisi be-Rust, kunye neenjineli ezivela kwi-Intel, baya kulungiselela iinkcukacha ezichaza umsebenzi omele uphunyezwe kwi-Rust ukwenzela inkqubo yeenkqubo. Udweliso lwenkqubo luhlala lufuna ubuqhetseba obukwinqanaba elisezantsi, njengokwenza imiyalelo yeprosesa enelungelo kunye nokufumana ulwazi oluneenkcukacha malunga nobume beprosesa. Kwiimpawu ezifanayo esele ziphuhlisiwe ukwenzela iRust, inkxaso yezakhiwo ezingachazwanga ngamagama, iimanyano, ukufakwa kolwimi lweendibano (i-“asm!” macro) kunye ne-BFLOAT16 ifomathi yenombolo edadayo iyaphawulwa.

UJosh ukholelwa ukuba ikamva lenkqubo yenkqubo yekaRust, kwaye ulwimi lweC kwiinyani zanamhlanje lubanga indawo kwiminyaka edlulileyo eyayihlala yiNdibano. Umhlwa
ayikhuphi nje kuphela abaphuhlisi kwiingxaki ezikhoyo kulwimi lwe-C oluvela ngenxa yezinga eliphantsi lomsebenzi ngememori, kodwa libonelela nethuba lokuyisebenzisa ekuphuhliseni i-paradigms yeprogram yanamhlanje.

Ngexesha iingxoxo imisebenzi
UJosh weza nombono wokongeza amandla okuphuhlisa abaqhubi kwi-Linux kernel ngolwimi lweRust, oluya kwenza kube lula ukwenza abaqhubi abakhuselekileyo nabangcono ngomzamo omncinci, simahla kwiingxaki ezinjengokufikelela kwimemori emva kokukhulula, null. isalathiso sokungangqinelani kunye nokugqithiswa kwesithinteli.

UGreg Kroah-Hartman, onoxanduva lokugcina isebe elizinzileyo leLinux kernel, uvakalise ukulungela kwakhe ukongeza isakhelo sokuphuhlisa abaqhubi kulwimi lweRust kwi kernel ukuba inenzuzo yokwenyani ngaphezulu kwe C, umzekelo, iya kubonelela ngokukhuselekileyo. izibophelelo kwi-Kernel API. Ukongeza, uGreg uthatha esi sikhokelo kuphela njengokhetho, olungasebenzi ngokungagqibekanga, ukuze ungaquki iRust njengokuxhomekeka kokwakha kwikernel.

Kwavela ukuba amaqela amaninzi sele esebenza kweli cala. Ngokomzekelo, abaphuhlisi benkampani "Intlanzi kwi-Barrel" ilungisiwe isixhobo sokubhala iimodyuli ezilayishwayo ze Linux kernel kulwimi lomhlwa, usebenzisa iseti yomaleko abstract ngaphaya kojongano kunye nezakhiwo zekernel ukwandisa ukhuseleko. Iileya zenziwa ngokuzenzekelayo ngokusekwe kwiifayile zentloko ekhoyo yekernel kusetyenziswa into eluncedo bindgen. I-Clang isetyenziselwa ukwakha iileya. Ukongeza kwi-interlayers, iimodyuli ezidibeneyo zisebenzisa iphakheji ye-staticlib.

Iyafana iphuhlisa Enye iprojekthi egxininise ekuphuhliseni abaqhubi beenkqubo ezifakelweyo kunye nezixhobo ze-IoT, ezikwasebenzisa i-bindgen ukuvelisa iileyile ezisekelwe kwiifayile ze-kernel header. Isakhelo sikuvumela ukuba uphucule ukhuseleko lomqhubi ngaphandle kokwenza utshintsho kwi-kernel - endaweni yokudala amanqanaba awongezelelweyo okuzihlukanisa kubaqhubi kwi-kernel, kucetywayo ukuthintela iingxaki kwinqanaba lokudibanisa, usebenzisa ulwimi olukhuselekileyo lweRust. Kucingelwa ukuba indlela enjalo inokufunwa ngabavelisi bezixhobo abaphuhlisa abaqhubi abanini ngokungxama ngaphandle kokwenza uphicotho olufanelekileyo.

Ayiyiyo yonke imisebenzi ecetywayo esele iphunyeziwe, kodwa isakhelo sele silungele umsebenzi kwaye sasetyenziselwa ukubhala umqhubi osebenzayo weLAN9512 USB Ethernet isilawuli esinikezelwe kwibhodi yeRaspberry Pi 3 Umqhubi we-smsc95xx okhoyo, obhalwe ngu C ulwimi. Kuqatshelwe ukuba ubungakanani bemodyuli kunye ne-overhead ukusuka kumacandelo exesha lokubaleka xa uphuhlisa umqhubi kwi-Rust ayibalulekanga, evumela ukuba isakhelo sisetyenziselwe izixhobo ezinobuncwane obuncinci.

umthombo: opennet.ru

Yongeza izimvo