Ndondomeko yolembera madalaivala otetezeka a Linux kernel ku Rust

Josh Triplett, yemwe amagwira ntchito ku Intel ndipo ali mu komiti yomwe ikuyang'anira chitukuko cha Crates.io, akuyankhula pa Open Source Technology Summit. anayambitsa gulu logwira ntchito lomwe likufuna kubweretsa chinenero cha Dzimbiri kuti chigwirizane ndi chinenero cha C m'munda wa mapulogalamu a machitidwe.

Pagulu logwira ntchito lomwe likukonzekera kupangidwa, opanga Rust, pamodzi ndi mainjiniya ochokera ku Intel, akonzekera zofotokozera zomwe zikuyenera kukhazikitsidwa mu Rust pamapulogalamu apakompyuta. Kukonzekera kwamakina nthawi zambiri kumafunikira kuwongolera kwapang'ono, monga kupereka malangizo a purosesa mwamwayi ndikupeza zambiri za momwe purosesa ilili. Pazinthu zofananira zomwe zapangidwa kale ku Dzimbiri, kuthandizira kwanyumba zomwe sizinatchulidwe mayina, migwirizano, zoyika pamisonkhano ("asm!" macro) ndi mawonekedwe a nambala yoyandama ya BFLOAT16 amadziwika.

Josh amakhulupirira kuti tsogolo la mapulogalamu a dongosolo ndi la Rust, ndipo chinenero cha C muzochitika zamakono chikunena malo omwe m'zaka zapitazi adagwidwa ndi Assembly. Dzimbiri
sikuti amangotsitsimutsa otukula ku mavuto omwe ali m'chinenero cha C omwe amadza chifukwa cha ntchito yotsika ndi kukumbukira, komanso amapereka mwayi wogwiritsa ntchito pakupanga ma paradigms amakono.

Pa zokambirana zisudzo
Josh adabwera ndi lingaliro lowonjezera kuthekera kopanga madalaivala mu kernel ya Linux m'chinenero cha Rust, zomwe zingapangitse kuti pakhale madalaivala otetezeka komanso abwinoko molimbika pang'ono, opanda mavuto monga kukumbukira kukumbukira pambuyo pomasulidwa, null. kuchotsedwa kwa pointer ndi kupitilira kwa buffer.

Greg Kroah-Hartman, yemwe ali ndi udindo woyang'anira nthambi yokhazikika ya Linux kernel, adanena kuti ali wokonzeka kuwonjezera ndondomeko yopangira madalaivala mu chinenero cha Rust ku kernel ngati ili ndi ubwino weniweni kuposa C, mwachitsanzo, idzapereka chitetezo. Kumanga pa Kernel API. Kuphatikiza apo, Greg amawona chimangochi ngati njira yokhayo, osati yogwira mwachisawawa, kuti asaphatikizepo Dzimbiri ngati kudalira komanga pa kernel.

Zinapezeka kuti magulu angapo akugwira ntchito kale mbali iyi. Mwachitsanzo, opanga ku kampani "Fish mu mbiya" kukonzekera chida cholembera ma module omwe amatha kunyamula a Linux kernel m'chinenero cha Rust, pogwiritsa ntchito zigawo zosawerengeka pamwamba pa ma interfaces ndi mapangidwe a kernel kuti awonjezere chitetezo. Zigawo zimangopangidwa zokha kutengera mafayilo amutu wa kernel omwe alipo pogwiritsa ntchito zida bindgen. Clang amagwiritsidwa ntchito kupanga zigawo. Kuphatikiza pa ma interlayers, ma module omwe amasonkhanitsidwa amagwiritsa ntchito phukusi la staticlib.

Ofanana ikukula Pulojekiti ina imayang'ana pakupanga madalaivala a makina ophatikizidwa ndi zida za IoT, zomwe zimagwiritsanso ntchito bindgen kupanga zigawo kutengera mafayilo amutu wa kernel. Ndondomekoyi imakupatsani mwayi wowongolera chitetezo cha oyendetsa popanda kusintha kernel - m'malo mopanga milingo yowonjezera yodzipatula kwa madalaivala mu kernel, ikufuna kuletsa zovuta pakuphatikiza, pogwiritsa ntchito chilankhulo chotetezeka cha Dzimbiri. Zimaganiziridwa kuti njira yotereyi ingakhale yofunidwa ndi opanga zida kupanga madalaivala eni ake mwachangu popanda kuwunika moyenera.

Sizinthu zonse zomwe zidakonzedweratu, koma chimangocho ndi choyenera kale kugwirira ntchito ndipo chinagwiritsidwa ntchito polemba dalaivala wogwira ntchito kwa LAN9512 USB Ethernet controller yoperekedwa mu bolodi la Raspberry Pi 3. Dalaivala wa smsc95xx, wolembedwa ndi C chinenero. Zimadziwika kuti kukula kwa gawo ndi pamwamba kuchokera ku zigawo za nthawi yothamanga pamene akupanga dalaivala ku Rust ndizochepa, zomwe zimathandiza kuti chimango chigwiritsidwe ntchito pazida zomwe zili ndi zochepa.

Source: opennet.ru

Kuwonjezera ndemanga