WD yana haɓaka direban NVMe a cikin Rust. Gwaji tare da Rust akan FreeBSD

A taron Linux Plumbers 2022 da ke gudana kwanakin nan, wani injiniya daga Western Digital ya ba da gabatarwa game da haɓaka direban gwaji don faifan SSD tare da ƙirar NVM-Express (NVMe), wanda aka rubuta a cikin yaren Rust kuma yana gudana a cikin Linux kernel. matakin. Duk da cewa aikin har yanzu yana kan matakin farko na ci gaba, gwaji ya nuna cewa aikin direban NVMe a cikin harshen Rust ya dace da direban NVMe da aka rubuta a cikin harshen C da ke cikin kwaya.

WD yana haɓaka direban NVMe a cikin Rust. Gwaji tare da Rust akan FreeBSD
WD yana haɓaka direban NVMe a cikin Rust. Gwaji tare da Rust akan FreeBSD

Rahoton ya bayyana cewa direban NVMe na yanzu a cikin C yana da cikakkiyar gamsuwa ga masu haɓakawa, amma tsarin tsarin NVMe shine kyakkyawan dandamali don bincika yuwuwar haɓaka direbobi a cikin Rust, tunda yana da sauƙi, ana amfani da shi sosai, yana da buƙatun aiki mai girma, kuma yana da. ingantaccen aiwatar da tunani don kwatantawa kuma yana goyan bayan musaya daban-daban (dev, pci, dma, blk-mq, gendisk, sysfs).

An lura cewa direban PCI NVMe na Rust ya riga ya ba da aikin da ake buƙata don aiki, amma bai riga ya shirya don amfani da yawa ba, saboda yana buƙatar haɓaka mutum ɗaya. Tsare-tsare na gaba sun haɗa da kawar da ƙaƙƙarfan tubalan da ba su da aminci, tallafawa cire na'urar da ayyukan sauke direba, tallafawa ƙirar sysfs, aiwatar da ƙaddamar da malalaci, ƙirƙirar direba don blk-mq, da gwaji tare da yin amfani da ƙirar shirye-shiryen asynchronous don queue_rq.

Bugu da ƙari, za mu iya lura da gwaje-gwajen da ƙungiyar NCC ta gudanar don haɓaka direbobi a cikin yaren Rust don kernel na FreeBSD. A matsayin misali, muna bincika daki-daki mai sauƙi direban echo mai mayar da bayanan da aka rubuta zuwa fayil /dev/rustmodule. A cikin mataki na gaba na gwaji, Ƙungiyar NCC tana la'akari da yiwuwar sake yin aiki da mahimman abubuwan kernel a cikin harshen Rust don inganta tsaro na cibiyar sadarwa da ayyukan fayiloli.

Duk da haka, kodayake an nuna cewa yana yiwuwa a ƙirƙira sassa masu sauƙi a cikin yaren Rust, haɗakar da tsatsa a cikin kernel na FreeBSD zai buƙaci ƙarin aiki. Misali, sun ambaci buƙatar ƙirƙirar saitin yadudduka na abstraction akan tsarin ƙasa da tsarin kwaya, kama da ƙari-kan da aikin Rust don Linux ya shirya. A nan gaba, muna shirin gudanar da irin wannan gwaje-gwajen tare da kernel na Illumos da gano abubuwan gama gari a cikin Rust waɗanda za a iya amfani da su a cikin direbobin da aka rubuta cikin Rust don Linux, BSD da Illumos.

A cewar Microsoft da Google, kusan kashi 70 cikin XNUMX na rashin lahani a cikin samfuran software nasu ana samun su ta hanyar kula da ƙwaƙwalwar ajiya mara kyau. Ana sa ran yin amfani da harshen Rust zai rage haɗarin rashin lahani da ke haifar da rashin lafiyar aiki tare da ƙwaƙwalwar ajiya, da kuma kawar da faruwar kurakurai kamar samun damar wurin ƙwaƙwalwar ajiya bayan an saki shi kuma ya mamaye buffer.

Ana ba da amincin ƙwaƙwalwar ajiya a cikin Tsatsa a lokacin tattarawa ta hanyar duba tunani, kiyaye bin diddigin mallakar abu da tsawon rayuwa (ikon), haka kuma ta hanyar kimanta daidaitaccen damar ƙwaƙwalwar ajiya yayin aiwatar da lambar. Tsatsa kuma yana ba da kariya daga ambaliya mai lamba, yana buƙatar ƙaddamar da ƙima mai mahimmanci kafin amfani, yana sarrafa kurakurai mafi kyau a cikin daidaitaccen ɗakin karatu, yana amfani da ra'ayi na nassoshi marasa canzawa da masu canji ta tsohuwa, yana ba da buga rubutu mai ƙarfi don rage kurakurai masu ma'ana.

source: budenet.ru

Add a comment