Rust tidak dibebaskan dari kritik terhadap Linus Torvalds

Beberapa minggu lalu berita tentang beberapa implementasi yang dibuat di cabang linux-next, yang menyertakan sekumpulan komponen awal untuk mengembangkan driver perangkat dalam bahasa Rust.

Dokumentasi ini diterbitkan secara terpisah tentang penggunaan Rust di kernel Linux dan contoh modul kernel dengan driver perangkat karakter dalam bahasa Rust. Kode ditambahkan oleh Stephen Rothwell, pengelola cabang.

Setelah itu Linus Torvalds membahas review 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.

Masalah lain adalah upaya untuk menggunakan tipe floating point atau 128 bit, yang tidak valid untuk lingkungan seperti kernel Linux.

Anda mungkin tidak memahami konsekuensi dari kapan hal itu bisa terjadi, jadi mungkin saja
bukan masalah dari yang saya kira, tapi secara fundamental
Saya pikir jika pemetaan Rust dapat menyebabkan kepanikan, ini sederhana
_ secara fundamental_ tidak dapat diterima.

Memetakan kegagalan dalam pengontrol atau kode non-inti, dan itu untuk
definisi, semua kode Rust baru, tidak pernah bisa menyebabkan PERNAH
panik secara valid. Hal yang sama berlaku untuk «oh, dalam beberapa kasus saya tidak mencoba penggunaan
Integers 128-bit atau floating point '.

Jadi jika kompiler Rust menyebabkan tugas tersembunyi yang tidak dapat dilakukan
mendeteksi dan mengembalikan sebagai kesalahan, maka saya sangat percaya bahwa semua ini
pendekatan harus benar-benar NAK'ed, dan infrastruktur Rust,
baik di tingkat kompiler atau di pembungkus kernel, Anda membutuhkan lebih banyak
bekerja

Ini ternyata menjadi masalah yang lebih serius., sejak saat ini Perpustakaan pusat Rust tidak dapat dipisahkan dan mewakili noda besar; tidak ada cara untuk meminta hanya beberapa fitur, sehingga menghindari penggunaan satu atau beberapa fungsi bermasalah lainnya.

Solusi untuk masalah ini mungkin memerlukan perubahan pada pengompilasi dan pustaka karat, meskipun tim tersebut belum memiliki strategi tentang cara mengimplementasikan modularitas untuk pustaka bahasa.

Selain itu, Torvalds menunjukkan bahwa pengontrol contoh yang diberikan tidak berguna dan disarankan untuk melampirkan sebagai contoh driver yang memecahkan salah satu masalah nyata.

Sebelum ini Google mengumumkan partisipasinya dalam inisiatif untuk mempromosikan dukungan Rust di kernel Linux y memberikan aspek teknis kelayakan penerapan Rust untuk mengatasi masalah yang muncul dari kesalahan dalam bekerja dengan memori.

Menurut Google Rust siap untuk bergabung dengan C sebagai bahasa pengembangan Komponen kernel Linux. Artikel ini juga memberikan contoh penggunaan bahasa Rust untuk mengembangkan driver kernel, dalam konteks penggunaannya di platform Android (Rust diakui sebagai bahasa yang didukung secara resmi untuk pengembangan Android).

Perlu dicatat bahwa Google telah menyiapkan prototipe awal pengontrol yang ditulis dengan Rust untuk mekanisme komunikasi antar proses Binder, yang akan memungkinkan perbandingan kinerja dan keamanan mendetail dari implementasi Binder di C dan Rust.

Dalam bentuknya saat ini, pekerjaan belum selesai, tetapi untuk hampir semua abstraksi dasar fungsionalitas kernel yang diperlukan agar Binder dapat bekerja, lapisan telah disiapkan untuk menggunakan abstraksi ini dalam kode Rust.

Terakhir, jika Anda ingin mengetahui lebih lanjut, Anda dapat memeriksa detailnya Di tautan berikut.


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.   Miguel Rodriguez dijo

    Semua kritik mereka valid, mengingat Rust adalah bahasa baru yang bekerja dengan paradigma berbeda dari C, dapat dimengerti kekhawatiran tentang detail apa pun di perpustakaan atau di kompiler itu sendiri di mana, meskipun kodenya valid, itu menyebabkan kernel untuk memecahkan bagaimana itu diterapkan dan dibangun. Itulah sebabnya saran seperti kemampuan memodularisasi pustaka untuk memanggil dan tetap aktif hanya fungsi yang diperlukan untuk program (atau dalam kasus ini untuk pengontrol apa pun) yang berfungsi dengan benar. Juga bukan apa yang Anda minta tidak masuk akal, bahwa mereka memberi Anda pengontrol prototipe nyata yang melakukan pekerjaan dengan baik pada masalah saat ini (atau setidaknya melakukan pekerjaan yang sama dengan yang sudah ada di kernel dan bekerja tanpa panik).

  2.   Tujuh dijo

    Dari waktu ke waktu saya membaca kembali artikel oleh Linux Adictos Namun hanya butuh sedikit waktu bagi saya untuk putus asa ketika saya melihat bahwa meskipun memiliki konten yang sangat bagus, hasil akhirnya dihancurkan dengan ejaan yang buruk.
    Akankah ejaan dan tata bahasa begitu sulit?
    Memalukan!
    Semangat!