Western Digital sudah bekerja pada driver NVMe yang ditulis dalam Rust

RustLinux

Integrasi Rust di Linux telah memiliki tingkat penerimaan yang tinggi oleh komunitas dan pengembang

Selama konferensi "Linux Plumbers 2022" yang sedang berlangsung akhir-akhir ini, seorang insinyur Western Digital memberikan presentasi tentang pengembangan controller eksperimental untuk SSD NVM-Express (NVMe) ditulis dalam Rust dan berjalan pada tingkat kernel Linux.

Meskipun begitu proyek ini masih dalam tahap awal pengembangan, pengujian yang dilakukan menunjukkan bahwa kinerja driver Rust NVMe sesuai dengan driver NVMe yang ditulis dalam C di kernel.

Saya Matthew Wilcox, saya salah satu penulis spesifikasi NVMe, saya adalah orang yang menyarankan saya membuat driver NVMe untuk menunjukkan nilai Rust. Ini telah berhasil melampaui harapan terliar saya. 

Mengenai laporan yang disajikan driver NVMe C saat ini dikatakan sepenuhnya memuaskan untuk pengembang, tetapi subsistem NVMe adalah platform yang baik untuk mengeksplorasi kelayakan pengembangan driver di Rust, karena cukup sederhana, banyak digunakan, memiliki persyaratan kinerja tinggi, memiliki implementasi referensi yang terbukti untuk perbandingan, dan mendukung berbagai antarmuka ( dev, pci, dma, blk-mq, gendisk, sysfs).

Hal itu diamati driver Rust PCI NVMe sudah menyediakan fungsionalitas yang diperlukan untuk pengoperasian, tetapi belum siap untuk digunakan secara luas, karena memerlukan perangkat tambahan yang terpisah.

Rencana untuk masa depan termasuk menyingkirkan blok tidak aman yang ada, dukungan untuk menghapus perangkat dan mengunduh driver, mendukung antarmuka sysfs, terapkan inisialisasi malas, buat pengontrol untuk blk-mq, dan bereksperimen dengan model pemrograman asinkron untuk queue_rq.

Selanjutnya, kita dapat menunjuk percobaan yang dilakukan oleh NCC Group untuk mengembangkan pengontrol dalam bahasa Rust untuk kernel FreeBSD. Sebagai contoh, pengontrol gema sederhana yang mengembalikan data yang ditulis ke /dev/rustmodule. Pada fase eksperimen berikutnya, Grup NCC sedang mempertimbangkan pengerjaan ulang komponen inti inti di Rust untuk meningkatkan keamanan operasi jaringan dan file.

Yang mengatakan, meskipun telah ditunjukkan bahwa dimungkinkan untuk membuat modul sederhana di Rust, integrasi yang lebih erat dari Rust ke dalam kernel FreeBSD akan membutuhkan pekerjaan tambahan.

Misalnya, ia menyebutkan perlunya membuat satu set lapisan abstraksi di atas subsistem dan struktur kernel, mirip dengan plugin yang disiapkan oleh proyek Rust untuk Linux. Di masa mendatang, kami berencana untuk melakukan eksperimen serupa dengan inti Illumos dan menyoroti abstraksi umum di Rust yang dapat digunakan di driver yang ditulis oleh Rust untuk Linux, BSD, dan Illumos.

Menurut Microsoft dan Google, sekitar 70% dari kerentanan dalam produk perangkat lunak mereka disebabkan oleh manajemen memori yang tidak aman.

Menggunakan bahasa Rust seharusnya mengurangi risiko kerentanan disebabkan oleh penanganan memori yang tidak aman dan akan menghilangkan terjadinya kesalahan seperti mengakses area memori setelah dibebaskan dan buffer overflow.

Keamanan memori disediakan di Rust pada waktu kompilasi dengan memeriksa referensi, melacak kepemilikan objek, dan masa pakai objek (lingkup), serta dengan mengevaluasi kebenaran akses memori selama eksekusi kode.

Karat juga menyediakan perlindungan luapan bilangan bulat, mengharuskan variabel diinisialisasi sebelum digunakan, menangani kesalahan dengan lebih baik di pustaka standar, menerapkan konsep variabel dan referensi yang tidak dapat diubah secara default, dan menawarkan pengetikan statis yang kuat untuk meminimalkan kesalahan logis.

Perlu disebutkan bahwa ada kemungkinan bahwa pekerjaan di masa depan akan berjalan seiring dengan pekerjaan yang telah disajikan oleh Miguel Ojeda pada driver "Rust for Linux" miliknya, yang telah disajikan sebagai serangkaian tambalan.

Akhirnya jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya di link berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.