Édisi kadua patch pikeun kernel Linux kalayan dukungan pikeun basa Rust

Miguel Ojeda, panulis proyék Rust-for-Linux, ngusulkeun pérsi diropéa komponén pikeun pamekaran panggerak alat dina basa Rust pikeun ditimbang ku pamekar kernel Linux. Rojongan karat dianggap ékspérimén, tapi parantos sapuk pikeun dilebetkeun kana cabang linux-hareup. Versi anyar ngaleungitkeun koméntar anu dilakukeun nalika diskusi ngeunaan versi patch munggaran. Linus Torvalds parantos ngiringan diskusi sareng ngusulkeun ngarobih logika pikeun ngolah sababaraha operasi bit.

Émut yén parobihan anu diusulkeun ngamungkinkeun ngagunakeun Rust salaku basa kadua pikeun ngembangkeun supir sareng modul kernel. Pangrojong karat dibere salaku pilihan anu henteu diaktipkeun sacara standar sareng henteu nyababkeun Karat kalebet salaku katergantungan ngawangun anu diperyogikeun pikeun kernel. Ngagunakeun Rust pikeun ngembangkeun supir bakal ngidinan Anjeun pikeun nyieun drivers aman tur hadé kalawan usaha minimal, bébas tina masalah kayaning aksés memori sanggeus freeing, null pointer dereferences, sarta overruns panyangga.

Kasalametan memori disadiakeun dina Rust dina waktos compile ngaliwatan mariksa rujukan, ngalacak kapamilikan obyék sarta hirupna objék (wengkuan), kitu ogé ngaliwatan evaluasi correctness aksés memori salila palaksanaan kode. Karat ogé nyadiakeun panyalindungan ngalawan overflows integer, merlukeun variabel bisa initialized saméméh pamakéan, handles kasalahan hadé dina perpustakaan baku, nerapkeun konsép rujukan immutable sarta variabel sacara standar, sarta nawarkeun ketikan statik kuat pikeun ngaleutikan kasalahan logis.

Parobihan anu paling katingali dina vérsi énggal tina patch:

  • Kode alokasi memori dibébaskeun tina berpotensi ngahasilkeun kaayaan "panik" nalika kasalahan sapertos kaluar tina mémori lumangsung. Varian perpustakaan Rust alloc kaasup, anu ngerjakeun deui kode pikeun nanganan gagal, tapi tujuan pamungkas nyaéta nransferkeun sadaya fitur anu dipikabutuh pikeun kernel kana édisi utama alloc (parobahanna parantos disiapkeun sareng ditransfer ka standar. Perpustakaan Rust).
  • Gantina ngawangun wengi, anjeun ayeuna tiasa nganggo rilis béta sareng rilis stabil tina kompiler rustc pikeun nyusun kernel kalayan dukungan Rust. Ayeuna, rustc 1.54-beta1 dianggo salaku kompiler rujukan, tapi saatos pelepasan 1.54 dileupaskeun dina ahir bulan, éta bakal dirojong salaku kompiler rujukan.
  • Ditambahkeun dukungan pikeun tés tulisan nganggo atribut "#[test]" standar pikeun Rust sareng kamampuan ngagunakeun doctests pikeun dokumén tés.
  • Ditambahkeun dukungan pikeun arsitéktur ARM32 sareng RISCV salian ti x86_64 sareng ARM64 anu dirojong sateuacana.
  • Ningkatkeun palaksanaan GCC Rust (GCC frontend pikeun Rust) sareng rustc_codegen_gcc (rustc backend pikeun GCC), anu ayeuna lulus sadaya tés dasar.
  • Tingkat abstraksi anyar diusulkeun pikeun dianggo dina program Rust tina mékanisme kernel anu ditulis dina C, sapertos tangkal beureum-hideung, objék anu diitung rujukan, nyiptakeun deskriptor file, tugas, file, sareng vektor I/O.
  • Komponén pamekaran supir parantos ningkatkeun dukungan pikeun modul file_operations, modul makro, pendaptaran makro, sareng supir dasar (usik sareng cabut).
  • Binder ayeuna ngadukung ngalangkungan deskriptor file sareng kait LSM.
  • Hiji conto leuwih fungsional supir Rust diusulkeun - bcm2835-rng pikeun hardware angka generator acak tina papan buah prambus Pi.

Salaku tambahan, sababaraha proyék perusahaan anu aya hubunganana sareng panggunaan Rust dina kernel disebatkeun:

  • Microsoft parantos nyatakeun minat pikeun ilubiung dina padamelan pikeun ngahijikeun dukungan Rust kana kernel Linux sareng siap nyayogikeun palaksanaan supir pikeun Hyper-V on Rust dina sasih bulan.
  • ARM berpungsi pikeun ningkatkeun dukungan Rust pikeun sistem basis ARM. Proyék Rust parantos ngusulkeun parobihan anu bakal ngajantenkeun sistem ARM 64-bit janten platform Tier 1.
  • Google langsung nyadiakeun pangrojong pikeun proyék Rust pikeun Linux, ngamekarkeun palaksanaan anyar mékanisme komunikasi antarprosés Binder di Rust, sarta tempo kamungkinan reworking rupa drivers di Rust. Ngaliwatan ISRG (Internet Security Research Group), Google nyayogikeun dana kanggo padamelan pikeun ngahijikeun dukungan Rust kana kernel Linux.
  • IBM parantos ngalaksanakeun dukungan kernel pikeun Rust pikeun sistem PowerPC.
  • Laboratorium LSE (Systems Research Laboratory) parantos ngembangkeun supir SPI di Rust.

sumber: opennet.ru

Tambahkeun komentar