Вестерн Дигитал већ ради на НВМе драјверу написаном у Русту

РустЛинук

Интеграција Руста у Линук је имала висок ниво прихватања од стране заједнице и програмера

Током конференције „Линук Плумберс 2022“. који је био у току ових дана, инжењер Вестерн Дигитал одржао презентацију о развоју контролера експериментално за ССД НВМ-Екпресс (НВМе) написан у Руст и ради на нивоу Линук кернела.

Иако пројекат је још увек у раној фази развоја, спроведени тестови су показали да перформансе Руст НВМе драјвера одговарају НВМе драјверу написаном у Ц у кернелу.

Ја сам Маттхев Вилцок, ја сам један од аутора НВМе спецификације, ја сам био тај који је предложио да направим НВМе драјвер како бих показао вриједност Руст-а. Био је успешан изнад мојих најлуђих очекивања. 

У вези са представљеним извештајем каже се да је тренутни НВМе Ц драјвер потпуно задовољавајући за програмере, али подсистем НВМе је добра платформа за истраживање изводљивости развоја драјвера у Русту, пошто је прилично једноставан, широко коришћен, има високе захтеве за перформансама, има доказану референтну имплементацију за поређење и подржава различите интерфејсе ( дев, пци, дма, блк-мк, гендиск, сисфс).

Примећује се да Руст ПЦИ НВМе драјвер већ пружа неопходну функционалност за рад, али још увек није спреман за широку употребу, јер захтева посебна побољшања.

Планови за будућност укључују уклањање постојећих несигурних блокова, подршка за уклањање уређаја и преузимање драјвера, подржава сисфс интерфејс, имплементирати лењу иницијализацију, креирати контролер за блк-мк и експериментисати са моделом асинхроног програмирања за куеуе_рк.

Штавише, можемо указати спроведени експерименти од стране НЦЦ групе да развије контролере на језику Руст за ФрееБСД кернел. Као пример, једноставан ехо контролер који враћа податке уписане у /дев/рустмодуле. У следећој фази експериментисања, НЦЦ група разматра прераду основних компоненти језгра у Русту како би побољшала безбедност операција мреже и датотека.

Ипак, иако се показало да је могуће креирати једноставне модуле у Русту, чвршћа интеграција Руста у ФрееБСД кернел ће захтевати додатни рад.

На пример, он помиње потребу да се креира скуп слојева апстракције над подсистемима и структурама кернела, слично додацима које је припремио Руст пројекат за Линук. У будућности планирамо да изведемо сличне експерименте са Иллумос језгром и истакнемо уобичајене апстракције у Русту које би се могле користити у драјверима које је написао Руст за Линук, БСД и Иллумос.

Према Мицрософт-у и Гоогле-у, око 70% рањивости у њиховим софтверским производима настаје због несигурног управљања меморијом.

Коришћење Руст језика би требало да смањи ризик од рањивости узроковано несигурним руковањем меморијом и елиминисаће појаву грешака као што је приступ области меморије након што је ослобођена и преливање бафера.

Безбедност меморије је обезбеђена у Русту у време компајлирања провером референци, праћењем власништва над објектом и животног века објекта (обим), као и проценом исправности приступа меморији током извршавања кода.

Рђа такође обезбеђује заштиту од преливања целог броја, захтева да се променљиве иницијализују пре употребе, боље обрађује грешке у стандардној библиотеци, подразумевано примењује концепт непроменљивих променљивих и референци и нуди снажно статичко куцање да би се минимизирале логичке грешке.

Вреди напоменути да је могуће да ће будући рад ићи руку под руку са радом који је Мигел Оједа представио на својим драјверима „Руст фор Линук“, који су представљени као серија закрпа.

Коначно ако сте заинтересовани да сазнате више о томе, детаље можете погледати у следећи линк.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.