Lomiga lona fa o patch mo le fatu Linux ma le lagolago mo le gagana Rust

Мигель Охеда (Miguel Ojeda), автор проекта Rust-for-Linux, предложил для рассмотрения разработчиками ядра Linux четвёртый вариант компонентов для разработки драйверов устройств на языке Rust. Поддержка Rust рассматривается как экспериментальная, но уже согласована для включения в ветку linux-next и достаточно развита для начала работы по созданию слоёв абстракции над подсистемами ядра, а также для написания драйверов и модулей. Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let’s Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета.

Manatua o suiga ua fuafuaina e mafai ai ona faʻaogaina le Rust e fai ma gagana lona lua mo le atinaʻeina o avetaavale ma kernel modules. O le lagolago a le Rust ua tu'uina atu o se filifiliga e le mafai ona fa'aletonu ma e le i'u ai i le fa'aofiina o le Rust o se fa'alagolago mo le fatu. O le fa'aaogaina o le Rust mo le atina'eina o aveta'avale o le a fa'ataga ai oe e fai ni ta'avale saogalemu ma sili atu ona lelei ma sina taumafaiga itiiti, e sa'oloto mai fa'afitauli e pei o le fa'aogaina o le mafaufau pe a mae'a fa'asa'oloto, fa'aletonu le fa'asinomaga, ma fa'alavelave fa'aletonu.

O le fa'aogaina o le manatua-saogalemu o lo'o tu'uina atu i le Rust i le taimi fa'aopoopo e ala i le siakiina o fa'asinomaga, le siakiina o le mea e umia ma le mea faitino i le olaga atoa (lautele), fa'apea fo'i ma le iloiloga o le sa'o o le manatua avanoa i le taimi o le fa'atinoina o tulafono. E maua ai foi e le ele le puipuiga mai le tele o numera, e manaʻomia ai le faʻatagaina o le faʻatulagaina o tau fesuiaʻi aʻo leʻi faʻaaogaina, e sili atu ona lelei le faʻaogaina o mea sese i totonu o le faletusi masani, faʻaaogaina le manatu o faʻamatalaga e le mafai ona suia ma fesuiaiga e ala i le le mafai, ofoina atu le malosi o le taina e faʻaitiitia ai mea sese.

В новом варианте патчей продолжено устранение замечаний, высказанных в процессе обсуждения первой, второй и третьей редакций патчей. В новой версии:

  • Осуществлён переход на использование в качестве эталонного компилятора стабильного выпуска Rust 1.58.0. Из необходимых для проекта изменений, который пока ещё не включены в основной состав инструментария Rust, отмечаются флаг «-Zsymbol-mangling-version=v0» (ожидается в Rust 1.59.0) и режим «maybe_uninit_extra» (ожидается в Rust 1.60.0).
  • Добавлены автоматические проверки наличия подходящего инструментария Rust и расширены возможности по тестированию поддержки Rust в системе.
  • Предложены новые абстракции для доступа из кода на языке Rust к таблицам идентификаторов устройств («IdArray» и «IdTable»).
  • Добавлены прослойки для обращения к функциям, связанным с таймером (clock framework).
  • Драйверы для платформ теперь определены через реализацию типажей.
  • Добавлен новый макрос для упрощения регистрации драйверов платформ, а также предложен новый шаблон типового драйвера.
  • Добавлены макросы для структур «dev_*».
  • Добавлены методы «{read,write}*_relaxed» для типа IoMem<T>.
  • Удалено свойство FileOpener для упрощения операций с файлами.
  • В число аргументов, передаваемых при регистрации драйвера, добавлен параметр «ThisModule».
  • Предложен типовой шаблон для создания модулей ядра на языке Rust.

puna: opennet.ru

Faaopoopo i ai se faamatalaga