Rust tidak terkecuali daripada kritikan terhadap Linus Torvalds

Beberapa minggu yang lalu berita mengenai beberapa pelaksanaan yang dibuat di cawangan linux-next, yang merangkumi set komponen awal untuk membangunkan pemacu peranti dalam bahasa Karat.

Dokumentasi ini diterbitkan secara berasingan mengenai penggunaan Rust dalam kernel Linux dan contoh modul kernel dengan pemacu peranti watak dalam bahasa Rust. Kod itu ditambahkan oleh Stephen Rothwell, penjaga cawangan.

Selepas itu Linus Torvalds melengkapkan kajian pelaksanaan kemungkinan untuk menetapkan pemacu bahasa Rust di kernel Linux dan menyuarakan beberapa kritikan.

Keluhan terbesar disebabkan oleh potensi untuk melarikan diri "Panicen kegagalan jangka masa" dalam situasi yang salah, sebagai contoh, dalam keadaan kehabisan memori, ketika operasi peruntukan memori dinamik, termasuk operasi kernel, mungkin gagal.

torvald menyatakan bahawa tumpuan seperti itu pada inti pada dasarnya tidak dapat diterima, Dan jika anda tidak memahami perkara ini, anda boleh menolak sepenuhnya kod yang cuba menggunakan pendekatan sedemikian. Sebaliknya, pemaju patch bersetuju dengan masalah itu dan menganggapnya dapat diselesaikan.

Masalah lain ialah percubaan menggunakan floating point atau 128 bit, yang tidak sah untuk persekitaran seperti kernel Linux.

Anda mungkin tidak memahami kesan kapan ia boleh berlaku, jadi mungkin
kurang menjadi masalah daripada yang saya fikirkan, tetapi secara asasnya
Saya rasa sekiranya pemetaan Karat boleh menyebabkan panik, ini hanya berlaku
_ asasnya_ tidak boleh diterima.

Kegagalan pemetaan dalam pengawal atau kod bukan teras, dan itu, untuk
definisi, semua kod Rust baru, tidak pernah boleh menyebabkan
panik secara sah. Perkara yang sama berlaku untuk «oh, dalam beberapa kes saya tidak mencuba penggunaan
Bilangan bulat 128-bit atau titik terapung '.

Oleh itu, jika penyusun Rust menyebabkan tugas tersembunyi yang tidak dapat dilakukan
mengesan dan kembali sebagai kesilapan, maka saya benar-benar percaya bahawa semua ini
pendekatan harus sepenuhnya NAK'ed, dan infrastruktur Karat,
sama ada di peringkat penyusun atau di pembungkus kernel, anda memerlukan lebih banyak
kerja

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 ciri, sehingga menghindari penggunaan satu atau lain fungsi yang bermasalah.

Penyelesaian untuk masalah tersebut mungkin memerlukan perubahan pada penyusun karat dan perpustakaan, walaupun tim belum memiliki strategi bagaimana menerapkan modularitas untuk perpustakaan bahasa.

Selain itu, Torvalds menunjukkan bahawa pengawal contoh yang disediakan tidak berguna dan dinasihatkan untuk melampirkan sebagai contoh pemacu yang menyelesaikan salah satu masalah sebenar.

Sebelum ini Google mengumumkan penyertaannya dalam inisiatif untuk mempromosikan sokongan Rust di kernel Linux y disediakan aspek teknikal kelayakan melaksanakan Rust untuk memerangi masalah yang timbul dari kesilapan dalam bekerja dengan memori.

Google berpendapat Rust sudah bersedia 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 disokong secara rasmi untuk pengembangan Android).

Perlu diingatkan bahawa Google telah menyediakan prototaip awal pengawal yang ditulis dalam Rust untuk mekanisme komunikasi antara proses Binder, yang akan membolehkan perbandingan prestasi dan keselamatan terperinci pelaksanaan Binder di C dan Rust.

Dalam bentuknya sekarang, kerja tersebut belum selesai, tetapi untuk hampir semua fungsi asas fungsi kernel yang diperlukan agar Binder berfungsi, lapisan telah siap menggunakan abstraksi ini dalam kod Rust.

Akhirnya, jika anda ingin mengetahui lebih lanjut mengenainya, anda boleh menyemak perinciannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  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.   Miguel Rodriguez kata

    Semua kritikan mereka adalah sah, memandangkan Rust adalah bahasa baru yang berfungsi dengan paradigma yang berbeza dengan bahasa C, dapat difahami keprihatinan mengenai perincian apa pun di perpustakaan atau di penyusun itu sendiri di mana, walaupun kodnya sah, ia menyebabkan kernel itu juga akan pecah. bagaimana ia dilaksanakan dan dibina. Oleh itu, cadangan seperti dapat memodulasi perpustakaan untuk memanggil dan tetap aktif hanya fungsi yang diperlukan untuk program (atau dalam kes ini untuk mana-mana pengawal) berfungsi dengan betul. Tidak juga yang anda minta tidak masuk akal, bahawa mereka membawa anda pengawal prototaip sebenar yang melakukan pekerjaan dengan baik pada masalah semasa (atau sekurang-kurangnya melakukan pekerjaan yang sama seperti yang ada di kernel dan berfungsi tanpa panik).

  2.   Haus kata

    Dari semasa ke semasa saya membaca semula artikel oleh Linux Adictos tetapi saya memerlukan sedikit masa untuk berputus asa apabila saya melihat bahawa walaupun mempunyai kandungan yang sangat baik, keputusan akhir dimusnahkan dengan ejaan yang mengerikan.
    Adakah ejaan dan tatabahasa menjadi sukar?
    Memalukan!
    Bergembiralah!