Inguqulo yesishiyagalombili yeziqephu zokusekelwa komshayeli we-Rust ku-Linux iyafika

Miguel Ojeda, umbhali wephrojekthi ye-Rust-for-Linux wakhulula ukukhululwa kwesishiyagalombili yokuthuthukisa i-Linux kernel patches ngokusekelwa kolimi lwe-Rust ukuze abathuthukisi be-Linux kernel bacatshangelwe.

Lokhu kukleliswa njengokukhishwa kwesishiyagalolunye kweziqephu (kucatshangelwa inguqulo yokuqala ekhishwe ngaphandle kwenombolo yenguqulo). Ukwesekwa kokugqwala kubhekwa njengokuhlola, kodwa isivele ifakiwe egatsheni le-linux-elilandelayo, izimangalo zokuhlanganiswa ekukhululweni kokuwa kwe-5.20 / 6.0, futhi isithuthuke ngokwanele ukuze iqale ukusebenza ekudaleni izendlalelo ze-abstraction phezulu kwe-kernel subsystems, kanye nezilawuli zokubhala namamojula.

Ukuthuthukiswa kuxhaswe yi-Google kanye ne-ISRG (I-Internet Security Research Group), engumsunguli wephrojekthi ethi Masibethele futhi ekhuthaza i-HTTPS nokuthuthukiswa kobuchwepheshe bokukhulisa ukuphepha kwe-inthanethi.

Izinguquko ezihlongozwayo zenza kube nokwenzeka ukusebenzisa i-Rust njengolimi lwesibili lokuthuthukisa abashayeli namamojula we-kernel. Ukusekelwa kokugqwala kwethulwa njengenketho engenziwanga amandla ngokuzenzakalela futhi akubangeli ukuthi iRust ifakwe phakathi kokuncika okudingekile kokwakha kwe-kernel. Ukusebenzisa i-Rust ukuthuthukisa abashayeli kuzokuvumela ukuthi udale abashayeli abangcono nabaphephile ngomzamo omncane, ngaphandle kwezinkinga ezifana nokufinyelela indawo yenkumbulo ngemuva kokuyikhulula, izikhombisi-ndlela eziyinull, kanye nokuchichima kwe-buffer.

Ukuphepha kwenkumbulo kunikezwa ku-Rust ngesikhathi sokuhlanganisa ngokubheka izinkomba, ukulandelela ubunikazi bento, kanye nesikhathi sempilo yento (ububanzi), kanye nokuhlola ukulunga kokufinyelela inkumbulo ngesikhathi sokwenziwa kwekhodi.

Yini entsha kulokhu kukhishwa kwesishiyagalombili?

Kulesi siphakamiso esisha esikhishiwe, kubalulwe ukuthi okuhlukile komtapo we-alloc, okususe isizukulwane okungenzeka "sokwethuka" ngamaphutha, ibuyekezelwe ku-Rust version 1.62. Uma kuqhathaniswa nenguqulo yangaphambilini, i-Rust toolkit imise ukusekelwa komsebenzi we-const_fn_trait_bound osetshenziswa kumapetshi e-kernel.

Ngaphandle kwakho ikhodi yokubopha ihlukaniswa ibe yinqwaba yamabhokisi "okubopha". ngokwehlukana, okwenza kube lula ukwakha kabusha uma kuphela iphakethe le-kernel eliyinhloko lishintshiwe.

I- ukuqaliswa kwe-"concat_idents!" macro, Ibhalwe kabusha njenge-macro yenqubo, ayiboshelwe ekusebenzeni kwe-concat_idents futhi ivumela ukusetshenziswa kwezinkomba eziguquguqukayo zasendaweni.

Ngaphezu kwalokho, kukhulunywa ukuthi i-macro "i-static_assert!" ibhalwe kabusha ukuvumela "core::assert!()" isetshenziswa kunoma yimuphi umongo esikhundleni sama-constants, kuyilapho i-macro "construction_error!" iguqulelwe ukuze isebenze lapho isetha imodi ethi "RUST_BUILD_ASERT_{WARN, ALLOW}" yamamojula.

fs module yengeziwe ehlinzeka ngezixhumanisi zokusebenza nezinhlelo zamafayela. Isibonelo sesistimu yefayela elula ebhalwe ku-Rust iyahlongozwa, kanye nemojula yomugqa wemisebenzi engezwe ukuze isebenze nolayini bohlelo.

Kwezinye izinguquko ezigqamayo kulesi siphakamiso esisha:

  • Kwengezwe ifayela lokumisa elihlukile elithi "kernel/configs/rust.config".
  • Amafayela we-"*.i" acutshungulwe ngokushintshaniswa okuningi aqanjwe kabusha ukuze athi "*.rsi".
  • Kukhishwe usekelo lokwakha izingxenye ze-Rust ezinamaleveli okuthuthukisa ngaphandle kwalawo asetshenziselwa ikhodi engu-C.
  • Ukuthuthukiswa kwemojula ye-kasync kwaqhubeka nokuqaliswa kwezindlela zokuhlela ezingavumelani (i-async).
  • Kwengezwe isibonelo seseva ye-TCP yeleveli ye-kernel ebhalwe ku-Rust futhi yengeza amandla okuphatha iziphazamiso ku-Rust.
  • Kwengezwe inqubo enkulu yokwenza kube lula ukusebenza ngamathebula esikhombi sokusebenza, njengesakhiwo se-file_operations.
  • Kwengezwe ukusetshenziswa kohlu olunezinhlangothi ezimbili "unsafe_list::List".
  • Kwengezwe usekelo lokuqala lwe-RCU kanye nohlobo Lonogada ukuze kubhekwe ukuthi isikhiya sokufunda siboshelwe ochungechungeni lwamanje.
  • Umsebenzi owengeziwe Umsebenzi::spawn() ukuze uveze ngokuzenzakalelayo futhi uqale imicu ye-kernel.
  • Indlela Yomsebenzi::wake_up() nayo yengeziwe.
  • Kwengezwe imojuli yokulibaziseka

Okokugcina uma unesifiso sokwazi okwengeziwe ngakho, ungabheka imininingwane Kulesi sixhumanisi esilandelayo.


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Unomthwalo wemfanelo ngedatha: AB Internet Networks 2008 SL
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.