WD ikupanga dalaivala wa NVMe ku Rust. Kuyesa ndi Rust pa FreeBSD

Pamsonkhano wa Linux Plumbers 2022 womwe ukuchitika masiku ano, mainjiniya ochokera ku Western Digital adapereka ulaliki wokhudza chitukuko cha driver woyeserera wa ma drive a SSD okhala ndi mawonekedwe a NVM-Express (NVMe), olembedwa m'chinenero cha Rust ndikuyenda pa Linux kernel. mlingo. Ngakhale kuti ntchitoyi idakali yoyambirira, kuyesa kwasonyeza kuti ntchito ya NVMe dalaivala m'chinenero cha Rust ikufanana ndi dalaivala wa NVMe wolembedwa m'chinenero cha C chomwe chili mu kernel.

WD ikupanga dalaivala wa NVMe ku Rust. Kuyesa ndi Rust pa FreeBSD
WD ikupanga dalaivala wa NVMe ku Rust. Kuyesa ndi Rust pa FreeBSD

Lipotilo likuti dalaivala wamakono wa NVMe ku C ndi wokhutiritsa kwathunthu kwa omanga, koma NVMe subsystem ndi nsanja yabwino yowonera kuthekera kopanga madalaivala ku Rust, popeza ndiyosavuta, yogwiritsidwa ntchito kwambiri, ili ndi zofunikira pakuchita bwino, ndipo ili kukhazikitsidwa kotsimikizika kofananira ndikuthandizira mawonekedwe osiyanasiyana (dev, pci, dma, blk-mq, gendisk, sysfs).

Zimadziwika kuti PCI NVMe dalaivala wa Rust amapereka kale magwiridwe antchito ofunikira, koma sanakonzekere kugwiritsidwa ntchito ponseponse, chifukwa pamafunika kusintha kwamunthu payekha. Mapulani amtsogolo akuphatikiza kuchotsa midadada yomwe ilipo yosakhala yotetezeka, kuthandizira kuchotsa zida ndikutsitsa madalaivala, kuthandizira mawonekedwe a sysfs, kukhazikitsa ulesi, kupanga dalaivala wa blk-mq, ndikuyesa kugwiritsa ntchito pulogalamu yofananira ya queue_rq.

Kuphatikiza apo, titha kuzindikira zoyeserera zomwe gulu la NCC limapanga kuti apange madalaivala muchilankhulo cha Rust cha FreeBSD kernel. Mwachitsanzo, timayang'ana mwatsatanetsatane dalaivala wosavuta wa echo yemwe amabwezera zomwe zidalembedwa ku fayilo /dev/rustmodule. Mu gawo lotsatira la kuyesa, Gulu la NCC likulingalira za kuthekera kokonzanso zigawo zikuluzikulu za kernel m'chinenero cha Rust kuti chiteteze chitetezo cha maukonde ndi mafayilo.

Komabe, ngakhale zasonyezedwa kuti n'zotheka kupanga ma modules osavuta m'chinenero cha Rust, kuphatikiza kolimba kwa Rust mu kernel ya FreeBSD kudzafuna ntchito yowonjezera. Mwachitsanzo, amatchula kufunikira kopanga zigawo zotsalira pazigawo zazing'ono ndi kernel, zofanana ndi zowonjezera zomwe zakonzedwa ndi Rust for Linux project. M'tsogolomu, tikukonzekera kuchita zoyeserera zofananira ndi Illumos kernel ndikuzindikira zotsalira za Rust zomwe zitha kugwiritsidwa ntchito pamadalaivala olembedwa mu Rust for Linux, BSD ndi Illumos.

Malinga ndi Microsoft ndi Google, pafupifupi 70% ya zofooka muzinthu zawo zamapulogalamu zimayamba chifukwa cha kusakumbukira bwino. Zikuyembekezeka kuti kugwiritsa ntchito chilankhulo cha dzimbiri kumachepetsa chiopsezo cha zovuta zomwe zimachitika chifukwa cha ntchito yosatetezeka ndi kukumbukira, ndikuchotsa zochitika za zolakwika monga kupeza malo okumbukira pambuyo pomasulidwa ndikupitilira buffer.

Chitetezo cha Memory chimaperekedwa mu Rust panthawi yophatikiza kudzera pakuwunika, kuyang'anira umwini wa chinthu ndi nthawi ya moyo wa chinthu (kukula), komanso kuwunika kulondola kwa kukumbukira kukumbukira panthawi yopanga ma code. Dzimbiri limaperekanso chitetezo ku kusefukira kwazinthu zonse, kumafuna kukhazikitsidwa kovomerezeka kwa zinthu zosinthika musanagwiritse ntchito, kuwongolera zolakwika bwino mulaibulale yokhazikika, kumagwiritsa ntchito lingaliro la maumboni osasinthika ndi zosintha mwachisawawa, kumapereka zilembo zolimba kuti muchepetse zolakwika zomveka.

Source: opennet.ru

Kuwonjezera ndemanga