Дар конфронси Linux Plumbers 2022, як муҳандиси Western Digital дар бораи таҳияи драйвери таҷрибавӣ барои SSD-ҳои NVM-Express (NVMe), ки бо забони Rust навишта шудааст ва дар ядрои Linux кор мекунад, мақолае пешниҳод кард. Гарчанде ки лоиҳа ҳанӯз дар марҳилаҳои аввали худ қарор дорад, санҷиш нишон дод, ки кори драйвери NVMe-и дар асоси Rust буда бо драйвери мавҷудаи NVMe-и ядро, ки бо забони C навишта шудааст, мувофиқат мекунад.


Дар гузориш гуфта мешавад, ки драйвери кунунии NVMe дар C барои таҳиягарон комилан қаноатбахш аст, аммо зерсистемаи NVMe платформаи хубе барои омӯзиши имконпазирии таҳияи драйверҳо дар Rust мебошад, зеро он нисбатан содда, васеъ истифодашаванда, талаботи баланди иҷроиш, татбиқи истинодии исботшуда барои муқоиса дорад ва интерфейсҳои гуногунро (dev, pci, dma, blk-mq, gendisk, sysfs) дастгирӣ мекунад.
Қайд карда мешавад, ки драйвери PCI NVMe, ки бо забони Rust навишта шудааст, аллакай функсияҳои заруриро таъмин мекунад, аммо ҳанӯз барои истифодаи васеъ омода нест, зеро он ба таҳияи иловагӣ ниёз дорад. Нақшаҳои оянда иборатанд аз хориҷ кардани блокҳои мавҷудаи ноамн аз код, дастгирии амалиётҳои хориҷ кардани дастгоҳ ва холӣ кардани драйвер, дастгирии интерфейси 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 инчунин муҳофизатро аз фаромадани ададҳо таъмин мекунад, пеш аз истифода оғозкунии ҳатмии арзишҳои тағирёбандаро талаб мекунад, хатогиҳоро дар китобхонаи стандартӣ беҳтар идора мекунад, консепсияи истинодҳо ва тағирёбандаҳоро ба таври нобаёнӣ татбиқ мекунад, чопкунии қавии статикиро барои кам кардани хатогиҳои мантиқӣ пешниҳод мекунад.
Манбаъ: opennet.ru
