Uhlelo lwesibini lweepetshi zeLinux kernel ngenkxaso yolwimi lweRust

UMiguel Ojeda, umbhali weprojekthi yeRust-for-Linux, wenze isiphakamiso senguqulelo ehlaziyiweyo yezixhobo zokuphuhlisa abaqhubi besixhobo ngolwimi lweRust ukuze ziqwalaselwe ngabaphuhlisi be-Linux kernel. Inkxaso yomhlwa ithathwa njengovavanyo, kodwa sele kuvunyelwene ngayo ukuba ifakwe kwi-linux-isebe elilandelayo. Inguqulelo entsha isusa izimvo ezenziwe ngexesha lengxoxo yenguqulelo yokuqala yeepatches. U-Linus Torvalds sele ejoyine ingxoxo kwaye wenze isindululo sokutshintsha ingqiqo ukuze kusetyenzwe kancinci.

Khumbula ukuba utshintsho olucetywayo lwenza kube lula ukusebenzisa iRust njengolwimi lwesibini ekuphuhliseni abaqhubi kunye neemodyuli zekernel. Inkxaso yomhlwa inikezelwa njengokhetho olungenziwanga ngokungagqibekanga kwaye alubangeli ukuba iRust ibandakanywe njengokuxhomekeka kolwakhiwo olufunekayo kwikernel. Ukusebenzisa iRust kuphuhliso lomqhubi kuya kukuvumela ukuba wenze abaqhubi abakhuselekileyo nabangcono ngomzamo omncinci, simahla kwiingxaki ezinjengofikelelo lwememori emva kokukhulula, ukuchaswa kwesalathiso esingenanto, kunye nokugqithiswa kwe-buffer.

Ukuphathwa okukhuselekileyo kwimemori kubonelelwa kwiRust ngexesha lokuqokelela ngokujonga ireferensi, ukugcina umkhondo wobunini bento kunye nobomi bento (ububanzi), kunye nokuvavanya ukuchaneka kofikelelo lwememori ngexesha lokwenziwa kwekhowudi. Umhlwa ukwabonelela ngokhuseleko ngokuchasene nokuphuphuma kwenani elipheleleyo, kufuna ukuqaliswa okunyanzelekileyo kwamaxabiso aguquguqukayo ngaphambi kokusetyenziswa, iphatha iimpazamo ngcono kwithala leencwadi elisemgangathweni, isebenzisa ingqikelelo yeembekiselo ezingenakuguquguquka kunye nezinto eziguquguqukayo ngokungagqibekanga, ibonelela ngochwethezo olomeleleyo ukuze kuncitshiswe iimpazamo ezinengqiqo.

Olona tshintsho lubonakalayo kuguqulelo olutsha lweepatches:

  • Ikhowudi yolwabiwo lwenkumbulo ikhululwe ekubeni ivelise imeko "yoloyiko" xa iimpazamo ezinje ngokuphuma kwimemori zisenzeka. Ukwahluka kwelayibrari ye-Rust alloc ifakiwe, ephinda isebenze ikhowudi yokusingatha ukungaphumeleli, kodwa eyona njongo kukudlulisa zonke iimpawu ezifunekayo kwi-kernel kuhlelo oluphambili lwe-alloc (utshintsho sele lulungisiwe kwaye ludluliselwe kumgangatho oqhelekileyo. Umhlwa kwithala leencwadi).
  • Endaweni yokwakhiwa kwasebusuku, ngoku ungasebenzisa ukukhutshwa kwe-beta kunye nokukhutshwa okuzinzileyo komqokeleli we-rustc ukuqokelela i-kernel ngenkxaso ye-Rust. Okwangoku, i-rustc 1.54-beta1 isetyenziswa njenge-reference compiler, kodwa emva kokukhululwa kwe-1.54 ekupheleni kwenyanga, iya kuxhaswa njengomqokeleli wereferensi.
  • Inkxaso eyongeziweyo kwiimvavanyo zokubhala kusetyenziswa umgangatho "#[uvavanyo]" uphawu lweRust kunye nokukwazi ukusebenzisa i-doctests ukubhala iimvavanyo.
  • Inkxaso eyongeziweyo ye-ARM32 kunye ne-RISCV ye-architecture ukongeza kwi-x86_64 exhaswe ngaphambili kunye ne-ARM64.
  • Ukuphunyezwa okuphuculweyo kwe-GCC Rust (i-GCC frontend ye-Rust) kunye ne-rustc_codegen_gcc (i-rustc backend ye-GCC), ngoku iphumelele zonke iimvavanyo ezisisiseko.
  • Inqanaba elitsha lokutsalwa licetywa ukuba lisetyenziswe kwiinkqubo ze-Rust ze-kernel mechanisms ezibhalwe ku-C, njengemithi ebomvu-emnyama, izinto ezibaliweyo, ukudala inkcazo yefayile, imisebenzi, iifayile, kunye ne-I / O vectors.
  • Amacandelo ophuhliso lomqhubi aphucule inkxaso yemodyuli yemisebenzi yefayile, imodyuli enkulu!
  • I-Binder ngoku ixhasa ukudlula izichazi zefayile kunye neekhonkco ze-LSM.
  • Umzekelo osebenzayo ngakumbi womqhubi we-Rust uyacetywa - bcm2835-rng ye-hardware random number generator yeebhodi zeRaspberry Pi.

Ukongeza, ezinye iiprojekthi zeenkampani ezinxulumene nokusetyenziswa kweRust kwi-kernel zikhankanyiwe:

  • I-Microsoft ibonise umdla ekuthatheni inxaxheba kumsebenzi wokudibanisa inkxaso ye-Rust kwi-Linux kernel kwaye ilungele ukubonelela ngokuphunyezwa komqhubi we-Hyper-V kwi-Rust kwiinyanga ezizayo.
  • I-ARM isebenzela ukuphucula inkxaso ye-Rust kwiinkqubo ezisekwe kwi-ARM. Iprojekthi ye-Rust sele indulule utshintsho oluya kwenza iinkqubo ze-ARM ze-64-bit zibe yi-Tier 1 iqonga.
  • UGoogle ubonelela ngokuthe ngqo ngenkxaso yeprojekthi ye-Rust ye-Linux, uphuhlisa umiliselo olutsha lwe-Binder interprocess yonxibelelwano lwendlela e-Rust, kwaye ucinga ukuba kunokwenzeka ukuphinda kusetyenzwe abaqhubi abahlukeneyo kwi-Rust. Nge-ISRG (iQela loPhando loKhuseleko lwe-Intanethi), uGoogle unike inkxaso-mali yomsebenzi ukuze adibanise inkxaso yeRust kwi-Linux kernel.
  • I-IBM iphumeze inkxaso ye-kernel ye-Rust kwiinkqubo ze-PowerPC.
  • I-LSE (iLabhoratri yoPhando lweeNkqubo) iphuhlise umqhubi weSPI eRust.

umthombo: opennet.ru

Yongeza izimvo