Mae WD yn datblygu gyrrwr NVMe yn Rust. Arbrofi gyda Rust ar FreeBSD

Yng nghynhadledd Linux Plumbers 2022 a gynhelir y dyddiau hyn, rhoddodd peiriannydd o Western Digital gyflwyniad ar ddatblygiad gyrrwr arbrofol ar gyfer gyriannau SSD gyda'r rhyngwyneb NVM-Express (NVMe), wedi'i ysgrifennu yn yr iaith Rust ac yn rhedeg yn y cnewyllyn Linux lefel. Er gwaethaf y ffaith bod y prosiect yn dal i fod mewn cyfnod cynnar o ddatblygiad, mae profion wedi dangos bod perfformiad y gyrrwr NVMe yn yr iaith Rust yn cyfateb i'r gyrrwr NVMe a ysgrifennwyd yn yr iaith C sydd ar gael yn y cnewyllyn.

Mae WD yn datblygu gyrrwr NVMe yn Rust. Arbrofi gyda Rust ar FreeBSD
Mae WD yn datblygu gyrrwr NVMe yn Rust. Arbrofi gyda Rust ar FreeBSD

Mae'r adroddiad yn nodi bod y gyrrwr NVMe presennol yn C yn gwbl foddhaol i ddatblygwyr, ond mae'r is-system NVMe yn llwyfan da ar gyfer archwilio dichonoldeb datblygu gyrwyr yn Rust, gan ei fod yn eithaf syml, yn cael ei ddefnyddio'n eang, mae ganddo ofynion perfformiad uchel, ac mae ganddo gweithrediad cyfeirio profedig ar gyfer cymharu ac mae'n cefnogi rhyngwynebau amrywiol (dev, pci, dma, blk-mq, gendisk, sysfs).

Nodir bod y gyrrwr PCI NVMe ar gyfer Rust eisoes yn darparu'r swyddogaeth angenrheidiol ar gyfer gweithredu, ond nid yw eto'n barod i'w ddefnyddio'n eang, gan fod angen gwelliannau unigol arno. Mae cynlluniau ar gyfer y dyfodol yn cynnwys cael gwared ar god blociau anniogel sy'n bodoli eisoes, cefnogi gweithrediadau tynnu dyfeisiau a dadlwytho gyrwyr, cefnogi'r rhyngwyneb sysfs, gweithredu cychwyniad diog, creu gyrrwr ar gyfer blk-mq, ac arbrofi â defnyddio model rhaglennu asyncronaidd ar gyfer queue_rq.

Yn ogystal, gallwn nodi'r arbrofion a gynhaliwyd gan Grŵp NCC i ddatblygu gyrwyr yn yr iaith Rust ar gyfer y cnewyllyn FreeBSD. Er enghraifft, rydym yn archwilio gyrrwr adlais syml yn fanwl sy'n dychwelyd data a ysgrifennwyd i'r ffeil /dev/rustmodule. Yn ystod cam nesaf yr arbrofi, mae Grŵp NCC yn ystyried y posibilrwydd o ail-weithio cydrannau craidd y cnewyllyn yn yr iaith Rust i wella diogelwch gweithrediadau rhwydwaith a ffeiliau.

Fodd bynnag, er y dangoswyd ei bod yn bosibl creu modiwlau syml yn yr iaith Rust, bydd angen gwaith ychwanegol i integreiddio Rust yn dynnach i gnewyllyn FreeBSD. Er enghraifft, maent yn sôn am yr angen i greu set o haenau tynnu dros yr is-systemau a strwythurau cnewyllyn, yn debyg i'r ychwanegion a baratowyd gan brosiect Rust for Linux. Yn y dyfodol, rydym yn bwriadu cynnal arbrofion tebyg gyda'r cnewyllyn Illumos a nodi tyniadau cyffredin yn Rust y gellid eu defnyddio mewn gyrwyr a ysgrifennwyd yn Rust ar gyfer Linux, BSD ac Illumos.

Yn ôl Microsoft a Google, mae tua 70% o wendidau eu cynhyrchion meddalwedd yn cael eu hachosi gan drin cof anniogel. Disgwylir y bydd defnyddio'r iaith Rust yn lleihau'r risg o wendidau a achosir gan waith anniogel gyda'r cof, ac yn dileu gwallau megis cyrchu man cof ar ôl iddo gael ei ryddhau a gor-redeg y byffer.

Darperir diogelwch cof yn Rust ar amser llunio trwy wirio cyfeiriadau, cadw golwg ar berchnogaeth gwrthrych ac oes gwrthrych (cwmpas), yn ogystal â thrwy werthuso cywirdeb mynediad cof wrth weithredu cod. Mae Rust hefyd yn darparu amddiffyniad rhag gorlifiadau cyfanrif, yn gofyn am ymgychwyn gorfodol o werthoedd amrywiol cyn ei ddefnyddio, yn trin gwallau yn well yn y llyfrgell safonol, yn cymhwyso'r cysyniad o gyfeiriadau a newidynnau digyfnewid yn ddiofyn, yn cynnig teipio statig cryf i leihau gwallau rhesymegol.

Ffynhonnell: opennet.ru

Ychwanegu sylw