Uhlelo lwesibili lwama-patches ekernel ye-Linux ngokusekelwa kolimi lwe-Rust

U-Miguel Ojeda, umbhali wephrojekthi ye-Rust-for-Linux, uhlongoze inguqulo ebuyekeziwe yezingxenye zokuthuthukisa izishayeli zedivayisi ngolimi lwe-Rust ukuze zicatshangelwe abathuthukisi be-Linux kernel. Ukwesekwa kokugqwala kubhekwa njengokuhlola, kodwa sekuvunyelwene ngakho ukuze kufakwe egatsheni elilandelayo le-linux. Inguqulo entsha isusa ukuphawula okwenziwe phakathi nengxoxo yenguqulo yokuqala yama-patches. U-Linus Torvalds usevele ujoyine ingxoxo futhi uhlongoze ukushintsha ingqondo ukuze kucutshungulwe imisebenzi ethile emincane.

Khumbula ukuthi izinguquko ezihlongozwayo zenza kube nokwenzeka ukusebenzisa i-Rust njengolimi lwesibili ekuthuthukiseni abashayeli namamojula we-kernel. Ukusekelwa kokugqwala kwethulwa njengenketho engenziwanga amandla ngokuzenzakalela futhi akubangeli ukuthi i-Rust ifakwe njengokuncika okudingekile ekwakheni kwe-kernel. Ukusebenzisa i-Rust ekuthuthukiseni abashayeli kuzokuvumela ukuthi udale abashayeli abaphephile nabangcono ngomzamo omncane, ongenazo izinkinga ezifana nokufinyelela inkumbulo ngemva kokukhulula, izinkomba ezingenalutho, kanye nokweqa kwe-buffer.

Ukuphepha kwenkumbulo kunikezwa ku-Rust ngesikhathi sokuhlanganiswa ngokuhlolwa kwereferensi, ukulandelela ubunikazi bento kanye nesikhathi sokuphila kwento (ububanzi), kanye nokuhlola ukulunga kokufinyelela inkumbulo ngesikhathi sokukhishwa kwekhodi. I-Rust iphinde inikeze ukuvikeleka ekuchichimeni okuphelele, idinga ukuqaliswa okuyisibopho kwamanani ahlukile ngaphambi kokusetshenziswa, iphatha amaphutha kangcono kulabhulali evamile, isebenzisa umqondo wezithenjwa ezingaguquleki nokuguquguqukayo ngokuzenzakalelayo, inikeza ukuthayipha okuqinile okuqinile ukuze kuncishiswe amaphutha anengqondo.

Izinguquko eziphawuleka kakhulu enguqulweni entsha yamapeshi:

  • Ikhodi yokwabiwa kwememori ikhululiwe ekukhiqizeni isimo "sokwethuka" lapho kwenzeka amaphutha afana nokuphuma kwememori. Kufakwe okuhlukile komtapo wezincwadi we-Rust alloc, olungisa kabusha ikhodi ukuze isingathe ukwehluleka, kodwa umgomo omkhulu uwukudlulisa zonke izici ezidingekayo ze-kernel kuhlelo oluyinhloko lwe-alloc (izinguquko sezilungisiwe kakade futhi zadluliselwa ezingeni elijwayelekile. Umtapo wezincwadi wokugqwala).
  • Esikhundleni sokwakhiwa kwasebusuku, manje ungasebenzisa ukukhishwa kwe-beta nokukhishwa okuzinzile kwe-rustc compiler ukuze uhlanganise i-kernel ngokusekelwa kwe-Rust. Njengamanje, i-rustc 1.54-beta1 isetshenziswa njenge-reference compiler, kodwa ngemva kokukhishwa kwe-1.54 ekupheleni kwenyanga, izosekelwa njengomhlanganisi wereferensi.
  • Kwengezwe usekelo lokubhala ukuhlola kusetshenziswa isibaluli esijwayelekile esithi “#[test]” seRust kanye nekhono lokusebenzisa ama-doctest ukuze kubhalwe ukuhlolwa.
  • Usekelo olungeziwe lwezakhiwo ze-ARM32 ne-RISCV ngaphezu kokusekelwa kwangaphambilini kwe-x86_64 ne-ARM64.
  • Ukuqaliswa okuthuthukisiwe kwe-GCC Rust (i-GCC frontend for Rust) kanye ne-rustc_codegen_gcc (i-rustc backend ye-GCC), manje edlula zonke izivivinyo eziyisisekelo.
  • Ileveli entsha yokukhipha ihlongozwa ukuze isetshenziswe ezinhlelweni ze-Rust ze-kernel ezibhalwe ngo-C, njengezihlahla ezimnyama-ezimnyama, izinto ezibalwe njengereferensi, ukudalwa kwesichazamazwi sefayela, imisebenzi, amafayela, namavekhtha we-I/O.
  • Izingxenye zokuthuthukisa abashayeli zithuthukise ukwesekwa kwemojuli ye-file_operations, imojula!okukhulu, ukubhaliswa okukhulu, kanye nezishayeli ezingajwayelekile (phenya uphinde ukhiphe).
  • I-Binder manje isekela izichazi zefayela ezidlulayo namahhuku e-LSM.
  • Isibonelo esisebenza kakhulu somshayeli we-Rust siyahlongozwa - bcm2835-rng yehadiwe i-random generator inombolo yamabhodi we-Raspberry Pi.

Ukwengeza, amaphrojekthi athile ezinkampani ahlobene nokusetshenziswa kweRust ku-kernel kuthiwa:

  • IMicrosoft izwakalise intshisekelo yokubamba iqhaza emsebenzini wokuhlanganisa ukwesekwa kweRust ku-Linux kernel futhi isilungele ukuhlinzeka ngokusetshenziswa komshayeli kwe-Hyper-V on Rust ezinyangeni ezizayo.
  • I-ARM isebenzela ukuthuthukisa ukwesekwa kwe-Rust kumasistimu asekelwe ku-ARM. Iphrojekthi ye-Rust isivele ihlongoze izinguquko ezizokwenza amasistimu we-ARM angu-64-bit abe inkundla ye-Tier 1.
  • I-Google ihlinzeka ngokuqondile ngokusekela iphrojekthi ye-Rust for Linux, ithuthukisa ukuqaliswa okusha kwendlela yokuxhumana ye-Binder interprocess e-Rust, futhi icabanga ukuthi kungenzeka kusebenze kabusha abashayeli abahlukahlukene ku-Rust. Nge-ISRG (Iqembu Lokucwaninga Ngezokuphepha Kwe-inthanethi), i-Google inikeze uxhaso lomsebenzi ukuze kuhlanganiswe ukwesekwa kwe-Rust ku-Linux kernel.
  • I-IBM isebenzise ukusekelwa kwe-kernel ye-Rust yezinhlelo ze-PowerPC.
  • Ilabhorethri ye-LSE (Systems Research Laboratory) ithuthukise umshayeli we-SPI eRust.

Source: opennet.ru

Engeza amazwana