Yechishanu vhezheni yezvigamba zveRust mutyairi rutsigiro paLinux yakabudiswa

Zvinoita sekudaro kuvandudzwa kwechigamba yeRust mutyairi rutsigiro paLinux yatora nhanho yakanaka Zvakanaka, yakanga ichangopfuura mwedzi wapfuura kuti chikumbiro chakabviswa chakabudiswa, sezvo kubva mushanduro yechitatu chirevo chitsva chave chichiendeswa mwedzi wega wega uye ikozvino chirevo chitsva chakabudiswa, ichi chiri chinyorwa chechitanhatu.

Miguel Ojeda akakurudzira kuburitswa kutsva yeRust mudziyo mutyairi wekuvandudza zvikamu zveLinux kernel vanogadzira kufunga. Ichi chinyorwa chechitanhatu zvichiri kutorwa sekuedza asi yakatoverengerwa mulinux-inotevera bazi uye yakakura zvakakwana kuti itange kushanda pakugadzira abstraction layers pamusoro pe kernel subsystems, pamwe nekunyora madhiraivha nemamodule.

Kune avo vasati vaziva nezvebudiriro iyi, vanofanira kuzviziva inotsigirwa neGoogle neISRG (Internet Security Research Group), inova muvambi weLet Encrypt project uye inosimudzira HTTPS nekuvandudzwa kwetekinoroji yekuwedzera kuchengetedzeka kweInternet.

Inofanira kuyeukwa kuti shanduko dzakarongwa dzinoita kuti zvikwanise kushandisa Rust semutauro wechipiri kugadzira vatyairi uye kernel modules. Rutsigiro rutsigiro runounzwa sechisarudzo chisingagoneswe nekukasira uye hachikonzereri kuti Rust ibatanidzwe pakati pezvinodiwa zvekuvaka kernel.

Kushandisa Rust kugadzira madhiraivha kuchakubvumidza kuti ugadzire madhiraivha ari nani uye akachengeteka nekuedza kushoma, pasina matambudziko sekuwana nzvimbo yendangariro mushure mekuisunungura, dereference null pointers, uye buffer mafashama.

Kuchengetedzwa kwendangariro kunopihwa muRust ePanguva yekubatanidza nekutarisa mareferensi, kuteedzera muridzi wechinhu, uye chinhu hupenyu hwese (chiyero), pamwe nekuongorora iko kurongeka kwekuwana ndangariro panguva yekuitwa kwekodhi. Rust inopawo kuchengetedzwa kwehuwandu hwekufashukira, inoda zvinosiyana kuti zvitangwe isati yashandiswa, inobata zvirinani zvikanganiso muraibhurari yakajairwa, inosimbisa pfungwa yezvisingachinjiki uye mareferensi nekusarudzika, uye inopa yakasimba static typing kuderedza zvikanganiso zvine musoro. .

Mune iyo nyowani vhezheni yezvigamba, mazwi akaitwa panguva yekukurukurirana kweyekutanga akaenderera mberi nekudzimwa, segunda, chetatu, kota y quinta editions dzezvigamba (zvandinokusiira zvinongedzo zvinowirirana).

Main novelties muchikumbiro chechitanhatu

Nekuuya kwechikumbiro chitsva ichi toolkit yakagadziridzwa isati yasunungurwa yeRust 1.59.0, pamwe chete nayo mutsauko wealloc library inopindiranawo neiyo nyowani vhezheni yeRust, ichibvisa mukana we "kutya" mamiriro kana kukanganisa kukaitika, sekubuda mundangariro.

Imwe shanduko yakaitwa ndeyekuti ikozvino, pachinzvimbo chekupa mafaera epuratifomu pre-created destination iwo anogadzirwa zvine simba zvichibva pane kernel kumisikidzwa.

Izvo zvakare zvinocherechedzwa kuti HAVE_RUST kernel parameter yakawedzerwa kuti igone kugonesa Rust inoenderana zvivakwa uye izvo zvinobatika zvakatsanangurwa kuti zvishandiswe muRust kodhi yehardware pseudo-random nhamba jenareta.

Kune rimwe divi, zvinotaurwa izvo kugona kushandisa assembler insert yakagadzikana ("feature(global_asm)") uye yakawedzera rutsigiro rwekugadzira zvirongwa zvekugamuchira muRust izvo zvinoshandiswa mukernel kuvaka maitiro.

Yeimwe shanduko izvo zvinomira pachena kubva pachikumbiro chitsva ichi:

  • Kushandiswa kwemakodhi ezvikanganiso pasina "Error::" prefix (semuenzaniso, "return Err(EINVAL)") kwakatenderwa kufungidzira mabatirwo emakodhi ezvikanganiso muC.
  • Yakawedzera "CString" mhando yemhando dzeC tambo. Yakasanganiswa fomati uye buffer marudzi.
  • Yakawedzera Bool uye LockInfo maitiro.
  • Kuitwa kwakapfava kwe spin-locks.

Finalmente kana iwe uchifarira kuziva zvakawanda nezvazvo nezvechikumbiro chitsva ichi, unogona kubvunza ruzivo Mune inotevera chinongedzo.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira data: AB Internet Networks 2008 SL
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako