WD ngembangkeun supir NVMe di Rust. Ékspérimén kalawan Rust on FreeBSD

Dina konperénsi Linux Plumbers 2022 anu lumangsung dinten ayeuna, saurang insinyur ti Western Digital masihan presentasi ngeunaan pamekaran supir ékspérimén pikeun drive SSD kalayan antarmuka NVM-Express (NVMe), ditulis dina basa Rust sareng dijalankeun dina kernel Linux. tingkat. Sanaos kanyataan yén proyék éta masih dina tahap awal pangwangunan, uji coba nunjukkeun yén kinerja supir NVMe dina basa Rust cocog sareng supir NVMe anu ditulis dina basa C anu aya dina kernel.

WD ngembangkeun supir NVMe di Rust. Ékspérimén kalawan Rust on FreeBSD
WD ngembangkeun supir NVMe di Rust. Ékspérimén kalawan Rust on FreeBSD

Laporan nyatakeun yén supir NVMe ayeuna di C leres-leres nyugemakeun pikeun pamekar, tapi subsistem NVMe mangrupikeun platform anu saé pikeun ngajalajah kamungkinan ngembangkeun supir di Rust, sabab éta cukup saderhana, seueur dianggo, gaduh syarat kinerja anu luhur, sareng gaduh. a palaksanaan rujukan kabuktian pikeun ngabandingkeun sarta ngarojong rupa interfaces (dev, pci, dma, blk-mq, gendisk, sysfs).

Ieu dicatet yén supir PCI NVMe pikeun Rust geus nyadiakeun pungsi dipikabutuh pikeun operasi, tapi teu acan siap pikeun pamakéan nyebar, sabab merlukeun perbaikan individu. Rencana anu bakal datang kalebet ngaleungitkeun kode blok anu teu aman, ngadukung panyabutan alat sareng operasi unloading supir, ngadukung antarmuka sysfs, ngalaksanakeun inisialisasi puguh, nyiptakeun supir pikeun blk-mq, sareng ékspérimén nganggo modél program asynchronous pikeun queue_rq.

Salaku tambahan, urang tiasa nyatet percobaan anu dilakukeun ku Grup NCC pikeun ngembangkeun supir dina basa Rust pikeun kernel FreeBSD. Salaku conto, urang nalungtik di jéntré supir écho basajan nu mulih data ditulis kana file / dev / rustmodule. Dina fase ékspérimén salajengna, Grup NCC nganggap kamungkinan ngerjakeun deui komponén inti kernel dina basa Rust pikeun ningkatkeun kaamanan jaringan sareng operasi file.

Sanajan kitu, sanajan geus ditémbongkeun yén mungkin mun nyieun modul basajan dina basa Rust, integrasi tighter Rust kana kernel FreeBSD bakal merlukeun gawé tambahan. Salaku conto, aranjeunna nyarios kedah nyiptakeun sakumpulan lapisan abstraksi dina subsistem sareng struktur kernel, sami sareng tambihan anu disiapkeun ku proyék Rust for Linux. Ka hareupna, urang ngarencanakeun pikeun ngalakukeun percobaan anu sami sareng kernel Illumos sareng ngaidentipikasi abstraksi umum dina Rust anu tiasa dianggo dina supir anu ditulis dina Rust pikeun Linux, BSD sareng Illumos.

Numutkeun Microsoft sareng Google, sakitar 70% kerentanan dina produk parangkat lunakna disababkeun ku panangan mémori anu teu aman. Ieu diperkirakeun yén pamakéan basa Rust bakal ngurangan résiko vulnerabilities disababkeun ku karya unsafe kalawan memori, sarta ngaleungitkeun lumangsungna kasalahan kayaning aksés ka wewengkon memori sanggeus geus dibébaskeun sarta overrunning panyangga.

Kasalametan memori disadiakeun dina Rust dina waktos compile ngaliwatan mariksa rujukan, ngalacak kapamilikan obyék sarta hirupna objék (wengkuan), kitu ogé ngaliwatan evaluasi correctness aksés memori salila palaksanaan kode. Karat ogé nyadiakeun panyalindungan ngalawan overflows integer, merlukeun variabel bisa initialized saméméh pamakéan, handles kasalahan hadé dina perpustakaan baku, nerapkeun konsép rujukan immutable sarta variabel sacara standar, sarta nawarkeun ketikan statik kuat pikeun ngaleutikan kasalahan logis.

sumber: opennet.ru

Tambahkeun komentar