Rust untuk Linux termasuk beberapa peningkatan untuk disokong

Pada bulan-bulan terakhir Pembangun Linux telah berdebat kemungkinan membenarkan penggunaan bahasa Rust untuk menulis pemacu peranti baharu untuk kernel.

Tahun lepas, pembangun kernel Linux mereka nampaknya telah mencapai persetujuan mengenai perkara itu, Penyokong Rust telah memetik kerja yang menunjukkan bahawa kira-kira dua pertiga daripada kerentanan kernel yang diberikan CVE dalam Android dan Ubuntu adalah berkaitan dengan isu keselamatan memori.

Berikutan kenyataan ini, Linus Torvalds, jurutera perisian, pencipta utama dan pembangun kernel Linux, berkata dalam temu bual bahawa perbincangan mengenai topik itu akan menjadi lebih penting daripada siaran Google yang panjang tentang bahasa itu.

Apabila ditanya tentang cadangan untuk menggunakan Rust, dia menyatakan bahawa, "Penyelesaian di sini adalah mudah: hanya gunakan C ++ dan bukannya Rust."

Selepas itu pada bulan Mac, sokongan pertama telah dilancarkane yang membenarkan pemacu Rust diletakkan di dalam pokok Linux-Next untuk ujian lanjut sebelum akhirnya dimasukkan ke dalam kernel utama.

Di belakangnya terdapat "permintaan untuk komen" yang dikeluarkan semula pada senarai mel kernel mengenai perspektif kod Rust untuk kernel Linux.

Miguel OjedaPembangun kernel Linux memulakan cadangan Permintaan untuk Komen (RFC) pada senarai mel kernel Linux.

Siaran senarai mel menggariskan kepercayaan pembangun yang terlibat dalam menambahkan kod Rust pada kernel, faedah seperti keselamatan memori yang dipertingkatkan dan banyak lagi.

“Sesetengah daripada anda perasan dalam beberapa minggu dan bulan kebelakangan ini bahawa percubaan serius sedang dibuat untuk membawa bahasa kedua ke inti. Kami akhirnya di sana, dengan RFC yang menambah sokongan Rust pada kernel Linux, "kata Miguel Ojeja. "Kami tahu bahawa terdapat kos dan risiko besar yang terlibat dalam memperkenalkan bahasa baharu kepada inti," tambahnya.

Pasukan Projek Rust untuk Linux berpindah daripada pengkompil beta Rust kepada menggunakan keluaran stabil, berhijrah setiap kali versi baharu dikeluarkan.

"Kami ingin mengucapkan terima kasih kepada Rust kerana bekerjasama dengan kami dalam pilihan ini supaya kernel boleh menggunakannya," kata Miguel.

Apabila mengemas kini penyusun, pasukan dapat mengalih keluar beberapa ciri yang tidak stabil daripada senarai: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic dan try_reserve.

Di samping itu, ia diserlahkan bahawa beberapa pilihan modularisasi telah ditambah lebih banyak untuk diperuntukkan untuk melumpuhkan beberapa fungsi yang tidak perlu: no_rc dan no_sync.

Huluan, agar kes penggunaan kernel disokong dengan baik, atau lebih tepat lagi, "campuran" pilihan yang diperlukan kernel, teras huluan juga telah menambah no_fp_fmt_parse.

Sebaliknya, Rust mendayakan satu siri diagnostik tambahan untuk pengkompil Rust dan Clippy. Satu perbezaan daripada C ialah diagnostik Rust lebih mudah untuk dilumpuhkan dalam kod, yang lebih ketat dalam kes umum.

juga abstraksi dan kemas kini pemacu telah dilaksanakan. Pasukan itu menambah abstraksi untuk kunci strim, panggilan balik pengurusan kuasa, memori io (readX / writeX), cip irq dan pengurus strim peringkat tinggi, cip gpio (termasuk cip irq), persisian, persisian amba dan pemacu.

Sokongan daripada pengawal dipertingkatkan dengan infrastruktur bebas bas, Objek boleh dibatalkan, mutex boleh dibatalkan, iterator bit yang cekap, diagnostik panik yang lebih baik dan pembalut penunjuk yang dipermudahkan. Selain itu, ia menambah baik dan memudahkan objek Ref (serasi dengan refcount_t) dan menggantikan semua kejadian Rust.

Dan pemacu baharu untuk peranti gpio PL061 telah dilaksanakan dan dihantar sebagai tampung RFC.

Akhirnya harus diperhatikan bahawa Sokongan karat masih dianggap sebagai percubaan. Walau bagaimanapun, sokongannya cukup baik sehingga pembangun kernel mula bekerja dalam abstraksi Rust untuk menulis subsistem dan pengawal dan modul lain. Siri semasa baru sahaja tiba di Linux-seterusnya, jadi larian pertama akan berlangsung minggu ini.

Fuente: https://lkml.org/lkml


Tinggalkan komen anda

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

*

*

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