Джош Трыплет (Josh Triplett), які працуе ў кампаніі Intel і ўваходзіць у камітэт, які курыруе развіццё Crates.io, у сваім выступе на канферэнцыі Open Source Technology Summit
У працоўнай групе, якая знаходзіцца падчас стварэнняў, распрацоўнікі Rust сумесна з інжынерамі з кампаніі Intel падрыхтуюць спецыфікацыі з вызначэннем функцыянальнасці, якую неабходна рэалізаваць у Rust для сістэмнага праграмавання. Сістэмнае праграмаванне часта патрабуе нізкаўзроўневых маніпуляцый, такіх як выкананне прывілеяваных працэсарных інструкцый і атрыманне дэталёвых звестак аб стане працэсара. З ужо якія развіваюцца для Rust падобных магчымасцяў адзначаецца падтрымка неназваных структур, аб'яднанняў (union), асэмблерных уставак (макрос "asm!") і фармату лікаў з якая плавае коскі BFLOAT16.
Джош лічыць, што будучыня сістэмнага праграмавання за Rust, а мова Сі ў сучасных рэаліях прэтэндуе на месца, якое ў мінулыя гады займаў Асэмблер. Rust
не толькі пазбаўляе распрацоўнікаў ад уласцівых мове Сі праблем, якія ўзнікаюць з-за нізкаўзроўневай працы з памяццю, але і падае магчымасць ужывання пры распрацоўцы сучасных парадыгмаў праграмавання.
У ходзе
Джош была выказана ідэя дадання ў ядро Linux магчымасці распрацоўкі драйвераў на мове Rust, што дазволіць з мінімальнымі намаганнямі ствараць бяспечныя і больш якасныя драйверы, пазбаўленыя ад такіх праблем, як зварот да вобласці памяці пасля яе вызвалення, разнайменне нулявых паказальнікаў і выхад за межы буфера.
Грег Кроа-Хартман (Greg Kroah-Hartman), які адказвае за падтрымку стабільнай галіны ядра Linux, выказаў гатоўнасць дадаць у ядро фрэймворк для распрацоўкі драйвераў на мове Rust, калі ён будзе валодаць рэальнымі перавагамі ў параўнанні з Сі, напрыклад, будзе падаваць бяспечныя абвязкі над API ядра. Акрамя таго, Грег разглядае дадзены фрэймворк толькі як опцыю, не актыўную па змаўчанні, каб не ўключаць Rust у лік зборачных залежнасцяў да ядра.
Аказалася, што некалькі каманд ужо працуюць у гэтым напрамку. Напрыклад, распрацоўшчыкі з кампаніі "Fish in a Barrel"
паралельна
Не ўся задуманая функцыянальнасць пакуль рэалізаваная, але фрэймворк ужо суцэль прыдатны для працы і скарыстаны для напісання працоўнага драйвера для Ethernet-кантролера LAN9512 USB, які пастаўляецца ў плаце Raspberry Pi 3. У якасці эталоннай рэалізацыі пры напісанні Rust-драйвера быў скарыстаны існуючы драйвер smsc95x на мове Сі. Адзначаецца, што памер модуля і накладныя выдаткі ад runtime-кампанентаў пры распрацоўцы драйвера на Rust малаважныя, што дазваляе ўжываць фрэймворк для прылад з абмежаванымі рэсурсамі.
Крыніца: opennet.ru