Edisi kapindho patch kanggo kernel Linux kanthi dhukungan kanggo basa Rust

Miguel Ojeda, penulis proyek Rust-for-Linux, ngusulake versi komponen sing dianyari kanggo ngembangake driver piranti ing basa Rust kanggo dipikirake dening pangembang kernel Linux. Dhukungan karat dianggep eksperimen, nanging wis disepakati kanggo dilebokake ing cabang linux-sabanjurΓ©. Versi anyar ngilangi komentar sing digawe nalika diskusi babagan versi patch pisanan. Linus Torvalds wis melu diskusi lan ngusulake ngganti logika kanggo ngolah sawetara operasi.

Elinga yen owah-owahan sing diusulake bisa nggunakake Rust minangka basa liya kanggo ngembangake driver lan modul kernel. Dhukungan Rust ditampilake minangka pilihan sing ora diaktifake kanthi standar lan ora nyebabake Rust kalebu minangka ketergantungan mbangun sing dibutuhake kanggo kernel. Nggunakake Rust kanggo pangembangan driver bakal ngidini sampeyan nggawe driver sing luwih aman lan luwih apik kanthi gaweyan minimal, bebas saka masalah kayata akses memori sawise dibebasake, dereferensi null pointer, lan overruns buffer.

Penanganan memori-aman diwenehake ing Rust ing wektu kompilasi liwat mriksa referensi, nglacak kepemilikan obyek lan umur obyek (skop), uga liwat evaluasi bener saka akses memori sak eksekusi kode. Rust uga menehi pangayoman marang overflows integer, mbutuhake initialization prentah saka nilai variabel sadurunge digunakake, Ngalahake kasalahan luwih apik ing perpustakaan standar, ditrapake konsep referensi immutable lan variabel minangka standar, nawakake typing statis kuwat kanggo nyilikake kesalahan logis.

Owah-owahan sing paling katon ing versi patch anyar:

  • Kode alokasi memori dibebasake saka potensial ngasilake negara "gupuh" nalika ana kesalahan kayata metu saka memori. Varian saka perpustakaan Rust alloc kalebu, sing nggarap kode kanggo nangani kegagalan, nanging tujuan utama yaiku nransfer kabeh fitur sing dibutuhake kanggo kernel menyang edisi utama alloc (pangowahan wis disiapake lan ditransfer menyang standar. Pustaka Rust).
  • Tinimbang mbangun wengi, saiki sampeyan bisa nggunakake rilis beta lan rilis stabil kompiler rustc kanggo nyusun kernel kanthi dhukungan Rust. Saiki, rustc 1.54-beta1 digunakake minangka compiler referensi, nanging sawise release 1.54 dirilis ing pungkasan sasi, iku bakal didhukung minangka compiler referensi.
  • Dhukungan ditambahake kanggo tes nulis nggunakake atribut "#[test]" standar kanggo Rust lan kemampuan nggunakake doctests kanggo dokumen tes.
  • Dhukungan ditambahake kanggo arsitektur ARM32 lan RISCV saliyane x86_64 lan ARM64 sing wis didhukung sadurunge.
  • Apik implementasine saka GCC Rust (GCC frontend kanggo Rust) lan rustc_codegen_gcc (rustc backend kanggo GCC), kang saiki liwat kabeh tes dhasar.
  • Tingkat abstraksi anyar diusulake kanggo digunakake ing program Rust saka mekanisme kernel sing ditulis ing C, kayata wit abang-ireng, obyek sing diitung referensi, nggawe deskriptor file, tugas, file, lan vektor I/O.
  • Komponen pangembangan driver wis nambah dhukungan kanggo modul file_operations, modul! makro, registrasi makro, lan driver dhasar (probe lan mbusak).
  • Binder saiki ndhukung passing deskriptor file lan LSM pancingan.
  • Conto liyane fungsi driver Rust ngajokaken - bcm2835-rng kanggo hardware nomer generator acak saka Papan Raspberry Pi.

Kajaba iku, sawetara proyek perusahaan sing ana gandhengane karo panggunaan Rust ing kernel kasebut:

  • Microsoft wis nyatakake minat kanggo melu kerja kanggo nggabungake dhukungan Rust menyang kernel Linux lan siap nyedhiyakake implementasi driver kanggo Hyper-V on Rust ing sawetara wulan sabanjure.
  • ARM digunakake kanggo nambah dhukungan Rust kanggo sistem basis ARM. Proyek Rust wis ngusulake owah-owahan sing bakal nggawe sistem ARM 64-bit dadi platform Tier 1.
  • Google langsung nyedhiyakake dhukungan kanggo proyek Rust kanggo Linux, ngembangake implementasi anyar mekanisme komunikasi antarproses Binder ing Rust, lan nimbang kemungkinan nggarap macem-macem driver ing Rust. Liwat ISRG (Internet Security Research Group), Google nyedhiyakake dana kanggo karya kanggo nggabungake dhukungan Rust menyang kernel Linux.
  • IBM wis ngetrapake dhukungan kernel kanggo sistem Rust kanggo PowerPC.
  • Laboratorium LSE (Systems Research Laboratory) wis ngembangake driver SPI ing Rust.

Source: opennet.ru

Add a comment