Rust, sesuatu yang nampaknya dipersetujui oleh pembangun Linux

Bahasa pengaturcaraan Rust selalu bertujuan untuk menggantikan C dalam pengembangan kernel Linux Dan ketika Rust telah matang, beberapa pembangun telah menyatakan minat yang semakin meningkat terhadap penggunaannya dalam kernel Linux.

Dalam Persidangan Maya dari Linux Plumbers 2020, aliran mikrokonferensi oleh LLVM menganjurkan sesi mengenai soalan terbuka dan halangan untuk penerimaan hulu Rust pada kernel Linux.

Minat dalam topik ini dapat dilihat, kerana sesi ini merupakan acara paling sibuk pada tahun 2020.

Oleh itu, haruskah kita menulis semula keseluruhan kernel Linux dengan bahasa Rust? Perbincangan ini tidak bermula dari hari ini dan telah ditonjolkan sejak kemunculan Rust versi stabil pertama pada tahun 2015.

Memandangkan kemungkinan yang ditawarkannya Karat, ada yang mencadangkan melakukannya. Tahun ini, pada persidangan Tukang paip Linux pada bulan Ogos, para pembesar suara mempunyai masa sekali lagi untuk membincangkannya.

Dan yang mengejutkan ialah mereka nampaknya bersetuju sebulat suara tidak bukan untuk menulis semula kod yang ada di Rust, tetapi untuk pengembangan kernel untuk terus menggunakan Rust. Artinya, mereka membayangkan sebuah dunia di mana potongan kod baru dapat ditulis dalam Rust.

Sesi ini dibina berdasarkan karya sebelumnya dari banyak pembangun, termasuk ceramah yang diberikan tahun lalu oleh Alex Gaynor dan Geoffrey Thomas di Linux Security Summit.

Pada persidangan itu, mereka menyampaikan karya mereka mengenai prototaip modul kernel Rust dan mengadopsi penerapan Rust di kernel.

Mereka memetik karya yang menunjukkan bahawa kira-kira dua pertiga kerentanan kernel yang diberikan CVE di Android dan Ubuntu berkaitan dengan masalah keselamatan memori.

Mereka akhirnya menjelaskan bahawa Rust sepenuhnya dapat mengelakkan kesalahan seperti ini berkat API yang lebih selamat diaktifkan mengikut jenis sistem anda dan pengesah pinjaman anda.

Kajian ini berjaya meyakinkan beberapa penyelenggara sudah Linus Torvalds, yang menyokong pengenalan Rust ke dalam kernel. Thomas dan Gaynor, Josh Triplett, ketua bersama pasukan bahasa Rust dan pembangun kernel Linux lama, serta pembangun lain yang berminat turut serta dalam perbincangan mengenai topik tersebut.

Mereka secara ringkas menyentuh karyanya sejauh ini dan beberapa pemikiran dan pertanyaan pertamanya sebelum membuka sebahagian besar masa untuk perbincangan.

Ini adalah penggunaan API yang ada dalam kernel, sokongan seni bina, dan pertanyaan mengenai keserasian ABI antara Rust dan C.

Sebenarnya, mereka pada awalnya mempercayai perkara itu memperkenalkan Rust ke dalam struktur pokok mesti menghormati C API yang ada. 

Namun, semua orang merasakan syaitan ada dalam perinciannya, dan kedua-dua kerja yang dilakukan setakat ini dan perbualan semasa sesi tersebut telah menunjukkan beberapa cabaran terbuka.

Sebagai contoh, Linux menggunakan fungsi makro preprocessor dan fungsi sebaris, yang tidak disokong dengan mudah oleh alat bindgen dan antara muka fungsi luaran Rust.

Menurut mereka, pada masa ini satu-satunya pelaksanaan Rust yang matang adalah penyusunnya rustc, yang mengeluarkan kod melalui LLVM.

Kernel Linux menyokong pelbagai jenis seni bina, yang kebanyakannya tidak mempunyai backend LLVM.

Bagi pihaknya, Triplett mencadangkan bahawa menambahkan Rust ke kernel akan membantu meningkatkan sokongan seni bina untuk Rust, dengan menyebut pengalamannya dengan projek Debian. Dia menyebutkan bahawa pengenalan perisian Rust di Debian telah membantu memotivasi peminat dan pengguna seni bina khusus untuk meningkatkan sokongan Rust, dan dia berharap dapat menambahkan dukungan kernel untuk memiliki efek yang serupa.

Secara khusus, dia yakin bahawa apa-apa seni bina dengan backend LLVM akan cepat sesuai dengan Rust. Perbincangan juga difokuskan pada implementasi Rust alternatif sebagai jalan untuk sokongan seni bina yang lebih luas.

Sesi itu berakhir tanpa tonggak khusus lagi, tetapi nampaknya ada semangat keseluruhan untuk menyokong Mod Rust dan kesepakatan yang semakin meningkat mengenai keperluan umum untuk sokongan ini.


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.

  1.   Autopilot kata

    Nampaknya permulaan era baru, C yang tidak bergerak muncul.

    Hello Rust, Bye Linus Torvalds!