WD e nts'etsapele mokhanni oa NVMe ho Rust. Ho leka ka Rust ho FreeBSD

Sebokeng se ntseng se tsoela pele sa Linux Plumbers 2022 matsatsing ana, moenjineri ea tsoang Western Digital o ile a fana ka tlhahiso mabapi le nts'etsopele ea mokhanni oa liteko bakeng sa li-NVM-Express (NVMe) SSD tse ngotsoeng ka Rust le tse sebetsang boemong ba Linux kernel. Ho sa tsotellehe taba ea hore morero o ntse o le boemong ba pele ba tsoelo-pele, tlhahlobo e entsoeng e bontšitse hore ts'ebetso ea mokhanni oa Rust NVMe e lumellana le mokhanni oa NVMe o ngotsoeng ka C ka kernel.

WD e nts'etsapele mokhanni oa NVMe ho Rust. Ho leka ka Rust ho FreeBSD
WD e nts'etsapele mokhanni oa NVMe ho Rust. Ho leka ka Rust ho FreeBSD

Tlaleho e re mokhanni oa hona joale oa NVMe ho C o khotsofatsa ka ho feletseng bakeng sa bahlahisi, empa tsamaiso ea NVMe ke sethala se setle sa ho hlahloba bokhoni ba ho ntlafatsa bakhanni ba Rust, kaha e bonolo, e sebelisoa haholo, e na le litlhoko tse phahameng tsa ts'ebetso, 'me e na le. ho bapisa le ho ts'ehetsa likhokahano tse fapaneng (dev, pci, dma, blk-mq, gendisk, sysfs).

Hoa hlokomeleha hore mokhanni oa Rust PCI NVMe o se a ntse a fana ka ts'ebetso e hlokahalang bakeng sa ts'ebetso, empa ha e e-s'o lokele ho sebelisoa hohle, kaha e hloka ntlafatso e fapaneng. Merero ea bokamoso e kenyelletsa ho tlosa li-blocks tse seng li ntse li le teng tse sa sireletsehang, ts'ehetso ea ho tlosa sesebelisoa le ho laolla mokhanni, ho ts'ehetsa sebopeho sa sysfs, ho kenya ts'ebetsong ho qalisoa ha botsoa, ​​ho theha mokhanni oa blk-mq, le ho leka mokhoa oa ho etsa li-asynchronous bakeng sa queue_rq.

Ho feta moo, re ka hlokomela liteko tse entsoeng ke Sehlopha sa NCC ho nts'etsapele bakhanni ka puo ea Rust bakeng sa kernel ea FreeBSD. Mohlala, mokhanni o bonolo oa echo o khutlisetsang data e ngotsoeng ho file /dev/rustmodule e hlahlojoa ka botlalo. Karolong e latelang ea liteko, Sehlopha sa NCC se nahana ka ho lokisa likarolo tsa mantlha tsa Rust ho ntlafatsa ts'ireletso ea ts'ebetso ea marang-rang le lifaele.

Ho boleloa joalo, le hoja ho bontšitsoe hore ho ka khoneha ho etsa li-modules tse bonolo ho Rust, ho kopanya ho thata ha Rust ho kernel ea FreeBSD ho tla hloka mosebetsi o eketsehileng. Mohlala, e bua ka tlhokeho ea ho theha sete ea likarolo tse ka thoko holim'a li-subsystems le meaho ea kernel, e ts'oanang le litlatsetso tse lokiselitsoeng ke morero oa Rust bakeng sa Linux. Nakong e tlang, ho reriloe ho etsa liteko tse ts'oanang le motheo oa Illumos le ho totobatsa lintlha tse tloaelehileng tsa Rust tse ka sebelisoang ho bakhanni ba ngotsoeng ke Rust bakeng sa Linux, BSD le Illumos.

Ho latela Microsoft le Google, hoo e ka bang 70% ea bofokoli lihlahisoa tsa bona tsa software e bakoa ke taolo e sa bolokehang ea memori. Ho nahanoa hore tšebeliso ea puo ea Rust e tla fokotsa kotsi ea bofokoli bo bakoang ke ho tšoara mohopolo o sa sireletsehang, le ho felisa ho hlaha ha liphoso tse kang ho fumana sebaka sa memori ka mor'a hore e lokolloe le ho feta ha buffer.

Ho sebetsa ka mokhoa o sireletsehileng oa memori ho fanoa ka Rust ka nako ea ho bokella ka ho hlahloba litšupiso, ho boloka tlaleho ea botho ba ntho le nako ea bophelo ba ntho (scope), hammoho le ka tlhahlobo ea ho nepahala ha phihlello ea mohopolo nakong ea ts'ebetso ea khoutu. Rust e boetse e fana ka ts'ireletso khahlano le phallo e felletseng, e hloka ho qalisoa ha boleng bo fapaneng pele e sebelisoa, e sebetsana le liphoso hantle laeboraring e tloaelehileng, e sebelisa mohopolo oa litšupiso tse ke keng tsa fetoha le tse fapaneng ka mokhoa o ikhethileng, e fana ka ho thaepa ho tiileng ho fokotsa liphoso tse utloahalang.

Source: opennet.ru

Eketsa ka tlhaloso