A WD NVMe-meghajtót fejleszt a Rust nyelven. Kísérletek a Rust-tal FreeBSD alatt

A jelenleg zajló Linux Plumbers 2022 konferencián a Western Digital mérnöke előadást tartott egy kísérleti meghajtóról, amely SSD-meghajtókkal működik NVM-Express (NVMe) interfészen, Rust nyelven íródott, és a Linux kernel szintjén működik. Bár a projekt még korai fejlesztési szakaszban van, a végzett tesztelések azt mutatták, hogy a Rust nyelvű NVMe-meghajtó teljesítménye megfelel a C nyelven készült NVMe-meghajtó teljesítményének a kernelben.

A WD NVMe-meghajtót fejleszt a Rust nyelven. Kísérletek a Rust-tal FreeBSD alatt
A WD NVMe-meghajtót fejleszt a Rust nyelven. Kísérletek a Rust-tal FreeBSD alatt

Az előadásban elhangzott, hogy a jelenlegi NVMe-meghajtó, amely C nyelven készült, teljes mértékben kielégíti a fejlesztők igényeit, de az NVMe alrendszer jó helyszínt biztosít Rust nyelven írt meghajtók fejlesztésének megalapozottságának vizsgálatára, mivel viszonylag egyszerű, széles körben használt, magas teljesítményt követel, bevált benchmark implementációval rendelkezik a összehasonlításhoz és támogat különböző interfészeket (dev, pci, dma, blk-mq, gendisk, sysfs).

Megjegyezték, hogy a PCI NVMe meghajtó Rust nyelven már biztosítja a működéshez szükséges funkcionalitást, de még nem készült el széleskörű használatra, mivel további finomításokat igényel. A jövőbeli tervek között szerepel a kód biztonsági blokkjainak eltüntetése, az eszköz eltávolítási műveletek és a meghajtó kirakodásának támogatása, a sysfs interfész támogatása, a késleltetett inicializálás megvalósítása, a blk-mq meghajtó létrehozása és kísérletek végzése az aszinkron programozási modellel a queue_rq esetében.

Videó lejátszása

Továbbá megemelhető, hogy az NCC Group kísérleteket végez a Rust nyelven írt meghajtók fejlesztésével a FreeBSD kernelhez. Példaként részletesen ismertetik egy egyszerű echo-meghajtó működését, amely visszaadja a /dev/rustmodule fájlba írt adatokat. A kísérletek következő szakaszában az NCC Group fontolóra veszi a kernel alapvető összetevőinek Rust nyelven való átírását a hálózati és fájlműveletek biztonságának növelése érdekében.

Ennek ellenére, noha bemutatták a Rust nyelven egyszerű modulok készítésének lehetőségét, a Rust szorosabb integrációja a FreeBSD kernelbe további munkát igényel. Például említést nyert, hogy szükség van egy absztrakciós rétegkészlet létrehozására a kernel alrendszerei és struktúrái felett, hasonlóan a Rust for Linux projekt által készített kiterjesztésekhez. A jövőben hasonló kísérleteket terveznek az Illumos kernelével, és azokat az általános Rust absztrakciókat kiemelni, amelyeket Rust nyelven írt illesztőprogramok használhatnak Linux, BSD és Illumos rendszerekhez.

A Microsoft és a Google adatai szerint a programjaikban előforduló biztonsági rések körülbelül 70%-a a memóriakezelés nem biztonságos módjából ered. Feltételezhető, hogy a Rust nyelv használata csökkentheti a memóriakezeléssel összefüggő biztonsági rések kockázatát, és kiküszöböli az olyan hibák előfordulását, mint a memória felszabadítása utáni hozzáférés és a puffertúllépés.

A memória biztonságos kezelése a Rust nyelvben a fordítás során a hivatkozások ellenőrzésével, az objektumok tulajdonlásának nyomon követésével, valamint az objektumok élettartamának (láthatóságának) figyelembevételével történik, továbbá a memóriához való hozzáférés helyességének értékelésével a kód futtatása alatt. A Rust eszközöket is biztosít a egész számok túlfutásának védelmére, kötelezővé teszi a változók értékeinek inicializálását használat előtt, jobban kezeli a hibákat a standard könyvtárban, alkalmazza az immutable (változhatatlan) hivatkozások és változók fogalmát alapértelmezés szerint, valamint erős statikus típust kínál a logikai hibák minimalizálására.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster