Versi keempat patch untuk sokongan pemacu Rust pada Linux telah diterbitkan

Miguel Ojeda, pengarang projek Rust-for-Linux, Teme baru-baru ini mendedahkan cadangan keempat untuk komponen pemacu peranti Rust untuk pembangun kernel Linux untuk dipertimbangkan.

Sokongan karat dianggap eksperimen, tetapi ia telah pun dipersetujui untuk dimasukkan ke dalam cawangan linux-next dan cukup matang untuk mula bekerja pada lapisan abstraksi di atas subsistem kernel, serta menulis pemacu dan modul. Pembangunan ini dibiayai oleh Google dan ISRG (Kumpulan Penyelidikan Keselamatan Internet), yang merupakan pengasas projek Let's Encrypt dan mempromosikan HTTPS dan pembangunan teknologi untuk meningkatkan keselamatan Internet.

Bagi mereka yang masih tidak menyedari perubahan yang dicadangkan, mereka harus tahu bahawa mereka membolehkannya penggunaan Rust sebagai bahasa kedua untuk membangunkan pengawal dan modul daripada kernel. Sokongan Rust dibentangkan sebagai pilihan yang tidak didayakan secara lalai dan tidak menyebabkan Rust dimasukkan antara kebergantungan binaan yang diperlukan untuk kernel.

Menggunakan Rust untuk membangunkan pemandu akan membolehkan anda mencipta pemandu yang lebih baik dan lebih selamat dengan usaha yang minimum, tanpa masalah seperti mengakses kawasan memori selepas membebaskannya, membatalkan penunjuk nol dan limpahan penimbal.

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 untuk 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. .

Apakah perubahan dalam ansuran keempat?

Dalam versi baru patch yang dibentangkan ini, disebutkan bahawa komen yang dibuat semasa perbincangan patch edisi pertama, kedua dan ketiga terus dihapuskan.

Kami akan terus mengemas kini sehingga kami tidak bergantung pada sebarang ciri yang tidak stabil;
pada ketika itu kita mungkin mahu mula mengisytiharkan versi minimum Rust
disokong, seperti yang dilakukan, contohnya, untuk GCC dan Clang.

Begitu juga, kami juga berhijrah ke edisi 2021 bahasa Rust.

Bagi perubahan lain yang dibuat dalam versi baharu ini, pengumuman tersebut menyebut perkara berikut:

  • Beralih untuk menggunakan Rust 1.58.0 yang stabil sebagai pengkompil rujukan.
  • Perubahan yang diperlukan untuk projek, yang belum disertakan dalam kit alat Rust utama, termasuk bendera "-Zsymbol-mangling-version=v0" (dijangka dalam Rust 1.59.0) dan mod "mungkin_uninit_extra" (dijangka dalam Rust 1.60.0) .
  • Pemeriksaan automatik untuk ketersediaan alat Rust dan kesesuaiannya telah ditambahkan, dan keupayaan untuk menguji sokongan Rust pada sistem juga telah diperluaskan.
  • Abstraksi baharu dicadangkan untuk dapat mengakses jadual pengecam peranti ("IdArray" dan "IdTable") daripada kod Rust.
  • Lapisan tambahan untuk memanggil fungsi yang berkaitan dengan pemasa (bingkai jam).
  • Pengawal platform kini ditakrifkan melalui pelaksanaan ciri.
  • Makro baharu telah ditambah untuk memudahkan pendaftaran pemacu platform dan templat pemacu generik baharu telah dicadangkan.
  • Menambah makro baharu untuk struktur "dev_*".
  • Menambah kaedah baharu "{read,write}*_relaxed" untuk jenis IoMem .
  • Mengalih keluar harta FileOpener untuk memudahkan operasi fail.
  • Menambahkan parameter "ThisModule" pada bilangan argumen yang diluluskan semasa pendaftaran pengawal.
  • Templat biasa untuk mencipta modul kernel dalam bahasa Rust dicadangkan.

Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut tentang versi baharu ini, anda boleh merujuk butirannya Dalam pautan berikut.


Tinggalkan komen anda

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

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  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.