Pada konferensi Open-Source Summit 2022 sedang berlangsung hari ini, di bagian FAQ, Linus Torvalds menyebutkan kemungkinan integrasi awal di kernel Linux komponen untuk dikembangkan Driver perangkat di Rust.
Jadi disebutkan bahwa patch yang mendukung Rust dapat diterima di changelog berikutnya yang membentuk komposisi kernel 5.20, yang dijadwalkan akhir September.
Perlu diingat bahwa sejak tahun lalu Rust menjadi salah satu favorit untuk diikutsertakan dalam berbagai proyek penting dan selama ini telah dilakukan pekerjaan terkait implementasi Rust support.
Dalam proyek-proyek terkenal yang telah tertarik pada karat sejak tahun lalu, kami dapat menyoroti, misalnya, Android, karena tertarik pada Karat karena memungkinkan mencapai kinerja yang mendekati bahasa C dan C++, memungkinkannya digunakan untuk mengembangkan bagian tingkat rendah dari platform dan komponen untuk berinteraksi dengan perangkat keras.
Untuk memastikan keamanan kode C dan C ++, Android menggunakan isolasi sandbox, analisis statis, dan pengujian fuzzing. Kemampuan isolasi kotak pasir terbatas dan telah mencapai batas kemampuannya (fragmentasi lebih lanjut dalam proses tidak praktis dari sudut pandang konsumsi sumber daya).
Di antara batasan penggunaan sandbox, mereka menyebutkan overhead yang tinggi dan konsumsi memori yang lebih tinggi yang disebabkan oleh kebutuhan untuk menghasilkan proses baru, serta latensi tambahan yang terkait dengan penggunaan IPC.
Di sisi lain, kita tidak boleh lupa bahwa Linus Torvalds juga memberikan pendapatnya tentang Rust dan di mana dihabiskan untuk meninjau implementasi patch kemungkinan untuk mengatur driver bahasa Rust di kernel Linux dan menyuarakan beberapa kritik.
Keluhan terbesar disebabkan oleh potensi untuk melarikan diri "Run-time failure panicen" dalam situasi yang salah, misalnya, dalam situasi kehabisan memori, ketika operasi alokasi memori dinamis, termasuk operasi kernel, mungkin gagal.
Torvalds menyatakan bahwa fokus pada kernel seperti itu pada dasarnya tidak dapat diterima, Dan jika Anda tidak memahami hal ini, Anda dapat sepenuhnya menolak kode apa pun yang mencoba menggunakan pendekatan semacam itu. Di sisi lain, pengembang tambalan setuju dengan masalah tersebut dan menganggapnya dapat diselesaikan.
Tapi sudah beberapa bulan sejak Linus memberikan tanggapannya dan kerja keras telah dilakukan untuk meningkatkan implementasinya. Dengan demikian, permintaan tarik untuk inti saat ini belum diajukan ke Torvalds, tetapi set tambalan direvisi lebih lanjut, keynote dihapus, diuji di cabang linux-next untuk beberapa waktu, dan dibawa ke keadaan yang cocok untuk membangun lapisan abstraksi di atas subsistem kernel, menulis driver dan modul.
Dukungan karat datang sebagai pilihan yang tidak diaktifkan secara default dan tidak mengakibatkan Rust disertakan di antara dependensi build yang diperlukan untuk kernel.
Perubahan yang diusulkan memungkinkan untuk menggunakan Rust sebagai bahasa kedua untuk mengembangkan driver dan modul kernel. Menggunakan Rust untuk mengembangkan driver akan memungkinkan Anda membuat driver yang lebih baik dan lebih aman dengan sedikit usaha, tanpa masalah seperti mengakses area memori setelah membebaskannya, dereference null pointer, dan buffer overflows.
Keamanan memori disediakan di Rust pada waktu kompilasi dengan memeriksa referensi, melacak kepemilikan objek, dan masa pakai objek (lingkup), serta dengan mengevaluasi kebenaran akses memori selama eksekusi kode. Karat juga memberikan perlindungan luapan bilangan bulat, mengharuskan variabel diinisialisasi sebelum digunakan, menangani kesalahan dengan lebih baik di pustaka standar, menerapkan konsep variabel dan referensi yang tidak dapat diubah secara default, dan menawarkan pengetikan statis yang kuat untuk meminimalkan kesalahan logis.