Versi kesepuluh patch untuk kernel Linux dengan sokongan untuk bahasa Rust

Miguel Ojeda, pengarang projek Rust-for-Linux, mencadangkan pelepasan komponen v10 untuk pembangunan pemacu peranti dalam bahasa Rust untuk dipertimbangkan oleh pembangun kernel Linux. Ini adalah edisi kesebelas tampalan, dengan mengambil kira versi pertama, diterbitkan tanpa nombor versi. Kemasukan sokongan Rust telah diluluskan oleh Linusum Torvalds untuk dimasukkan ke dalam kernel Linux 6.1, kecuali masalah yang tidak dijangka. 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.

Seperti versi patch sebelumnya, keluaran v10 dipangkas ke tahap minimum, mencukupi untuk membina modul kernel ringkas yang ditulis dalam bahasa Rust. Perbezaan daripada versi sebelumnya datang kepada suntingan kecil, menggantikan sizeof dengan ARRAY_SIZE dalam kallsyms.c dan menyesuaikan patch pada kernel v6.0-rc7. Dijangkakan bahawa tampalan minimum, yang saiznya telah dikurangkan daripada 40 kepada 13 ribu baris kod, akan memudahkan penggunaan sokongan Rust ke dalam kernel utama. Selepas memberikan sokongan minimum, ia dirancang untuk meningkatkan fungsi sedia ada secara beransur-ansur, memindahkan perubahan lain daripada cawangan Rust-for-Linux.

Perubahan yang dicadangkan memungkinkan untuk menggunakan Rust sebagai bahasa kedua untuk membangunkan modul pemacu dan kernel. Sokongan Rust dibentangkan sebagai pilihan yang tidak didayakan secara lalai dan tidak menyebabkan Rust dimasukkan sebagai pergantungan binaan yang diperlukan untuk kernel. Menggunakan Rust untuk pembangunan pemacu akan membolehkan anda mencipta pemacu yang lebih selamat dan lebih baik dengan usaha yang minimum, bebas daripada masalah seperti akses memori selepas dibebaskan, penyimpangan penuding nol dan overrun penimbal.

Keselamatan memori disediakan dalam Rust pada masa penyusunan melalui semakan rujukan, menjejaki pemilikan objek dan jangka hayat objek (skop), serta melalui penilaian ketepatan akses memori semasa pelaksanaan kod. Rust juga menyediakan perlindungan terhadap limpahan integer, memerlukan permulaan mandatori nilai pembolehubah sebelum digunakan, mengendalikan ralat dengan lebih baik dalam perpustakaan standard, menggunakan konsep rujukan tidak berubah dan pembolehubah secara lalai, menawarkan penaipan statik yang kuat untuk meminimumkan ralat logik.

Sumber: opennet.ru

Tambah komen