WD ngembangake driver NVMe ing Rust. Eksperimen karo Rust ing FreeBSD

Ing konferensi Linux Plumbers 2022 sing ditindakake dina iki, insinyur saka Western Digital menehi presentasi babagan pangembangan driver eksperimen kanggo drive SSD kanthi antarmuka NVM-Express (NVMe), ditulis nganggo basa Rust lan mlaku ing kernel Linux. tingkat. Senadyan kasunyatan manawa proyek kasebut isih ana ing tahap awal pembangunan, tes wis nuduhake yen kinerja driver NVMe ing basa Rust cocog karo driver NVMe sing ditulis ing basa C sing kasedhiya ing kernel.

WD ngembangake driver NVMe ing Rust. Eksperimen karo Rust ing FreeBSD
WD ngembangake driver NVMe ing Rust. Eksperimen karo Rust ing FreeBSD

Laporan kasebut nyatakake yen driver NVMe saiki ing C rampung marem kanggo pangembang, nanging subsistem NVMe minangka platform sing apik kanggo njelajah kemungkinan ngembangake driver ing Rust, amarga cukup prasaja, akeh digunakake, nduweni syarat kinerja dhuwur, lan nduweni implementasine referensi buktiaken kanggo comparison lan ndhukung macem-macem antarmuka (dev, pci, dma, blk-mq, gendisk, sysfs).

Kacathet yen driver PCI NVMe kanggo Rust wis nyedhiyakake fungsi sing dibutuhake kanggo operasi, nanging durung siyap kanggo panggunaan sing nyebar, amarga mbutuhake perbaikan individu. Rencana ing mangsa ngarep kalebu ngilangi kode blok sing ora aman, ndhukung operasi mbusak piranti lan operasi unloading driver, ndhukung antarmuka sysfs, ngleksanakake initialization males, nggawe driver kanggo blk-mq, lan nyoba nggunakake model pemrograman asinkron kanggo queue_rq.

Kajaba iku, kita bisa nyathet eksperimen sing ditindakake dening NCC Group kanggo ngembangake driver ing basa Rust kanggo kernel FreeBSD. Minangka conto, kita nliti kanthi rinci driver echo prasaja sing ngasilake data sing ditulis menyang file /dev/rustmodule. Ing tahap eksperimen sabanjure, Grup NCC nimbang kemungkinan nggarap ulang komponen inti kernel ing basa Rust kanggo nambah keamanan jaringan lan operasi file.

Nanging, sanajan wis ditampilake manawa bisa nggawe modul prasaja ing basa Rust, integrasi Rust sing luwih kenceng menyang kernel FreeBSD mbutuhake karya tambahan. Contone, padha nyebutake perlu kanggo nggawe sakumpulan lapisan abstraksi liwat subsistem lan struktur kernel, padha karo tambahan sing disiapake dening Rust kanggo proyek Linux. Ing mangsa ngarep, kita bakal nindakake eksperimen sing padha karo kernel Illumos lan ngenali abstraksi umum ing Rust sing bisa digunakake ing driver sing ditulis ing Rust kanggo Linux, BSD lan Illumos.

Miturut Microsoft lan Google, udakara 70% kerentanan ing produk piranti lunak disebabake dening penanganan memori sing ora aman. Kaajab sing nggunakake basa Rust bakal ngurangi risiko vulnerabilities disebabake karya ora aman karo memori, lan ngilangke kedadean saka kasalahan kayata ngakses area memori sawise wis dibebaske lan overrunning buffer.

Penanganan memori-aman diwenehake ing Rust ing wektu kompilasi liwat mriksa referensi, nglacak kepemilikan obyek lan umur obyek (skop), uga liwat evaluasi bener saka akses memori sak eksekusi kode. Rust uga menehi pangayoman marang overflows integer, mbutuhake initialization prentah saka nilai variabel sadurunge digunakake, Ngalahake kasalahan luwih apik ing perpustakaan standar, ditrapake konsep referensi immutable lan variabel minangka standar, nawakake typing statis kuwat kanggo nyilikake kesalahan logis.

Source: opennet.ru

Add a comment