By die konferensie wat deesdae plaasvind Linux By Plumbers 2022 het 'n Western Digital-ingenieur 'n verslag aangebied oor die ontwikkeling van 'n eksperimentele kernvlak-drywer vir NVM-Express (NVMe) SSD's, geskryf in Rust. LinuxAlhoewel die projek nog in sy vroeΓ« stadiums van ontwikkeling is, het toetse getoon dat die werkverrigting van die Rust-gebaseerde NVMe-drywer vergelykbaar is met die in-kern NVMe-drywer wat in C geskryf is.


Die verslag meld dat die huidige NVMe-bestuurder in C heeltemal bevredigend is vir ontwikkelaars, maar die NVMe-substelsel is 'n goeie platform om die haalbaarheid van die ontwikkeling van drywers in Rust te ondersoek, aangesien dit redelik eenvoudig is, wyd gebruik word, hoΓ« werkverrigtingvereistes het, en het 'n bewese verwysingsimplementering vir vergelyking en ondersteun verskeie koppelvlakke (dev, pci, dma, blk-mq, gendisk, sysfs).
Daar word kennis geneem dat die PCI NVMe-bestuurder vir Rust reeds die funksionaliteit verskaf wat nodig is vir werking, maar nog nie gereed is vir wydverspreide gebruik nie, aangesien dit individuele verbeterings vereis. Toekomstige planne sluit in die verwydering van die kode van bestaande onveilige blokke, die ondersteuning van toestelverwydering en die aflaai van die bestuurder, die ondersteuning van die sysfs-koppelvlak, die implementering van lui initialisering, die skep van 'n drywer vir blk-mq, en eksperimentering met die gebruik van 'n asinchroniese programmeringsmodel vir queue_rq.
Daarbenewens kan ons let op die eksperimente wat deur die NCC-groep uitgevoer is om drywers in die Rust-taal vir die FreeBSD-kern te ontwikkel. As voorbeeld ondersoek ons ββin detail 'n eenvoudige eggo-bestuurder wat data terugstuur wat na die lΓͺer /dev/rustmodule geskryf is. In die volgende fase van eksperimentering oorweeg die NCC Groep die moontlikheid om die kernkomponente van die kern in die Rust-taal te herwerk om die sekuriteit van netwerk- en lΓͺerbedrywighede te verbeter.
Alhoewel die vermoΓ« om eenvoudige modules in Rust te skep gedemonstreer is, sal 'n nouer integrasie van Rust in die FreeBSD-kern addisionele werk vereis. Byvoorbeeld, die behoefte om 'n stel abstraksielae oor kernsubstelsels en -strukture te skep, soortgelyk aan die raamwerke wat deur die Rust-projek ontwikkel is, word genoem. LinuxIn die toekoms beplan ons om soortgelyke eksperimente met die Illumos-kern uit te voer en algemene abstraksies in Rust te identifiseer wat in drywers wat in Rust geskryf is, gebruik kan word vir ... Linux, BSD en Illumos.
Volgens Microsoft en Google word ongeveer 70% van kwesbaarhede in hul sagtewareprodukte veroorsaak deur onveilige geheuehantering. Daar word verwag dat die gebruik van die Rust-taal die risiko van kwesbaarhede wat veroorsaak word deur onveilige werk met geheue sal verminder, en die voorkoms van foute sal uitskakel, soos toegang tot 'n geheue-area nadat dit vrygestel is en die buffer oorskry.
Geheueveiligheid word tydens samestellingstyd in Rust verskaf deur verwysingskontrolering, hou van objekeienaarskap en objekleeftyd (omvang), asook deur evaluering van die korrektheid van geheuetoegang tydens kode-uitvoering. Roes bied ook beskerming teen heelgetal-oorvloei, vereis dat veranderlikes geΓ―nisialiseer word voor gebruik, hanteer foute beter in die standaardbiblioteek, pas die konsep van onveranderlike verwysings en veranderlikes by verstek toe, en bied sterk statiese tik om logiese foute te minimaliseer.
Bron: opennet.ru
