Zweet Editioun vu Patches fir de Linux Kernel mat Ënnerstëtzung fir d'Rust Sprooch

De Miguel Ojeda, Auteur vum Rust-for-Linux Projet, huet eng aktualiséiert Versioun vu Komponenten proposéiert fir Gerät Treiber an der Rust Sprooch ze entwéckelen fir d'Rücksicht vu Linux Kernel Entwéckler. Rust Ënnerstëtzung gëtt als experimentell ugesinn, awer ass scho fir Inklusioun an der Linux-nächst Branche ausgemaach ginn. Déi nei Versioun eliminéiert d'Kommentaren während der Diskussioun vun der éischter Versioun vun de Patches. De Linus Torvalds ass scho mat der Diskussioun bäitrieden a proposéiert d'Logik ze änneren fir e puer Bitoperatiounen ze veraarbecht.

Erënneren, datt déi proposéiert Ännerungen maachen et méiglech Rust als zweet Sprooch ze benotzen fir Chauffeuren an Kär Moduler Entwécklungslänner. Rust Ënnerstëtzung gëtt als eng Optioun presentéiert déi net als Standard aktivéiert ass an net resultéiert datt Rust als erfuerderlech Build Ofhängegkeet fir de Kernel abegraff ass. Mat Rust fir Chauffeurentwécklung erlaabt Iech méi sécher a besser Chauffeuren mat minimalem Ustrengung ze kreéieren, fräi vu Probleemer wéi Erënnerungszougang no der Befreiung, Null Pointer-Dereferenzen, a Pufferiwwerschëss.

Gedächtnissécher Handhabung gëtt a Rust zur Kompiléierungszäit duerch Referenzkontrolle geliwwert, d'Objetbesëtzung an d'Liewensdauer vum Objekt (Ëmfang) verfollegen, souwéi duerch d'Evaluatioun vun der Richtegkeet vum Erënnerungszougang wärend der Code Ausféierung. Rust bitt och Schutz géint ganz Zuelen Iwwerschwemmungen, erfuerdert obligatoresch Initialiséierung vu variabelen Wäerter virum Gebrauch, handhabt Feeler besser an der Standardbibliothéik, applizéiert d'Konzept vun onverännerleche Referenzen a Variablen als Standard, bitt staark statesch Tippen fir logesch Feeler ze minimiséieren.

Déi merkbarst Ännerungen an der neier Versioun vun de Patches:

  • De Gedächtnisallokatiounscode ass befreit fir potenziell e "Panik" Staat ze generéieren wann Feeler wéi aus Erënnerung optrieden. Eng Variant vun der Rust Alloc Bibliothéik ass abegraff, déi de Code ëmschafft fir Feeler ze handhaben, awer dat ultimativt Zil ass all d'Features, déi fir de Kernel néideg sinn, op d'Haapteditioun vum Alloc ze transferéieren (d'Ännerunge si scho virbereet an op de Standard transferéiert ginn Rust Bibliothéik).
  • Amplaz vun Nightly Builds, kënnt Dir elo Beta Verëffentlechungen a stabile Verëffentlechungen vum Rustc Compiler benotzen fir e Kernel mat Rust Support ze kompiléieren. De Moment gëtt rustc 1.54-beta1 als Referenz Compiler benotzt, awer nodeems d'1.54 Verëffentlechung um Enn vum Mount verëffentlecht gëtt, gëtt et als Referenz Compiler ënnerstëtzt.
  • Ënnerstëtzung bäigefüügt fir Tester ze schreiwen mat dem Standard "#[test]" Attribut fir Rust an d'Fäegkeet fir Doktests ze benotzen fir Tester ze dokumentéieren.
  • Zousätzlech Ënnerstëtzung fir ARM32 an RISCV Architekturen zousätzlech zu virdrun ënnerstëtzt x86_64 an ARM64.
  • Verbesserte Implementatioune vu GCC Rust (GCC Frontend fir Rust) an rustc_codegen_gcc (rustc Backend fir GCC), déi elo all Basis Tester passéiert.
  • En neien Abstraktiounsniveau gëtt proposéiert fir ze benotzen an Rust Programmer vu Kernelmechanismus, déi am C geschriwwe sinn, sou wéi rout-schwaarz Beem, Referenz-gezielt Objeten, Dateideskriptor Kreatioun, Aufgaben, Dateien an I/O Vektoren.
  • D'Treiberentwécklungskomponenten hunn d'Ënnerstëtzung fir de File_operations Modul verbessert, de Modul! Makro, Makroregistrierung, a rudimentäre Chauffeuren (Sonde an ewechhuelen).
  • Binder ënnerstëtzt elo Passage vun Dateideskriptoren an LSM Haken.
  • E méi funktionellt Beispill vun engem Rust Chauffer gëtt proposéiert - bcm2835-rng fir den Hardware Zoufallsnummergenerator vu Raspberry Pi Boards.

Zousätzlech ginn e puer Firmenprojeten am Zesummenhang mat der Notzung vu Rust am Kernel ernimmt:

  • Microsoft huet Interesse ausgedréckt fir un der Aarbecht deelzehuelen fir Rust Support an de Linux Kernel z'integréieren an ass prett fir Treiberimplementatiounen fir Hyper-V op Rust an de kommende Méint ze bidden.
  • ARM schafft fir Rust Ënnerstëtzung fir ARM-baséiert Systemer ze verbesseren. De Rust Projet huet scho Ännerunge proposéiert déi 64-Bit ARM Systemer zu enger Tier 1 Plattform maachen.
  • Google bitt direkt Ënnerstëtzung fir de Rust fir Linux Projet, entwéckelt eng nei Implementatioun vum Binder Interprocess Kommunikatiounsmechanismus am Rust, a berücksichtegt d'Méiglechkeet fir verschidde Chauffeuren am Rust ëmzeschaffen. Duerch ISRG (Internet Security Research Group) huet Google Finanzéierung fir d'Aarbecht zur Verfügung gestallt fir Rust Support an de Linux Kernel z'integréieren.
  • IBM huet Kernel Support fir Rust fir PowerPC Systemer implementéiert.
  • Den LSE (Systems Research Laboratory) Laboratoire huet e SPI Chauffer zu Rust entwéckelt.

Source: opennet.ru

Setzt e Commentaire