Malingaliro okambilana nkhani yowonjezera zida zachitukuko za dzimbiri ku Linux kernel

Nick Desagnier (Nick Desaulniers), yemwe amagwira ntchito ku Google kuti apereke thandizo kumanga Linux kernel pogwiritsa ntchito Clang compiler komanso kuthandiza konza zolakwika mu Rust compiler, analimbikitsa gwirani pa msonkhano Msonkhano wa Linux Plumbers 2020 zokambirana kuti zitheke kupanga zida za kernel ku Rust. Nick akukonzekera msonkhano wawung'ono woperekedwa ku LLVM, ndipo akukhulupirira kuti zingakhale bwino kukambirana zaukadaulo wa kuphatikizika kwa Rust thandizo mu kernel (wakonzekera kale chiwonetsero chogwira ntchito cha KBuild) ndikumvetsetsa ngati chithandizocho chiyenera. iwonjezedwa konse ndi zoletsa zotani pakugwiritsa ntchito Dzimbiri ziyenera kuvomerezedwa.

Tikumbukire kuti pazokambirana zaposachedwa pa Open Source Summit ndi Embedded Linux conference, Linus Torvalds. sanazilamulire kuwonekera kwa zomangira zopangira ma kernel subsystems (mwachitsanzo, oyendetsa) m'zilankhulo monga Rust. Kuthekera kopanga madalaivala ku Rust kungatilole kuti tipange madalaivala otetezeka komanso abwinoko molimbika pang'ono, opanda mavuto monga kukumbukira kukumbukira mutatha kumasula, ma null pointer dereferences, ndi buffer overruns. Pali kale mapulojekiti angapo a chipani chachitatu kuti akwaniritse izi:

  • Madivelopa 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.
  • Ofufuza ochokera ku China University of Hong Kong kulitsa pulojekiti yopanga madalaivala a makina ophatikizidwa ndi zida za Internet of Things ku Rust, 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.
  • Opanga maziko C2Rust kuulutsa C code ku Rust, gwiritsa ntchito kuyesa pakusintha ma module a kernel ndi zosintha zochepa zamanja. Chimodzi mwazovuta zomwe zadziwika ndikugwiritsa ntchito mbali zambiri za kernel ya code yomwe imagwiritsa ntchito zowonjezera za GCC zomwe sizinathandizidwebe ku C2Rust. Kuti athetse vutoli, C2Rust ikukonzekera kuwonjezera kuthandizira kwa GCC zokhala pakati, kuzizira, zofananira, zogwiritsidwa ntchito ndi gawo, komanso kukulitsa luso la ophatikiza ophatikizira ndikuthana ndi mavuto ndi zomanga zomwe zimagwirizana komanso zodzaza (mwachitsanzo, xregs_state) . Mavuto akuluakulu omwe amafunikira ntchito yamanja akuphatikizapo kulephera kumasulira ma C macros osakhala ang'onoang'ono ku Rust macros komanso kufunikira kofotokozeranso mitundu, popeza C2Rust imamasulira mitundu ya C kukhala matanthauzo mu phukusi la libc, koma phukusili silingagwiritsidwe ntchito mu ma module a kernel.

Source: opennet.ru

Kuwonjezera ndemanga