Western Digital sedang mengusahakan pemacu NVMe yang ditulis dalam Rust

RustLinux

Penyepaduan Rust dalam Linux telah mendapat tahap penerimaan yang tinggi oleh komuniti dan pembangun

Semasa persidangan "Linux Plumbers 2022". yang sedang berlangsung hari ini, seorang jurutera Digital Barat memberikan pembentangan tentang pembangunan pengawal percubaan untuk SSD NVM-Express (NVMe) ditulis dalam Rust dan berjalan pada peringkat kernel Linux.

Walaupun projek tersebut masih dalam peringkat awal pembangunan, ujian yang dijalankan menunjukkan bahawa prestasi pemacu NVMe Rust sepadan dengan pemacu NVMe yang ditulis dalam C dalam kernel.

Saya Matthew Wilcox, saya salah seorang pengarang spek NVMe, saya adalah orang yang mencadangkan saya membuat pemacu NVMe untuk menunjukkan nilai Rust. Ia telah berjaya di luar jangkaan saya yang paling liar. 

Berkenaan laporan yang dibentangkan pemacu NVMe C semasa dikatakan memuaskan sepenuhnya untuk pembangun, tetapi subsistem NVMe ialah platform yang baik untuk meneroka kemungkinan membangunkan pemacu dalam Rust, kerana ia agak mudah, digunakan secara meluas, mempunyai keperluan prestasi tinggi, mempunyai pelaksanaan rujukan yang terbukti untuk perbandingan, dan menyokong pelbagai antara muka ( dev, pci, dma, blk-mq, gendisk, sysfs).

Ia diperhatikan bahawa pemacu NVMe PCI Rust sudah menyediakan fungsi yang diperlukan untuk operasi, tetapi ia belum bersedia untuk digunakan secara meluas, kerana ia memerlukan peningkatan yang berasingan.

Rancangan untuk masa depan termasuk menyingkirkan blok tidak selamat yang sedia ada, sokongan untuk mengalih keluar peranti dan memuat turun pemacu, menyokong antara muka sysfs, laksanakan pemulaan malas, cipta pengawal untuk blk-mq dan percubaan dengan model pengaturcaraan tak segerak untuk queue_rq.

Tambahan pula, kita boleh menunjuk eksperimen yang dijalankan oleh Kumpulan NCC untuk membangunkan pengawal dalam bahasa Rust untuk kernel FreeBSD. Sebagai contoh, pengawal gema mudah yang mengembalikan data yang ditulis ke /dev/rustmodule. Dalam fasa percubaan seterusnya, Kumpulan NCC sedang mempertimbangkan untuk mengolah semula komponen teras teras dalam Rust untuk meningkatkan keselamatan rangkaian dan operasi fail.

Walaupun begitu, walaupun telah ditunjukkan bahawa adalah mungkin untuk membuat modul mudah dalam Rust, integrasi Rust yang lebih ketat ke dalam kernel FreeBSD akan memerlukan kerja tambahan.

Sebagai contoh, beliau menyebut keperluan untuk mencipta satu set lapisan abstraksi ke atas subsistem dan struktur kernel, serupa dengan pemalam yang disediakan oleh projek Rust untuk Linux. Pada masa hadapan, kami merancang untuk melakukan eksperimen serupa dengan teras Illumos dan menyerlahkan abstraksi biasa dalam Rust yang boleh digunakan dalam pemacu yang ditulis oleh Rust untuk Linux, BSD dan Illumos.

Menurut Microsoft dan Google, sekitar 70% daripada kelemahan dalam produk perisian mereka adalah disebabkan oleh pengurusan memori yang tidak selamat.

Menggunakan bahasa Rust sepatutnya mengurangkan risiko kelemahan disebabkan oleh pengendalian memori yang tidak selamat dan akan menghapuskan berlakunya ralat seperti mengakses kawasan memori selepas ia dibebaskan dan limpahan penampan.

Keselamatan memori disediakan dalam Rust pada masa penyusunan dengan menyemak rujukan, menjejaki pemilikan objek, dan jangka hayat objek (skop), serta dengan menilai ketepatan akses memori semasa pelaksanaan kod.

Rust juga menyediakan perlindungan limpahan integer, memerlukan pembolehubah dimulakan sebelum digunakan, mengendalikan ralat dalam pustaka standard dengan lebih baik, menguatkuasakan konsep pembolehubah tidak berubah dan rujukan secara lalai, dan menawarkan penaipan statik yang kuat untuk meminimumkan ralat logik.

Perlu dinyatakan bahawa mungkin kerja masa depan akan seiring dengan kerja yang telah dibentangkan Miguel Ojeda pada pemandu "Rust for Linux" beliau, yang telah dibentangkan sebagai satu siri tampalan.

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butirannya di pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.