WD-ն մշակում է NVMe դրայվեր Rust-ում: Փորձարկում Rust-ի հետ FreeBSD-ում

Այս օրերին շարունակվող Linux Plumbers 2022 կոնֆերանսում Western Digital-ի ինժեները ներկայացրեց NVM-Express (NVMe) SSD-ների փորձարարական դրայվերի մշակման մասին, որը գրված է Rust-ով և աշխատում է Linux միջուկի մակարդակով: Չնայած այն հանգամանքին, որ նախագիծը դեռևս զարգացման վաղ փուլում է, անցկացված փորձարկումը ցույց է տվել, որ Rust NVMe դրայվերի կատարումը համապատասխանում է միջուկում C-ով գրված NVMe դրայվերին:

WD-ն մշակում է NVMe դրայվեր Rust-ում: Փորձարկում Rust-ի հետ FreeBSD-ում
WD-ն մշակում է NVMe դրայվեր Rust-ում: Փորձարկում Rust-ի հետ FreeBSD-ում

Զեկույցում ասվում է, որ ներկայիս NVMe դրայվերը C-ում լիովին բավարարում է ծրագրավորողների համար, սակայն NVMe ենթահամակարգը լավ հարթակ է Rust-ում վարորդների մշակման իրագործելիությունը ուսումնասիրելու համար, քանի որ այն բավականին պարզ է, լայնորեն օգտագործված, ունի բարձր կատարողական պահանջներ և ունի: ապացուցված հղման իրականացում: համեմատության համար և աջակցում է տարբեր միջերեսներ (dev, pci, dma, blk-mq, gendisk, sysfs):

Նշվում է, որ Rust PCI NVMe դրայվերն արդեն ապահովում է շահագործման համար անհրաժեշտ ֆունկցիոնալությունը, սակայն դեռ պատրաստ չէ լայն կիրառման, քանի որ այն առանձին բարելավումներ է պահանջում։ Ապագայի պլանները ներառում են գոյություն ունեցող անապահով բլոկներից ազատվելը, սարքը հեռացնելու և դրայվերը բեռնաթափելու աջակցությունը, sysfs ինտերֆեյսի աջակցությունը, ծույլ սկզբնավորումը, blk-mq-ի համար դրայվեր ստեղծելը և queue_rq-ի համար ասինխրոն ծրագրավորման մոդելի փորձարկումը:

Բացի այդ, մենք կարող ենք նշել NCC Group-ի կողմից իրականացված փորձերը՝ Rust լեզվով վարորդների մշակման համար FreeBSD միջուկի համար: Որպես օրինակ, պարզ echo դրայվերը, որը վերադարձնում է /dev/rustmodule ֆայլում գրված տվյալները, մանրամասն վերլուծվում է: Փորձարկման հաջորդ փուլում NCC Group-ը դիտարկում է Rust-ի հիմնական հիմնական բաղադրիչների վերամշակումը ցանցի և ֆայլերի գործառնությունների անվտանգությունը բարելավելու համար:

Այսպես ասվեց, թեև ցույց է տրվել, որ Rust-ում հնարավոր է ստեղծել պարզ մոդուլներ, Rust-ի ավելի ամուր ինտեգրումը FreeBSD միջուկին լրացուցիչ աշխատանք կպահանջի: Օրինակ, այն նշում է ենթահամակարգերի և միջուկի կառուցվածքների վրա վերացական շերտեր ստեղծելու անհրաժեշտությունը, որոնք նման են Rust for Linux նախագծի կողմից պատրաստված հավելումներին: Ապագայում նախատեսվում է նմանատիպ փորձեր անցկացնել Illumos միջուկի հետ և ընդգծել Rust-ի սովորական աբստրակցիաները, որոնք կարող են օգտագործվել Rust-ով գրված դրայվերներում Linux-ի, BSD-ի և Illumos-ի համար:

Microsoft-ի և Google-ի տվյալներով՝ իրենց ծրագրային արտադրանքի խոցելիության մոտ 70%-ը պայմանավորված է հիշողության ոչ անվտանգ կառավարմամբ։ Ենթադրվում է, որ Rust լեզվի օգտագործումը կնվազեցնի անապահով հիշողության հետ կապված խոցելիության վտանգը և կվերացնի այնպիսի սխալների առաջացումը, ինչպիսին է հիշողության տարածք մուտք գործելը այն ազատելուց և բուֆերի գերազանցումից հետո:

Հիշողության համար անվտանգ կառավարումը Rust-ում տրամադրվում է կոմպիլյացիայի ժամանակ՝ հղումների ստուգման, օբյեկտի սեփականության և օբյեկտի կյանքի ժամկետի (շրջանակի) հետևելու, ինչպես նաև կոդի կատարման ընթացքում հիշողության հասանելիության ճշգրտության գնահատման միջոցով: Rust-ը նաև ապահովում է պաշտպանություն ամբողջ թվերի արտահոսքից, պահանջում է փոփոխական արժեքների պարտադիր սկզբնավորում նախքան օգտագործումը, ստանդարտ գրադարանում ավելի լավ է լուծում սխալները, լռելյայն կիրառում է անփոփոխ հղումների և փոփոխականների հայեցակարգը, առաջարկում է ուժեղ ստատիկ մուտքագրում՝ տրամաբանական սխալները նվազագույնի հասցնելու համար:

Source: opennet.ru

Добавить комментарий