WD po zhvillon një drejtues NVMe në Rust. Eksperimentimi me Rust në FreeBSD

Në konferencën Linux Plumbers 2022 që po zhvillohet këto ditë, një inxhinier nga Western Digital dha një prezantim mbi zhvillimin e një drejtuesi eksperimental për disqet SSD me ndërfaqen NVM-Express (NVMe), të shkruar në gjuhën Rust dhe që funksionon në kernel Linux niveli. Përkundër faktit se projekti është ende në një fazë të hershme zhvillimi, testimi ka treguar se performanca e drejtuesit NVMe në gjuhën Rust korrespondon me drejtuesin NVMe të shkruar në gjuhën C të disponueshme në kernel.

WD po zhvillon një drejtues NVMe në Rust. Eksperimentimi me Rust në FreeBSD
WD po zhvillon një drejtues NVMe në Rust. Eksperimentimi me Rust në FreeBSD

Raporti thotë se drejtuesi aktual NVMe në C është plotësisht i kënaqshëm për zhvilluesit, por nënsistemi NVMe është një platformë e mirë për të eksploruar fizibilitetin e zhvillimit të drejtuesve në Rust, pasi është mjaft i thjeshtë, i përdorur gjerësisht, ka kërkesa të larta të performancës dhe ka një zbatim referimi i provuar për krahasim dhe mbështet ndërfaqe të ndryshme (dev, pci, dma, blk-mq, gendisk, sysfs).

Vihet re se drejtuesi PCI NVMe për Rust tashmë ofron funksionalitetin e nevojshëm për funksionim, por nuk është ende gati për përdorim të gjerë, pasi kërkon përmirësime individuale. Planet e ardhshme përfshijnë heqjen e kodit nga blloqet ekzistuese të pasigurta, mbështetjen e operacioneve të heqjes së pajisjes dhe shkarkimit të drejtuesve, mbështetjen e ndërfaqes sysfs, zbatimin e inicializimit dembel, krijimin e një drejtuesi për blk-mq dhe eksperimentimin me përdorimin e një modeli programimi asinkron për queue_rq.

Për më tepër, mund të vërejmë eksperimentet e kryera nga NCC Group për të zhvilluar drejtues në gjuhën Rust për kernelin FreeBSD. Si shembull, ne shqyrtojmë në detaje një drejtues të thjeshtë echo që kthen të dhënat e shkruara në skedarin /dev/rustmodule. Në fazën tjetër të eksperimentimit, Grupi NCC po shqyrton mundësinë e ripërpunimit të komponentëve thelbësorë të kernelit në gjuhën Rust për të përmirësuar sigurinë e operacioneve të rrjetit dhe skedarëve.

Megjithatë, megjithëse është treguar se është e mundur të krijohen module të thjeshta në gjuhën Rust, një integrim më i ngushtë i Rust në kernelin FreeBSD do të kërkojë punë shtesë. Për shembull, ata përmendin nevojën për të krijuar një grup shtresash abstraksioni mbi nënsistemet dhe strukturat e kernelit, të ngjashme me shtesat e përgatitura nga projekti Rust for Linux. Në të ardhmen, ne planifikojmë të kryejmë eksperimente të ngjashme me kernelin Illumos dhe të identifikojmë abstraksione të zakonshme në Rust që mund të përdoren në drejtuesit e shkruar në Rust për Linux, BSD dhe Illumos.

Sipas Microsoft dhe Google, rreth 70% e dobësive në produktet e tyre softuerike shkaktohen nga trajtimi i pasigurt i memories. Pritet që përdorimi i gjuhës Rust të zvogëlojë rrezikun e dobësive të shkaktuara nga puna e pasigurt me memorien dhe të eliminojë shfaqjen e gabimeve të tilla si qasja në një zonë memorie pasi të jetë çliruar dhe kapërcimi i tamponit.

Siguria e memories sigurohet në Rust në kohën e përpilimit përmes kontrollit të referencës, mbajtjes së gjurmëve të pronësisë së objektit dhe jetëgjatësisë së objektit (fushëveprimit), si dhe përmes vlerësimit të korrektësisë së aksesit në kujtesë gjatë ekzekutimit të kodit. Rust siguron gjithashtu mbrojtje kundër tejmbushjeve të numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave përpara përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pandryshueshme si parazgjedhje, ofron shtypje të fortë statike për të minimizuar gabimet logjike.

Burimi: opennet.ru

Shto një koment