Rust untuk Linux menyertakan beberapa peningkatan untuk mendukung

Selama beberapa bulan terakhir Pengembang Linux telah berdebat kemungkinan izinkan penggunaan bahasa Rust untuk menulis driver perangkat baru untuk kernel.

Tahun lalu, pengembang kernel Linux mereka tampaknya telah mencapai kesepakatan tentang masalah ini, Pendukung Rust telah mengutip pekerjaan yang menunjukkan bahwa sekitar dua pertiga dari kerentanan kernel yang ditetapkan CVE di Android dan Ubuntu terkait dengan masalah keamanan memori.

Menyusul pernyataan ini, Linus Torvalds, insinyur perangkat lunak, pencipta utama, dan pengembang kernel Linux, mengatakan dalam sebuah wawancara bahwa diskusi tentang topik tersebut akan jauh lebih penting daripada posting Google yang panjang tentang bahasa tersebut.

Ketika ditanya tentang saran untuk menggunakan Rust, dia menunjukkan bahwa, "Solusinya di sini sederhana: gunakan saja C ++ daripada Rust."

Setelah itu pada bulan Maret, dukungan pertama diluncurkane yang memungkinkan driver Rust untuk ditempatkan di pohon Linux-Next untuk pengujian lebih lanjut sebelum akhirnya dimasukkan ke dalam kernel utama.

Tepat di belakangnya ada "permintaan komentar" yang diterbitkan ulang di milis kernel tentang perspektif kode Rust untuk kernel Linux.

Miguel OjedaPengembang kernel Linux memulai proposal Request for Comments (RFC) di milis kernel Linux.

Posting milis menguraikan keyakinan pengembang yang terlibat dalam menambahkan kode Rust ke kernel, manfaat seperti peningkatan keamanan memori, dan banyak lagi.

“Beberapa dari Anda telah memperhatikan dalam beberapa minggu dan bulan terakhir bahwa upaya serius sedang dilakukan untuk membawa bahasa kedua ke kernel. Kami akhirnya sampai, dengan RFC yang menambahkan dukungan Rust ke kernel Linux, ”kata Miguel Ojeja. "Kami tahu bahwa ada biaya dan risiko yang sangat besar yang terlibat dalam memperkenalkan bahasa baru ke kernel," tambahnya.

Tim Proyek Karat untuk Linux dipindahkan dari kompiler beta Rust ke menggunakan rilis stabil, bermigrasi setiap kali versi baru dirilis.

"Kami ingin berterima kasih kepada Rust karena telah bekerja sama dengan kami dalam opsi-opsi ini sehingga kernel dapat menggunakannya," kata Miguel.

Saat memperbarui kompiler, tim dapat menghapus beberapa fitur yang tidak stabil dari daftar: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic, dan try_reserve.

Selain itu, digarisbawahi bahwa beberapa opsi modularisasi telah ditambahkan lebih banyak untuk mengalokasikan untuk menonaktifkan beberapa fungsi yang tidak perlu: no_rc dan no_sync.

Upstream, agar kasus penggunaan kernel didukung dengan baik, atau lebih tepatnya "campuran" opsi yang dibutuhkan kernel, inti Upstream juga telah menambahkan no_fp_fmt_parse.

Di sisi lain, Rust mengaktifkan serangkaian diagnostik tambahan untuk kompiler Rust dan Clippy. Satu perbedaan dari C adalah bahwa diagnostik Rust sedikit lebih mudah dinonaktifkan dalam kode, yang lebih ketat dalam kasus umum.

juga abstraksi dan pembaruan driver telah diimplementasikan. Tim menambahkan abstraksi untuk kunci aliran, panggilan balik manajemen daya, memori io (readX / writeX), chip irq dan manajer aliran tingkat tinggi, chip gpio (termasuk chip irq), periferal, periferal amba, dan driver.

Dukungan dari pengontrol ditingkatkan dengan infrastruktur independen bus, Objek yang dapat dibatalkan, mutex yang dapat dibatalkan, iterator bit yang efisien, diagnostik panik yang lebih baik, dan pembungkus pointer yang disederhanakan. Selain itu, ini meningkatkan dan menyederhanakan objek Ref (kompatibel dengan refcount_t) dan mengganti semua instance Rust.

Dan driver baru untuk perangkat gpio PL061 telah diimplementasikan dan dikirimkan sebagai patch RFC.

Akhirnya perlu dicatat itu Dukungan karat masih dianggap eksperimental. Namun, dukungannya cukup baik sehingga pengembang kernel mulai bekerja dalam abstraksi Rust untuk menulis subsistem dan pengontrol dan modul lainnya. Seri saat ini baru saja tiba di Linux-next, jadi peluncuran pertama akan berlangsung minggu ini.

sumber: https://lkml.org/lkml


tinggalkan Komentar Anda

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

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  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.