WD li Rust ajokerek NVMe pêşve dike. Li ser FreeBSD bi Rust re ceribandin

Di konferansa Linux Plumbers 2022 de ku van rojan pêk tê, endezyarek ji Western Digital pêşandanek li ser pêşkeftina ajokerek ezmûnî ji bo ajokarên SSD bi navgîniya NVM-Express (NVMe), ku bi zimanê Rust hatî nivîsandin û li kernel Linux-ê tê xebitandin, pêşkêş kir. deşt. Tevî vê rastiyê ku proje hîn di qonaxek destpêkê ya pêşkeftinê de ye, ceribandinê destnîşan kir ku performansa ajokera NVMe di zimanê Rust de bi ajokera NVMe ya ku bi zimanê C-ya ku di kernelê de heye hatî nivîsandin re têkildar e.

WD li Rust ajokerek NVMe pêşve dike. Li ser FreeBSD bi Rust re ceribandin
WD li Rust ajokerek NVMe pêşve dike. Li ser FreeBSD bi Rust re ceribandin

Di raporê de tê gotin ku ajokera NVMe ya heyî di C de ji bo pêşdebiran bi tevahî têrker e, lê binepergala NVMe ji bo vekolîna fersendiya pêşkeftina ajokaran li Rust platformek baş e, ji ber ku ew pir hêsan e, bi berfirehî tête bikar anîn, xwedan pêdiviyên performansa bilind e, û xwedî pêkanîna referansa îsbatkirî ji bo berhevdanê û pêvekên cihêreng piştgirî dike (dev, pci, dma, blk-mq, gendisk, sysfs).

Tê zanîn ku ajokera PCI NVMe ji bo Rust jixwe fonksiyona ku ji bo xebitandinê hewce dike peyda dike, lê hîn ji bo karanîna berbelav ne amade ye, ji ber ku ew hewceyê pêşkeftinên kesane dike. Planên pêşerojê paqijkirina kodê ji blokên ne ewledar ên heyî, piştgirîkirina operasyonên rakirina cîhazê û barkirina ajokerê, piştgirîkirina navbeynkariya sysfs, bicihanîna destpêkirina lazî, afirandina ajokerek ji bo blk-mq, û ceribandina karanîna modelek bernamesaziya asynkron ji bo queue_rq pêk tîne.

Wekî din, em dikarin ceribandinên ku ji hêla Koma NCC ve hatine kirin destnîşan bikin da ku ajokarên bi zimanê Rust ji bo kernelê FreeBSD pêşve bibin. Wekî mînak, em bi hûrgulî ajokerek echo ya hêsan ku daneyên ku li pelê hatî nivîsandin vedigerînin /dev/rustmodule. Di qonaxa paşîn a ceribandinê de, Koma NCC îhtîmala ji nû ve xebitandina pêkhateyên bingehîn ên kernelê bi zimanê Rust difikire da ku ewlehiya karûbarên torê û pelan baştir bike.

Lêbelê, her çend hate destnîşan kirin ku gengaz e ku meriv modulên hêsan bi zimanê Rust biafirîne jî, entegrekirina Rust-ê di nav kernelê FreeBSD de dê hewceyê xebatek zêde bike. Mînakî, ew behsa hewcedariya afirandina komek qatên abstractionê li ser bine-pergal û strukturên kernel dikin, mîna pêvekên ku ji hêla projeya Rust ji bo Linux ve hatine amadekirin. Di pêşerojê de, em plan dikin ku bi kernel Illumos re ceribandinên bi vî rengî bikin û abstraksyonên hevpar ên di Rust de nas bikin ku dikarin di ajokarên ku di Rust de ji bo Linux, BSD û Illumos hatine nivîsandin de werin bikar anîn.

Li gorî Microsoft û Google, nêzîkê 70% ji qelsiyên di hilberên nermalava wan de ji ber birêvebirina bîranîna ne ewle ne. Tê çaverêkirin ku karanîna zimanê Rust dê xetera qelsiyên ku ji ber xebata neewle ya bi bîranînê re çêdibin kêm bike, û rûdana xeletiyên wekî gihîştina deverek bîranînê piştî ku ew azad bû û derbaskirina tamponê ji holê rabike.

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.

Source: opennet.ru

Add a comment