WD NVMe kontrolatzaile bat garatzen ari da Rust-en. Rust-ekin esperimentatzen FreeBSD-en

Egun hauetan egiten ari den Linux Plumbers 2022 konferentzian, Western Digitaleko ingeniari batek NVM-Express (NVMe) interfazea duten SSD unitateetarako kontrolatzaile esperimental baten garapenari buruzko aurkezpena egin zuen, Rust hizkuntzan idatzia eta Linux kernelean exekutatzen dena. maila. Proiektua oraindik garapen-fase batean dagoen arren, probak frogatu dute Rust hizkuntzan NVMe kontrolatzailearen errendimendua nukleoan eskuragarri dagoen C hizkuntzan idatzitako NVMe kontrolatzailearekin bat datorrela.

WD NVMe kontrolatzaile bat garatzen ari da Rust-en. Rust-ekin esperimentatzen FreeBSD-en
WD NVMe kontrolatzaile bat garatzen ari da Rust-en. Rust-ekin esperimentatzen FreeBSD-en

Txostenak dio C-n egungo NVMe kontrolatzailea guztiz asegarria dela garatzaileentzat, baina NVMe azpisistema Rust-en kontrolatzaileak garatzeko bideragarritasuna aztertzeko plataforma ona da, nahiko sinplea delako, oso erabilia, errendimendu eskakizun handiak dituelako eta Konparaziorako erreferentziazko inplementazio frogatua eta hainbat interfaze onartzen ditu (dev, pci, dma, blk-mq, gendisk, sysfs).

Kontuan izan behar da Rust-erako PCI NVMe kontrolatzaileak funtzionamendurako beharrezkoak diren funtzionalitateak eskaintzen dituela dagoeneko, baina oraindik ez dago erabilpen zabalerako prest, hobekuntza indibidualak behar dituelako. Etorkizuneko planak honako hauek dira: lehendik dauden bloke ez-seguruen kodea kentzea, gailuak kentzea eta kontrolatzaileak deskargatzeko eragiketak onartzea, sysfs interfazea onartzea, hasierako alferra ezartzea, blk-mq-erako kontrolatzaile bat sortzea eta queue_rq-erako programazio asinkrono-eredu bat erabiliz esperimentatzea.

Gainera, NCC Taldeak FreeBSD nukleorako Rust hizkuntzan kontrolatzaileak garatzeko egindako esperimentuak ere kontuan izan ditzakegu. Adibide gisa, zehatz-mehatz aztertuko dugu /dev/rustmodule fitxategian idatzitako datuak itzultzen dituen oihartzun kontrolatzaile soil bat. Esperimentazioaren hurrengo fasean, NCC Taldea nukleoaren oinarrizko osagaiak Rust hizkuntzan birlantzeko aukera aztertzen ari da sareko eta fitxategien eragiketen segurtasuna hobetzeko.

Hala ere, Rust lengoaian modulu sinpleak sortzea posible dela frogatu bada ere, Rust FreeBSD nukleoan integrazio estuago batek lan gehiago eskatuko du. Esaterako, azpisistemen eta kernel egituren gainean abstrakzio geruza multzo bat sortzeko beharra aipatzen dute, Rust for Linux proiektuak prestatutako gehigarrien antzera. Etorkizunean, Illumos nukleoarekin antzeko esperimentuak egiteko asmoa dugu eta Rust-en Linux, BSD eta Illumos-en Rust-en idatzitako kontrolatzaileetan erabil daitezkeen abstrakzio arruntak identifikatzea.

Microsoft-en eta Google-ren arabera, beren software-produktuen ahultasunen % 70 inguru memoriaren manipulazio ez-seguruek eragiten dute. Uste da Rust hizkuntza erabiltzeak memoriarekin lan seguruak eragindako ahulezien arriskua murriztea eta memoria eremu batera atzitzea bezalako akatsak ezabatzea, askatu ondoren eta buffer-a gainditzea.

Memoria segurua den manipulazioa Rust-en eskaintzen da konpilazio garaian erreferentziak egiaztatzen, objektuen jabetzaren eta objektuaren bizitzaren (esparrua) jarraipena eginez, baita kodearen exekuzioan memoriarako sarbidearen zuzentasunaren ebaluazioaren bidez ere. Rust-ek osoko gainezkatzeen aurkako babesa eskaintzen du, erabili aurretik aldagaien balioak derrigorrezko hasieratzea eskatzen du, liburutegi estandarrean akatsak hobeto kudeatzen ditu, erreferentzia eta aldagai aldaezinen kontzeptua lehenespenez aplikatzen du, idazketa estatiko sendoa eskaintzen du akats logikoak minimizatzeko.

Iturria: opennet.ru

Gehitu iruzkin berria