Versi ketiga dari tambalan untuk dukungan driver Rust di Linux telah dirilis

Enam bulan setelah penerbitan versi kedua, Miguel Ojeda, penulis proyek Rust-for-Linux, mengumumkan proposal opsi ketiga untuk pengembangan driver perangkat dalam bahasa Rust di Kernel Linux.

Dukungan Rust dianggap eksperimental, tetapi penyertaannya di cabang linux-next telah disetujui. Pengembangan ini didanai oleh Google dan organisasi ISRG (Internet Security Research Group), yang merupakan pendiri proyek Let's Encrypt dan berkontribusi pada promosi HTTPS dan pengembangan teknologi untuk meningkatkan keamanan Internet.

Harus diingat bahwa perubahan yang diusulkan memungkinkan Rust untuk digunakan sebagai bahasa kedua untuk mengembangkan driver dan modul kernel.

Driver karat di Linux
Artikel terkait:
Versi kedua dari tambalan untuk dukungan driver Rust di Linux telah dikirimkan

Dukungan karat diiklankan sebagai opsi yang tidak aktif secara default dan itu tidak mengakibatkan Rust disertakan dalam dependensi build dasar yang diperlukan. Menggunakan Rust untuk pengembangan driver akan memungkinkan Anda untuk membuat driver yang lebih baik dan lebih aman dengan sedikit usaha, tanpa kerumitan mengakses area memori setelah dibebaskan, dereferensi null pointer, dan melebihi batas buffer.

Versi baru dari tambalan terus menghilangkan komentar yang dibuat selama diskusi tentang tambalan versi pertama dan kedua dan perubahan paling menonjol yang dapat kami temukan:

Ditransisikan ke versi stabil Rust 1.57 sebagai kompiler referensi dan pengikatan ke edisi stabil bahasa Rust 2021 telah diamankan. Transisi ke spesifikasi Rust 2021 pdiizinkan untuk mulai bekerja untuk menghindari penggunaan fitur yang tidak stabil seperti itu di patch seperti const_fn_transmute, const_panic, const_unreachable_unchecked dan core_panic dan try_reserve.

Itu juga menonjol pengembangan versi alokasi terus berlanjut dari perpustakaan Rust, dalam versi baru, opsi "no_rc" dan "no_sync" diterapkan untuk menonaktifkan fungsionalitas yang tidak digunakan dalam kode Rust untuk kernel, membuat perpustakaan lebih modular. Kami terus bekerja dengan pengembang alokasi utama untuk membawa perubahan kernel yang diperlukan ke perpustakaan utama. Opsi "no_fp_fmt_parse", yang diperlukan agar pustaka berfungsi di tingkat kernel, telah dipindahkan ke pustaka dasar (kernel) Rust.

Kode dibersihkan untuk menghapus kemungkinan peringatan kompiler saat mengkompilasi kernel dalam mode CONFIG_WERROR. Saat kode dibuat di Rust, mode kompiler diagnostik tambahan dan peringatan Clippy linter disertakan.

Mereka mengusulkan abstraksi untuk menggunakan seqlocks (penguncian urutan), panggilan balik untuk manajemen daya, memori I / O (readX / writeX), penangan interupsi dan utas, GPIO, akses perangkat, driver, dan kredensial dalam kode karat.

Alat pengembangan driver telah diperluas dengan penggunaan mutex yang dapat direlokasi, iterator bit, pengikatan yang disederhanakan pada pointer, diagnostik kesalahan yang ditingkatkan, dan infrastruktur independen bus data.

Bekerja dengan tautan telah ditingkatkan menggunakan tipe Ref disederhanakan, berdasarkan backend refcount_t, yang menggunakan API pusat dengan nama yang sama untuk menghitung referensi. Dukungan untuk tipe Arc dan Rc yang disediakan di perpustakaan pemetaan standar telah dihapus dan tidak tersedia dalam kode yang dieksekusi pada tingkat kernel (untuk perpustakaan itu sendiri, opsi telah disiapkan untuk menonaktifkan jenis ini).

Versi driver PL061 GPIO, yang ditulis ulang dalam Rust, telah ditambahkan ke patch. Sebuah fitur driver adalah bahwa implementasi dekat baris demi baris mengulangi driver C GPIO yang ada. Untuk pengembang yang ingin berkenalan dengan pengontrol bangunan di Rust, perbandingan baris demi baris telah disiapkan, yang membantu untuk memahami apa yang telah menjadi kode C build di Rust.

Basis kode utama Rust mengadopsi rustc_codegen_gcc, backend rustc untuk GCC yang mengimplementasikan kompilasi AOT menggunakan pustaka libgccjit. Dengan pengembangan backend yang tepat, ini akan memungkinkan Anda untuk mengumpulkan kode Rust yang terlibat dalam kernel menggunakan GCC.
Selain ARM, Google, dan Microsoft, Red Hat telah menyatakan minatnya untuk menggunakan Rust di kernel Linux.

Akhirnya, jika Anda tertarik untuk mengetahui lebih banyak tentangnya, 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.