Sokongan karat untuk kernel Linux menghadapi kritikan daripada Torvalds

Linus Torvalds menyemak patch yang melaksanakan keupayaan untuk mencipta pemacu dalam bahasa Rust untuk kernel Linux, dan membuat beberapa komen kritikal.

Aduan terbesar adalah disebabkan oleh kemungkinan kemungkinan panik() dalam situasi ralat, contohnya, dalam situasi memori rendah, apabila operasi peruntukan memori dinamik, termasuk dalam kernel, mungkin gagal. Torvalds menyatakan bahawa pendekatan sedemikian dalam kernel pada asasnya tidak boleh diterima dan, jika perkara ini tidak difahami, dia boleh Bogel sepenuhnya mana-mana kod yang cuba menggunakan pendekatan sedemikian. Sebaliknya, pembangun patch bersetuju dengan masalah ini dan menganggapnya boleh diselesaikan.

Masalah lain ialah percubaan untuk menggunakan titik terapung atau jenis 128-bit, yang tidak boleh diterima untuk persekitaran seperti kernel Linux. Ini ternyata menjadi masalah yang lebih serius, kerana pada masa ini perpustakaan teras Rust tidak dapat dibahagikan dan mewakili satu gumpalan besar - tidak ada cara untuk meminta hanya beberapa ciri, menghalang penggunaan satu atau satu lagi fungsi bermasalah. Menyelesaikan masalah mungkin memerlukan perubahan pada penyusun dan perpustakaan karat, walaupun pada masa ini pasukan itu belum mempunyai strategi untuk melaksanakan modularisasi perpustakaan bahasa.

Di samping itu, Torvalds menyatakan bahawa contoh pemandu yang disediakan tidak berguna dan menasihatkan kami untuk menggunakan sebagai contoh beberapa pemandu yang menyelesaikan salah satu masalah sebenar.

Kemas kini: Google telah mengumumkan penyertaannya dalam inisiatif untuk menolak sokongan Rust ke dalam kernel Linux dan telah menyediakan sebab teknikal untuk memperkenalkan Rust untuk memerangi masalah yang timbul daripada ralat memori. Google percaya bahawa Rust bersedia untuk menyertai C sebagai bahasa untuk membangunkan komponen kernel Linux. Artikel ini juga menyediakan contoh penggunaan bahasa Rust untuk membangunkan pemacu kernel, dalam konteks penggunaannya dalam platform Android (Rust diiktiraf sebagai bahasa yang disokong secara rasmi untuk pembangunan Android).

Adalah diperhatikan bahawa Google telah menyediakan prototaip awal pemacu yang ditulis dalam Rust untuk mekanisme komunikasi antara proses Binder, yang akan membolehkan perbandingan terperinci prestasi dan keselamatan pelaksanaan Binder dalam C dan Rust. Dalam bentuk semasa, kerja itu masih belum lengkap, tetapi untuk hampir semua abstraksi asas kefungsian kernel yang diperlukan untuk Binder berfungsi, lapisan telah disediakan untuk menggunakan abstraksi ini dalam kod Rust.

Sumber: opennet.ru

Tambah komen