Versi anyar patch kanggo kernel Linux kanthi dhukungan kanggo basa Rust

Miguel Ojeda, penulis proyek Rust-for-Linux, ngusulake rilis komponen v5 kanggo ngembangake driver piranti ing basa Rust kanggo dipikirake dening pangembang kernel Linux. Iki minangka edisi kaping enem saka patches, kanthi njupuk versi pisanan, diterbitake tanpa nomer versi. Dhukungan karat dianggep minangka eksperimen, nanging wis kalebu ing cabang linux-sabanjurΓ© lan cukup dikembangakΓ© kanggo miwiti gawΓ© lapisan abstraksi liwat subsistem kernel, uga nulis driver lan modul. Pangembangan kasebut didanai dening Google lan ISRG (Internet Security Research Group), sing dadi pendiri proyek Let's Encrypt lan promosi HTTPS lan pangembangan teknologi kanggo nambah keamanan Internet.

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.

Versi anyar saka tembelan terus ngilangi komentar sing digawe sajrone diskusi babagan tembelan pisanan, kaloro, katelu, papat lan kaping lima. Ing versi anyar:

  • Toolkit wis dianyari kanggo release Rust 1.59.0. A varian saka perpustakaan alloc uga diselarasake karo versi anyar Rust, ngilangke generasi bisa saka negara "gupuh" nalika ana kasalahan, kayata metu saka memori. Kemampuan kanggo nggunakake sisipan assembler ("fitur(global_asm)") wis stabil.
  • Dhukungan tambahan kanggo nggawe program host ing Rust sing digunakake sajrone kompilasi kernel.
  • Tinimbang ngirim file spesifikasi platform target sing wis digawe, file kasebut digawe kanthi dinamis adhedhasar konfigurasi kernel.
  • Nambahake parameter kernel HAVE_RUST kanggo ngaktifake arsitektur sing ndhukung Rust.
  • Abstractions ngajokaken kanggo nggunakake kode Rust kanggo generator nomer pseudo-acak hardware.
  • Diijini nggunakake kode kesalahan tanpa awalan "Error::" (contone, "return Err(EINVAL)") kanggo kira-kira penanganan kode kesalahan ing C.
  • Added "CString" jinis kanggo adat C-strings. Jinis Formatter lan Buffer wis digabungake.
  • Nambahake jinis Bool lan LockInfo.
  • Implementasi kunci muter wis disederhanakake.

Source: opennet.ru

Add a comment