Isakhelo sokubhala abaqhubi be-kernel ekhuselekileyo Linux 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 nguye owacebisa ukuba yongezwe embilinini Linux Ubuchule bokuphuhlisa abaqhubi ngolwimi lweRust buza kukuvumela ukuba wenze abaqhubi abakhuselekileyo nabasemgangathweni ophezulu ngomzamo omncinci, abangenazo iingxaki ezifana nokufikelela emva kokukhululeka, i-NULL pointer dereferences, kunye ne-buffer overruns.

UGreg Kroah-Hartman, umgcini wesebe le-kernel elizinzileyo Linux, ubonakalise umnqweno wokongeza isakhelo sophuhliso lweRust driver kwikernel ukuba inika iingenelo zokwenyani ngaphezu kweC, njengokubonelela ngee-wrappers ezikhuselekileyo ezijikeleze i-kernel API. Ngaphezu koko, uGreg ubona esi sakhelo njengokhetho kuphela, olungasebenzi ngokuzenzekelayo, ukuze kuthintelwe ukubandakanywa kweRust njengokuxhomekeka kwe-kernel build.

Kwavela ukuba amaqela amaninzi sele esebenza kweli cala. Ngokomzekelo, abaphuhlisi benkampani "Intlanzi kwi-Barrel" ilungisiwe izixhobo zokubhala iimodyuli ezilayishwayo zekernel Linux kulwimi lweRust, kusetyenziswa iseti yeeleya ezingabonakaliyo phezu kwe-kernel interfaces kunye nezakhiwo ukuphucula ukhuseleko. Iileya zenziwa ngokuzenzekelayo ngokusekelwe kwiifayile ze-kernel header ezikhoyo kusetyenziswa i-utility 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

Thenga ukusingathwa okuthembekileyo kwiindawo ezinokhuseleko lweDDoS, iiseva zeVPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekileyo ngokhuseleko lwe-DDoS, iiseva zeVPS VDS | ProHoster