Versi ketiga patch untuk sokongan pemacu Rust di Linux telah pun dikeluarkan

Enam bulan selepas penerbitan versi kedua, Miguel Ojeda, pengarang projek Rust-for-Linux, dimaklumkan cadangan pilihan ketiga untuk pembangunan pemacu peranti dalam bahasa Rust dalam Linux Kernel.

Sokongan karat dianggap eksperimen, tetapi kemasukannya dalam cawangan linux-seterusnya telah dipersetujui. Pembangunan ini dibiayai oleh Google dan organisasi ISRG (Internet Security Research Group), yang merupakan pengasas projek Let's Encrypt dan menyumbang kepada promosi HTTPS dan pembangunan teknologi untuk meningkatkan keselamatan Internet.

Harus diingat bahawa perubahan yang dicadangkan membolehkan Rust digunakan sebagai bahasa kedua untuk membangunkan pemacu dan modul kernel.

Pemacu karat pada Linux
artikel berkaitan:
Versi kedua patch untuk sokongan pemacu Rust di Linux telah dihantar

Sokongan karat diiklankan sebagai pilihan yang tidak aktif secara lalai dan ia tidak menyebabkan Rust dimasukkan dalam kebergantungan binaan asas yang diperlukan. Menggunakan Rust untuk pembangunan pemandu akan membolehkan anda mencipta pemandu yang lebih baik dan lebih selamat dengan usaha yang minimum, tanpa perlu bersusah payah mengakses kawasan memori setelah dibebaskan, membatalkan penunjuk nol dan melebihi had penimbal.

Versi baru patch terus menghapuskan ulasan yang dibuat semasa perbincangan versi pertama dan kedua patch dan perubahan paling ketara yang boleh kami temui:

Beralih kepada versi stabil Rust 1.57 sebagai pengkompil rujukan dan mengikat kepada edisi stabil bahasa Rust 2021 telah dijamin. Peralihan kepada spesifikasi Rust 2021 pdibenarkan mula bekerja untuk mengelak daripada menggunakan ciri yang tidak stabil tersebut dalam tampung seperti const_fn_transmute, const_panic, const_unreachable_unchecked dan core_panic dan try_reserve.

Ini juga menonjol pembangunan versi alloc telah diteruskan daripada perpustakaan Rust, dalam versi baharu, pilihan "no_rc" dan "no_sync" dilaksanakan untuk melumpuhkan fungsi yang tidak digunakan dalam kod Rust untuk kernel, menjadikan perpustakaan lebih modular. Kami terus bekerjasama dengan pembangun peruntukan utama untuk membawa perubahan kernel yang diperlukan ke perpustakaan utama. Pilihan "no_fp_fmt_parse", yang diperlukan untuk perpustakaan berfungsi pada peringkat kernel, telah dipindahkan ke perpustakaan asas Rust (kernel).

Kod dibersihkan untuk mengalih keluar amaran pengkompil yang mungkin apabila menyusun kernel dalam mod CONFIG_WERROR. Apabila kod dibuat dalam Rust, mod pengkompil diagnostik tambahan dan amaran linter Clippy disertakan.

Mereka mencadangkan abstraksi untuk menggunakan seqlocks (kunci urutan), panggilan balik untuk pengurusan kuasa, memori I / O (readX / writeX), pengendali gangguan dan benang, GPIO, akses peranti, pemacu dan bukti kelayakan dalam kod karat.

Alat pembangunan pemandu telah diperluaskan dengan penggunaan mutex yang boleh dipindahkan, iterator bit, pengikatan dipermudahkan pada penunjuk, diagnostik kerosakan yang dipertingkatkan dan infrastruktur bebas bas data.

Bekerja dengan pautan telah dipertingkatkan menggunakan jenis Ref dipermudahkan, berdasarkan bahagian belakang refcount_t, yang menggunakan API pusat dengan nama yang sama untuk mengira rujukan. Sokongan untuk jenis Arc dan Rc yang disediakan dalam perpustakaan pemetaan standard telah dialih keluar dan tidak tersedia dalam kod yang dilaksanakan pada peringkat kernel (untuk perpustakaan itu sendiri, pilihan telah disediakan untuk melumpuhkan jenis ini).

Versi pemacu PL061 GPIO, ditulis semula dalam Rust, telah ditambahkan pada patch. Satu ciri pemacu ialah pelaksanaan hampir baris demi baris mengulangi pemacu C GPIO sedia ada. Bagi pembangun yang ingin berkenalan dengan pengawal bangunan di Rust, perbandingan baris demi baris telah disediakan, yang memberikan cerapan tentang kod C yang dibina dalam Rust.

Pangkalan kod utama Rust menggunakan rustc_codegen_gcc, bahagian belakang rustc untuk GCC yang melaksanakan kompilasi AOT menggunakan perpustakaan libgccjit. Dengan pembangunan bahagian belakang yang betul, ia akan membolehkan anda mengumpul kod Rust yang terlibat dalam kernel menggunakan GCC.
Selain ARM, Google dan Microsoft, Red Hat telah menyatakan minat untuk menggunakan Rust dalam kernel Linux.

Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut mengenainya, 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.