WD er að þróa NVMe rekla í Rust. Tilraunir með Rust á FreeBSD

Á Linux Plumbers 2022 ráðstefnunni sem fram fer þessa dagana hélt verkfræðingur frá Western Digital kynningu á þróun tilraunadrifs fyrir SSD drif með NVM-Express (NVMe) viðmótinu, skrifað á Rust tungumálinu og keyrt á Linux kjarnanum stigi. Þrátt fyrir þá staðreynd að verkefnið sé enn á frumstigi þróunar, hafa prófanir sýnt að frammistaða NVMe ökumannsins á Rust tungumálinu samsvarar NVMe ökumanninum sem er skrifaður á C tungumálinu sem er tiltækt í kjarnanum.

WD er að þróa NVMe rekla í Rust. Tilraunir með Rust á FreeBSD
WD er að þróa NVMe rekla í Rust. Tilraunir með Rust á FreeBSD

Í skýrslunni kemur fram að núverandi NVMe rekla í C sé fullnægjandi fyrir þróunaraðila, en NVMe undirkerfið er góður vettvangur til að kanna hagkvæmni þess að þróa rekla í Rust, þar sem það er frekar einfalt, mikið notað, gerir miklar kröfur um afköst og hefur sannað viðmiðunarútfærslu til samanburðar og styður ýmis viðmót (dev, pci, dma, blk-mq, gendisk, sysfs).

Það er tekið fram að PCI NVMe bílstjóri fyrir Rust veitir nú þegar nauðsynlega virkni fyrir notkun, en er ekki enn tilbúinn til almennrar notkunar, þar sem það krefst einstakra endurbóta. Framtíðaráætlanir fela í sér að losa kóðann af óöruggum blokkum sem fyrir eru, styðja við að fjarlægja tæki og afferma ökumenn, styðja við sysfs viðmótið, innleiða lata frumstillingu, búa til rekla fyrir blk-mq og gera tilraunir með að nota ósamstillt forritunarlíkan fyrir queue_rq.

Að auki getum við tekið eftir tilraunum sem NCC Group gerði til að þróa rekla á Rust tungumálinu fyrir FreeBSD kjarnann. Sem dæmi skoðum við ítarlega einfaldan echo driver sem skilar gögnum sem eru skrifuð í skrána /dev/rustmodule. Í næsta áfanga tilrauna er NCC Group að íhuga möguleikann á að endurvinna kjarnahluta kjarnans á Rust tungumálinu til að bæta öryggi net- og skráaraðgerða.

Hins vegar, þó að sýnt hafi verið fram á að hægt sé að búa til einfaldar einingar á Rust tungumálinu, mun þéttari samþætting Rust inn í FreeBSD kjarnann krefjast viðbótarvinnu. Til dæmis nefna þeir nauðsyn þess að búa til sett af óhlutbundnum lögum yfir undirkerfin og kjarnabyggingar, svipað og viðbæturnar sem Rust for Linux verkefnið útbjó. Í framtíðinni ætlum við að gera svipaðar tilraunir með Illumos kjarnanum og bera kennsl á algengar útdrættir í Rust sem gætu verið notaðir í rekla sem eru skrifaðir í Rust fyrir Linux, BSD og Illumos.

Samkvæmt Microsoft og Google eru um 70% veikleika í hugbúnaðarvörum þeirra af völdum óöruggrar minnismeðferðar. Gert er ráð fyrir að notkun Rust tungumálsins dragi úr hættu á veikleikum af völdum óöruggrar vinnu með minni og útiloki villur eins og aðgang að minnissvæði eftir að það hefur verið losað og keyrt yfir biðminni.

Minnisörugg meðhöndlun er veitt í Rust á samantektartíma með tilvísunarathugun, með því að halda utan um eignarhald og endingartíma hluta (umfang), sem og með mati á réttmæti minnisaðgangs við keyrslu kóða. Ryð veitir einnig vernd gegn heiltöluflæði, krefst skyldubundinnar frumstillingar breytugilda fyrir notkun, meðhöndlar villur betur í stöðluðu bókasafni, beitir hugmyndinni um óbreytanlegar tilvísanir og breytur sjálfgefið, býður upp á sterka truflanir innsláttar til að lágmarka rökvillur.

Heimild: opennet.ru

Bæta við athugasemd