Versi kedua dari tambalan untuk dukungan driver Rust di Linux telah dikirimkan

Pada bulan Maret tahun ini di cabang linux-next yang pada saat itu bekerja untuk kernel Linux 5.13, Satu set komponen awal disertakan untuk mengembangkan driver perangkat di bahasa Rust dan sekarang permintaan telah dibuat untuk memasukkan edisi kedua patch untuk menambahkan dukungan Rust ke kernel Linux.

Orang yang telah mengirimkan permintaan ke pengembang Linux adalah Miguel Ojeda, penulis proyek Rust-for-Linux dan yang juga kami bicarakan beberapa hari yang lalu, karena ia dipekerjakan untuk mengambil alih proyek "Prossimo" yang pada dasarnya berfokus pada upaya koordinasi untuk memindahkan infrastruktur perangkat lunak penting ke kode aman untuk mengamankan memori kernel Linux dengan Rust (jika Anda ingin tahu lebih banyak tentang proyek ini, Anda dapat berkonsultasi posting di tautan di bawah ini.)

Driver karat di Linux
Artikel terkait:
Prossimo, proyek ISRG untuk mengamankan memori kernel Linux dengan Rust

Permintaan yang dikirim oleh Miguel Ojeda adalah versi kedua yang diperbarui komponen untuk pengembangan driver perangkat dalam bahasa Rust dan di mana komentar yang dibuat selama diskusi tentang versi pertama dari tambalan dihapus dan yang Linus Torvalds telah bergabung dalam diskusi dan menyarankan untuk mengubah logika untuk memproses beberapa operasi bit.

Di dalam manfaat yang disebutkan adalah manajemen memori yang aman dijamin di Rust pada waktu kompilasi dengan memeriksa referensi, melacak kepemilikan objek dan masa pakai objek, serta mengevaluasi kebenaran akses memori pada waktu berjalan.

Karat juga menyediakan perlindungan luapan bilangan bulat, memerlukan inisialisasi wajib nilai variabel sebelum digunakan, menangani kesalahan dengan lebih baik di pustaka standar, mengadopsi konsep referensi dan variabel yang tidak dapat diubah secara default, dan menawarkan penulisan statis yang kuat untuk meminimalkan kesalahan logis.

Dari perubahan yang menonjol dari versi baru tambalan ini disebutkan:

  • Kode alokasi memori mencegah kemungkinan timbulnya kepanikan ketika terjadi kesalahan seperti kehabisan memori.
  • Disertakan varian dari perpustakaan alokasi Rust, di mana kode telah dikerjakan ulang untuk menangani kunci, tetapi tujuan akhirnya adalah membawa semua fitur yang diperlukan untuk kernel ke edisi utama aloc (perubahan telah disiapkan dan dibawa ke perpustakaan Rust standar).
  • Alih-alih build malam, versi beta dan stabil sekarang dapat digunakan rustc compiler untuk mengkompilasi kernel yang mendukung Rust. Saat ini rustc 1.54-beta1 digunakan sebagai kompiler referensi, tetapi setelah rilis 1.54 pada akhir bulan, rustc XNUMX-betaXNUMX akan didukung sebagai kompiler referensi.
  • Menambahkan dukungan untuk menulis tes menggunakan atribut Rust standar "# [test]" dan kemampuan untuk menggunakan doctests untuk menggunakan kode sampel dari dokumentasi sebagai tes.
  • Dukungan untuk arsitektur ARM32 dan RISCV telah ditambahkan selain x86_64 dan ARM64 yang sebelumnya didukung.
    Implementasi GCC yang ditingkatkan Rust (frontend GCC untuk Rust) dan rustc_codegen_gcc (backend rustc untuk GCC), yang sekarang melewati semua benchmark.
  • SEBUAH tingkat abstraksi baru untuk program Rust menggunakan mekanisme kernel yang ditulis dalam C, seperti pohon, objek penghitungan referensi, membuat deskriptor file, tugas, file, dan vektor I/O.
  • Komponen pengembangan driver telah meningkatkan dukungan untuk modul "file_operations", "modul!" Makro, pencatatan makro, dan driver dasar (selidiki dan hapus).
  • Binder memiliki dukungan untuk meneruskan deskriptor file dan tautan LSM.
  • Contoh yang lebih fungsional dari driver Rust, bcm2835-rng, diusulkan untuk generator nomor acak perangkat keras untuk papan Raspberry Pi.

Terakhir, jika Anda tertarik untuk mengetahuinya lebih lanjut, Anda bisa melihat detailnya Di tautan berikut.


tinggalkan Komentar Anda

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

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  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.