Çapa duyemîn a patchên ji bo kernel Linux bi piştgiriya ji bo zimanê Rust

Miguel Ojeda, nivîskarê projeya Rust-for-Linux, guhertoyek nûvekirî ya pêkhateyan ji bo pêşdebirina ajokarên cîhazê bi zimanê Rust pêşniyar kir ku ji hêla pêşdebirên kernel Linux ve were nirxandin. Piştgiriya Rust wekî ceribandinek tête hesibandin, lê jixwe ji bo tevlêbûna di şaxê linux-a pêş de li ser hate pejirandin. Guhertoya nû şîroveyên ku di dema nîqaşa guhertoya yekem a paçeyan de hatine kirin ji holê radike. Linus Torvalds jixwe tevlî nîqaşê bûye û guherandina mantiqê ji bo pêkanîna hin operasyonên bit pêşniyar kiriye.

Bînin bîra xwe ku guheztinên pêşniyarkirî dihêle ku hûn Rust wekî zimanek duyemîn ji bo pêşvebirina ajokar û modulên kernel bikar bînin. Piştgiriya Rust wekî vebijarkek ku ji hêla xwerû ve nehatiye çalak kirin tê pêşkêş kirin û nahêle ku Rust wekî pêwendiyek çêkirî ya pêdivî ya ji bo kernelê tevbigere. Bikaranîna Rust ji bo pêşkeftina ajokerê dê bihêle ku hûn bi hewildanek hindiktirîn ajokarên ewledar û çêtir biafirînin, ji pirsgirêkên wekî gihandina bîranînê piştî azadkirinê, veqetandina nîşana betal, û derbasbûna tamponê.

Desthilatdariya ewledar a bîranînê di Rust de di dema berhevkirinê de bi kontrolkirina referansê, şopandina xwedaniya tiştan û dema jiyanê (çarçove) û her weha bi nirxandina rastbûna gihîştina bîranînê di dema darvekirina kodê de tê peyda kirin. Rust di heman demê de parastinê li hember hejmarên bêkêmasî peyda dike, hewce dike ku guhêrbar berî bikarbînê werin destpêkirin, di pirtûkxaneya standard de xeletiyan çêtir digire, têgeha referansên neguhêrbar û guhêrbar ji hêla xwerû ve bicîh tîne, û nivîsandina statîk a bihêz pêşkêşî dike da ku xeletiyên mantiqî kêm bike.

Guhertinên herî berbiçav ên di guhertoya nû ya patchan de:

  • Koda veqetandina bîranînê dema ku xeletiyên wekî ji bîrbûnê çêdibin ji potansiyela afirandina rewşek "panîkê" tê xilas kirin. Guhertoyek pirtûkxaneya Rust alloc tê de ye, ku kodê ji nû ve dixebitîne da ku têkçûnan bi rê ve bibe, lê armanca dawîn ev e ku hemî taybetmendiyên ku ji bo kernelê hewce ne veguhezîne çapa sereke ya allocê (guhertin jixwe hatine amade kirin û veguheztin standard Pirtûkxaneya Rust).
  • Li şûna avahiyên şevê, hûn naha dikarin serbestberdanên beta û serbestberdanên domdar ên berhevkarê rustc bikar bînin da ku kernelek bi piştgiriya Rust berhev bikin. Heya nuha, rustc 1.54-beta1 wekî berhevkarê referansê tê bikar anîn, lê piştî ku serbestberdana 1.54 di dawiya mehê de were berdan, ew ê wekî berhevkarê referansê were piştgirî kirin.
  • Piştgiriyek ji bo nivîsandina testan bi karanîna taybetmendiya standard "#[test]" ji bo Rust û şiyana karanîna doctestan ji bo belgekirina testan zêde kir.
  • Piştgiriya ji bo mîmarên ARM32 û RISCV ji bilî x86_64 û ARM64-ê yên berê piştgirî lê zêde kir.
  • Bicîhkirinên pêşkeftî yên GCC Rust (beriya GCC ji bo Rust) û rustc_codegen_gcc (paşgiriya rustc ji bo GCC), ku naha hemî ceribandinên bingehîn derbas dike.
  • Asta nû ya abstraksiyonê ji bo karanîna di bernameyên Rust ên mekanîzmayên kernelê yên ku bi C-yê hatine nivîsandin, wekî darên sor-reş, tiştên ku bi referans têne hejmartin, çêkirina ravekera pelan, peywir, pel, û vektorên I/O, têne pêşniyar kirin.
  • Parçeyên pêşkeftina ajokerê ji bo modula file_operations, modul! makro, qeydkirina makro, û ajokarên bingehîn piştgirî çêtir kirine (lêkolîn û jêbirin).
  • Binder naha ravekerên pelan û çengên LSM-ê yên derbasbûyî piştgirî dike.
  • Nimûneyek fonksiyoneltir a ajokerek Rust tê pêşniyar kirin - bcm2835-rng ji bo hilberînerê jimareya rasthatî ya hardware ya panelên Raspberry Pi.

Wekî din, projeyên hin pargîdaniyan ên têkildarî karanîna Rust di kernel de têne destnîşan kirin:

  • Microsoft eleqeya xwe bi beşdarbûna xebata ji bo entegrekirina piştgiriya Rust di nav kernel Linux de nîşan da û amade ye ku di mehên pêş de sepandinên ajokerê ji bo Hyper-V li Rust peyda bike.
  • ARM ji bo baştirkirina piştgiriya Rust ji bo pergalên ARM-ê dixebite. Projeya Rust jixwe guhertinên ku dê pergalên ARM 64-bit bike platformek Tier 1 pêşniyar kiriye.
  • Google rasterast ji bo projeya Rust ji bo Linux piştgirî peyda dike, pêkanîna nû ya mekanîzmaya pêwendiya pêvajoya Binder li Rust pêşve dike, û îhtîmala ji nû ve xebitandina ajokarên cihêreng li Rust difikire. Bi navgîniya ISRG (Koma Lêkolîna Ewlekariya Înternetê), Google ji bo xebata ku piştgirîya Rust di nav kernel Linux de yek bike fon peyda kir.
  • IBM ji bo pergalên PowerPC ji bo Rust piştgirîya kernel bicîh kiriye.
  • Laboratuvara LSE (Systems Research Laboratory) ajokarek SPI li Rust pêşxistiye.

Source: opennet.ru

Add a comment