WD iri kugadzira mutyairi weNVMe muRust. Kuedza neRust paFreeBSD

Pamusangano urikuenderera mberi weLinux Plumbers 2022 mazuva ano, mainjiniya anobva kuWestern Digital akaita mharidzo yekuvandudzwa kwemutyairi wekuyedza weNVM-Express (NVMe) SSDs akanyorwa muRust uye achimhanya paLinux kernel level. Kunyangwe chokwadi chekuti purojekiti ichiri padanho rekutanga rebudiriro, kuyedzwa kwakaitwa kwakaratidza kuti kuita kweRust NVMe mutyairi kunoenderana nemutyairi weNVMe akanyorwa muC mukernel.

WD iri kugadzira mutyairi weNVMe muRust. Kuedza neRust paFreeBSD
WD iri kugadzira mutyairi weNVMe muRust. Kuedza neRust paFreeBSD

Chirevo chinoti mutyairi weNVMe ari muC anogutsa zvachose kune vanogadzira, asi iyo NVMe subsystem ipuratifomu yakanaka yekuongorora kugona kwekugadzira vatyairi muRust, sezvo iri nyore, inoshandiswa zvakanyanya, ine hunyanzvi hwekuita, uye ine. yekuenzanisa uye inotsigira akasiyana mainterface (dev, pci, dma, blk-mq, gendisk, sysfs).

Zvinocherechedzwa kuti Rust PCI NVMe mutyairi anotopa mashandiro anodiwa pakushanda, asi haisati yagadzirira kushandiswa kwakapararira, sezvo ichida kuvandudzwa kwakasiyana. Zvirongwa zveramangwana zvinosanganisira kubvisa zvivharo zviripo zvisina kuchengetedzeka, tsigiro yekubvisa mudziyo uye kuburutsa mutyairi, kutsigira sysfs interface, kuita usimbe kutanga, kugadzira mutyairi weblk-mq, uye kuedza neasynchronous programming model ye queue_rq.

Pamusoro pezvo, isu tinogona kucherechedza kuyedza kwakaitwa neNCC Boka kugadzira vatyairi muRust mutauro weFreeBSD kernel. Semuenzaniso, mutyairi ari nyore echo anodzosera data rakanyorwa kune /dev/rustmodule faira inoongororwa zvakadzama. Muchikamu chinotevera chekuyedza, iyo NCC Boka iri kufunga nezve reworking core components muRust kuvandudza kuchengetedzwa kwetiweki uye mafaera mashandiro.

Izvo zviri kutaurwa, kunyangwe zvakaratidzwa kuti zvinokwanisika kugadzira mamodule akareruka muRust, kusanganisa kwakasimba kweRust muFreeBSD kernel kunoda rimwe basa. Semuenzaniso, inotaura nezve kudikanwa kwekugadzira seti yeabstraction layers pamusoro pe subsystems uye kernel zvimiro, zvakafanana neakawedzera-akagadzirirwa neRust yeLinux chirongwa. Mune ramangwana, zvakarongwa kuita zviedzo zvakafanana neiyo Illumos musimboti uye kusimbisa zvakajairika zvinobatika muRust zvinogona kushandiswa muRust-yakanyorwa madhiraivha eLinux, BSD uye Illumos.

Sekureva kweMicrosoft neGoogle, ingangoita 70% yekusagadzikana mune zvigadzirwa zvesoftware yavo inokonzerwa nekusachengeteka ndangariro. Zvinofungidzirwa kuti kushandiswa kwemutauro weRust kunoderedza njodzi yekusagadzikana kunokonzerwa nekusachengeteka kwekubata ndangariro, uye kubvisa kuitika kwekukanganisa kwakadai sekuwana nzvimbo yekurangarira mushure mekunge yasunungurwa uye buffer overruns.

Memory-yakachengeteka kubata inopihwa muRust panguva yekuunganidza kuburikidza nekutarisa referensi, kuchengeta track yemuridzi wechinhu uye chinhu hupenyu hwese (chiyero), pamwe nekuongororwa kwekururama kwekuyeuka kwekuwana panguva yekodhi kodhi. Ngura inopawo dziviriro kubva pahuwandu hwekufashukira, inoda kusungirirwa kwekutanga kwemhando dzakasiyana usati washandiswa, inobata zvikanganiso zviri nani muraibhurari yakajairwa, inoshandisa iyo pfungwa yezvisingachinjiki mareferensi uye zvinosiyana nekusarudzika, inopa yakasimba static typing kuderedza zvikanganiso zvine musoro.

Source: opennet.ru

Voeg