Pengulangan Rust sabanjure ing Linux 6.2 nggawe debat babagan ngganti C kanggo Rust

RustLinux

Integrasi Rust ing Linux wis ditampa tingkat dhuwur dening masyarakat lan pangembang

Salah siji masalah utama sing wis njedhul ing pangembangan Kernel Linux kanggo dangu, yaiku ide kanggo nemokake calon sing sampurna kanggo ngganti basa pamrograman "C" kanggo sing luwih modern lan nganti saiki karo tekane Rust, gagasan iki ora mandheg dilebokake ing meja.

Kanthi pratinjau pisanan Rust ing Linux 6.1, Aku revive roh ing bagean gedhe saka gawe saka Kernel lan Jonathan Corbet nedahake yen "isih ora bakal cukup Rust ing kernel kanggo nindakake apa wae sing menarik", kalebu basa iki wis nyebabake debat babagan perlu kanggo mbuwang basa C kanggo milih Rust. pemrograman sistem. Pitakonan kasebut misahake komunitas pangembang.

asahi garis njupuk tugas ngembangaken driver unit Processing grafis (GPU) kanggo Mac M1 ing Rust.

Ing comparison antarane Rust lan basa C nyebataken bilih:

"Pancen ora ana kemungkinan sampeyan ora kudu ngatasi manajemen akses bebarengan, upaya pasca-release kanggo ngakses area memori, lan kabeh masalah liyane yen sampeyan nulis iki ing C. Kabeh masalah konkurensi bakal ilang karo Rust! Memori dibebasake yen perlu! Sawise sampeyan sinau carane nggawe Rust bisa kanggo sampeyan, Aku iku bakal nuntun sampeyan nulis kode prayoga, malah ngluwihi janji keamanan basa. Iku pancen gaib! »

"Ana akeh debat babagan apa Rust migunani ing kernel utawa ora ... ing pengalamanku, iku luwih migunani tinimbang sing dakbayangake!" ", dheweke nambah.

Komentar sampeyan kaya bola-bali saka kompilasi alasan teknis sing mbokmenawa mbenerake ditching basa C ing sih saka Rust. Nyatane, 15,9% saka 2288 kerentanan sing kena pengaruh kernel Linux sajrone 20 taun (tokoh saka kamus Kerentanan Umum lan Eksposur (CVE)) ana gandhengane karo cacat ing basa C, masalah sing ana gandhengane karo manajemen memori: buffer overflows. , alokasi ora dibebasake, akses menyang wilayah memori sing ora bener utawa dibebasake, lsp.

Kajaba iku, pangurus utama kernel Linux wis kenal karo basa C, sing umure wis dianggep umure 3rd. A generasi anyar maintainers kang klompok umur ing telung puluhan iku ing munggah, lan kanthi mangkono kangelan nemokake maintainers kanggo kernel Linux kamungkinan kanggo nambah yen pembangunan terus ing basa C. Alasan ngapa Linus Torvalds mbukak lawang kanggo kernel. pembangunan ing Rust.

Ing pitakonan babagan kemungkinan mbuwang basa C, pangripta basa C dhaptar sawetara alasan apa inisiatif kamungkinan kanggo gagal sing pindhah menyang arah iki:

VS Language Toolchain

Basa C ora mung basa dhewe, nanging uga kabeh piranti pangembangan sing dikembangake kanggo basa iki.

Apa sampeyan pengin nindakake analisis statis kode sumber sampeyan? - Ana akeh wong sing nggarap iki kanggo C. Piranti kanggo ndeteksi bocor memori, balapan data lan kesalahan liyane? Ana akeh, sanajan basa sampeyan luwih apik.

Yen sampeyan pengin target platform sethitik-dikenal, kemungkinan sampeyan nggunakake status C. C minangka lingua franca komputasi dina ndadekake alat nulis worth kanggo, lan akeh alat sing ditulis.

Yen ana sing duwe toolchain sing bisa digunakake:

kok resiko ngganti basa? A "C sing luwih apik" kudu ngasilake akeh produktivitas tambahan kanggo memotivasi wektu sing digunakake kanggo nyetel toolchain anyar. Apa iki bisa tetep katon.

Ora mesthi basa anyar

Sadurungé basa kasebut dadi diwasa, bisa uga dadi buggy. lan diowahi sacara signifikan kanggo ngatasi masalah semantik basa kasebut. Lan apa basa malah konsisten karo iklan? Bisa menehi kaya "wektu kompilasi sing luar biasa" utawa "luwih cepet tinimbang C", nanging tujuan kasebut dadi angel digayuh nalika basa nambahake

Lan maintainers? Mesthi, sampeyan bisa nggunakake basa open source, nanging aku mangu-mangu akeh perusahaan sing bakal kasengsem nggunakake basa sing bisa dipeksa kanggo tetep mengko. Totoan ing basa anyar iku resiko gedhe.

Kasunyatan bilih basa kasebut bisa uga ora cukup apik

Apa basa kasebut nemtokake titik nyeri C?

Pranyata Wong ora mesthi setuju babagan kelemahane C. Alokasi memori, susunan lan penanganan senar asring angel, nanging kanthi perpustakaan sing tepat lan strategi memori sing apik, bisa diminimalisir.

Apa basa kasebut ora ngatasi masalah sing ora digatekake dening pangguna tingkat lanjut? Yen mangkono, regane bisa uga luwih murah tinimbang sing dikarepake.

Lan luwih elek, kepiye yen basa kasebut ngilangi fitur penting sing ana ing C? Fitur sing diandelake programer C majeng? Risiko iki tambah yen desainer basa wis ora akeh nggunakake C, nanging asalé saka C++, Jawa, etc.

Kurang pangembang sing berpengalaman kanggo basa anyar

Basa anyar mesthi bakal duwe pangembang berpengalaman sing luwih cilik. Kanggo perusahaan medium utawa gedhe, iki minangka masalah gedhe. Sing luwih akeh pangembang sing kasedhiya kanggo perusahaan, luwih apik.

Uga, yen perusahaan duwe pengalaman ngrekrut pangembang C, dheweke ora ngerti carane merekrut basa anyar iki.

Pungkasan, yen sampeyan pengin ngerti luwih lengkap babagan iki, sampeyan bisa takon ing rincian ing link ing ngisor iki.


Konten artikel kasebut sesuai karo prinsip kita yaiku etika editorial. Kanggo nglaporake klik kesalahan Kene.

Dadi pisanan komentar

Ninggalake komentar sampeyan

Panjenengan alamat email ora bisa diterbitake. Perangkat kothak ditandhani karo *

*

*

  1. Tanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Kontrol SPAM, manajemen komentar.
  3. Legitimasi: idin sampeyan
  4. Komunikasi data: Data kasebut ora bakal dikomunikasikake karo pihak katelu kajaba kanthi kewajiban ukum.
  5. Panyimpenan data: Database sing dianakake dening Occentus Networks (EU)
  6. Hak: Kapan wae sampeyan bisa matesi, mulihake lan mbusak informasi sampeyan.