Kerangka kerja di Rust dapat diimplementasikan di Kernel untuk meningkatkan driver

Kernel Linux Rust

Josh Triplett, perusahaan berbasis Intel dan anggota komite pengawasan pengembangan Crates.io, sudah mempresentasikan kelompok kerja beberapa hari yang lalu dalam pidatonya di Open Source Technology Summit yang bertujuan untuk membawa Rust setara dengan C dalam pemrograman kernel Linux.

Dalam kelompok kerja, yang sedang dalam proses pembuatan, Pengembang Rust, bersama dengan insinyur Intel, akan menyiapkan spesifikasi yang dapat menyoroti fungsionalitas yang perlu diterapkan Rust untuk pemrograman dalam kernel Linux. Pemrograman sistem sering kali memerlukan manipulasi tingkat rendah, seperti menjalankan instruksi prosesor dengan hak istimewa dan memperoleh informasi rinci tentang status prosesor.

Dari kemampuan serupa yang sudah dikembangkan untuk Rust, dukungan untuk struktur tanpa nama didukung, unions (union), assembler inserts (makro "asm!"), dan format angka floating point BFLOAT16.

Josh percaya bahwa masa depan pemrograman sistem terletak pada Rust, dan bahasa C dalam realitas modern mengklaim sebagai tempat Assembler di masa lalu. Rust tidak hanya meredakan pengembang dari masalah bahasa C tertentu yang muncul karena pekerjaan tingkat rendah dengan memori, tetapi juga menyediakan penerapan dalam pengembangan paradigma pemrograman modern.

Selama pembahasan pidato Josh, idenya diungkapkan kepada:

menambahkan kemampuan untuk mengembangkan driver bahasa Rust ke kernel Linux, yang akan memungkinkan dengan sedikit usaha untuk membuat driver yang lebih baik dan lebih aman yang mengurangi masalah seperti mengakses area memori setelah membebaskannya, merujuk pointer nol, dan keluar lebih dari batas penyangga.

Greg Kroah-Hartman, bertanggung jawab untuk memelihara cabang stabil dari kernel Linux, danx menyatakan kesediaan untuk menambahkan framework driver Rust ke kernel jika kernel memiliki keunggulan nyata dibandingkan C, Sebagai contoh, ia akan menyediakan binding yang aman di atas core API. Selain itu, Greg menganggap framework ini hanya sebagai opsi yang tidak aktif secara default, sehingga tidak menyertakan Rust dalam jumlah dependensi perakitan inti.

Ternyata beberapa tim sudah bekerja ke arah ini. Misalnya, pengembang Fish in a Barrel menyiapkan toolkit untuk menulis modul yang dapat dimuat untuk kernel Linux dalam bahasa Rust, menggunakan satu set lapisan abstrak di atas antarmuka dan struktur kernel untuk meningkatkan keamanan.

Lapisan perantara dibuat secara otomatis berdasarkan file header kernel yang tersedia menggunakan utilitas bindgen. Dentang digunakan untuk membangun lapisan perantara. Modul yang telah dirakit, selain lapisan, gunakan paket staticlib.

Pada saat yang sama, proyek lain sedang dikembangkan, difokuskan pada pengembangan pengontrol untuk sistem tertanam dan perangkat Internet of Things, yang juga menggunakan bindgen untuk menghasilkan kerah berdasarkan file header kernel.

Kerangka kerja ini memungkinkan Anda untuk meningkatkan keamanan driver tanpa membuat perubahan pada kernel; Daripada membuat tingkat isolasi tambahan untuk driver di kernel, diusulkan untuk memblokir masalah pada tahap kompilasi menggunakan bahasa Rust yang lebih aman.

Produsen peralatan diharapkan dapat mengembangkan pendekatan ini dengan cepat tanpa audit yang tepat.

Belum semua fungsionalitas yang direncanakan telah diimplementasikan, tetapi kerangka kerja sudah cukup cocok untuk pekerjaan itu dan digunakan untuk menulis driver yang berfungsi untuk pengontrol LAN9512 USB Ethernet yang disediakan pada papan Raspberry Pi 3.

Driver smsc95xx yang ada ditulis sebagai implementasi referensi saat menulis driver Rust dalam bahasa C.

Perlu diperhatikan bahwa ukuran modul dan overhead komponen waktu proses tidak signifikan saat mengembangkan driver untuk Rust, yang memungkinkan Anda menggunakan kerangka kerja untuk perangkat dengan sumber daya terbatas.

sumber: https://hub.packtpub.com


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.

  1.   L1ch dijo

    Saya tidak dapat menemukan informasi untuk driver smsc95xx di sumbernya atau sesuatu akan diterapkan di Rust di Linux.