Versi keempat dari tambalan untuk dukungan driver Rust di Linux telah diterbitkan

Miguel Ojeda, penulis proyek Rust-for-Linux, Teme baru-baru ini meluncurkan proposal keempat untuk komponen driver perangkat Karat untuk dipertimbangkan oleh pengembang kernel Linux.

Dukungan karat dianggap eksperimental, tetapi telah disetujui untuk dimasukkan dalam cabang linux-next dan cukup matang untuk mulai bekerja pada lapisan abstraksi di atas subsistem kernel, serta menulis driver dan modul. Pengembangan ini didanai oleh Google dan ISRG (Internet Security Research Group), yang merupakan pendiri proyek Let's Encrypt dan mempromosikan HTTPS dan pengembangan teknologi untuk meningkatkan keamanan Internet.

Bagi mereka yang masih belum mengetahui perubahan yang diusulkan, mereka harus tahu bahwa mereka memungkinkannya penggunaan Rust sebagai bahasa kedua untuk mengembangkan pengontrol dan modul dari kernel. Dukungan Rust disajikan sebagai opsi yang tidak diaktifkan secara default dan tidak mengakibatkan Rust disertakan di antara dependensi build yang diperlukan untuk kernel.

Menggunakan Rust untuk mengembangkan driver akan memungkinkan Anda membuat driver yang lebih baik dan lebih aman dengan sedikit usaha, tanpa masalah seperti mengakses area memori setelah membebaskannya, mendereferensikan null pointer, dan buffer overflows.

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.

Rust juga menyediakan perlindungan integer overflow, mengharuskan variabel untuk diinisialisasi sebelum digunakan, menangani kesalahan dengan lebih baik di perpustakaan standar, menerapkan konsep variabel dan referensi yang tidak dapat diubah secara default, dan menawarkan pengetikan statis yang kuat untuk meminimalkan kesalahan logis. .

Apa saja perubahan pada angsuran keempat?

Dalam patch versi baru yang dihadirkan ini, disebutkan bahwa komentar yang dibuat selama pembahasan patch edisi pertama, kedua dan ketiga terus dihilangkan.

Kami akan terus memperbarui sampai kami tidak bergantung pada fitur yang tidak stabil;
pada titik mana kita mungkin ingin mulai mendeklarasikan versi minimal Rust
didukung, seperti yang dilakukan, misalnya, untuk GCC dan Dentang.

Demikian pula, kami juga bermigrasi ke bahasa Rust edisi 2021.

Adapun perubahan lain yang dilakukan dalam versi baru ini, pengumuman menyebutkan sebagai berikut:

  • Ditransisikan untuk menggunakan Rust 1.58.0 yang stabil sebagai kompiler referensi.
  • Perubahan yang diperlukan untuk proyek, belum termasuk dalam toolkit Rust utama, termasuk flag "-Zsymbol-mangling-version=v0" (diharapkan di Rust 1.59.0) dan mode "maybe_uninit_extra" (diharapkan di Rust 1.60.0) .
  • Pemeriksaan otomatis untuk ketersediaan alat Rust dan kesesuaiannya telah ditambahkan, dan kemampuan untuk menguji dukungan Rust pada sistem juga telah diperluas.
  • Abstraksi baru diusulkan untuk dapat mengakses tabel pengenal perangkat ("IdArray" dan "IdTable") dari kode Rust.
  • Menambahkan lapisan untuk memanggil fungsi yang terkait dengan pengatur waktu (bingkai jam).
  • Pengontrol platform sekarang ditentukan melalui implementasi sifat.
  • Makro baru telah ditambahkan untuk menyederhanakan pendaftaran driver platform dan template driver generik baru telah diusulkan.
  • Menambahkan makro baru untuk struktur "dev_*".
  • Menambahkan metode baru "{read,write}*_relaxed" untuk tipe IoMem .
  • Menghapus properti FileOpener untuk menyederhanakan operasi file.
  • Menambahkan parameter "Modul Ini" ke jumlah argumen yang diteruskan selama pendaftaran pengontrol.
  • Sebuah template khas untuk membuat modul kernel dalam bahasa Rust diusulkan.

Akhirnya, jika Anda tertarik untuk mengetahui lebih banyak tentang versi baru ini, Anda dapat berkonsultasi dengan 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.