Andiany fahefatra amin'ny patch ho an'ny kernel Linux miaraka amin'ny fanohanana ny fiteny Rust

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

Tsarovy fa ireo fanovana naroso dia ahafahana mampiasa ny Rust ho fiteny faharoa amin'ny famolavolana mpamily sy maody kernel. Ny fanohanan'ny Rust dia aseho ho toy ny safidy tsy avela amin'ny alàlan'ny default ary tsy miteraka ny Rust ho tafiditra ho fiankinan-doha ilaina amin'ny kernel. Ny fampiasana Rust ho an'ny fampandrosoana ny mpamily dia ahafahanao mamorona mpamily azo antoka kokoa sy tsara kokoa miaraka amin'ny ezaka kely indrindra, tsy misy olana toy ny fidirana amin'ny fahatsiarovana aorian'ny fanafahana, ny tsy fahampian'ny pointer tsy misy dikany ary ny fihoaran'ny buffer.

Ny harafesina dia manery ny fiarovana ny fitadidiana amin'ny fotoana fanangonana amin'ny alàlan'ny fanamarinana reference, ny fananana zavatra ary ny fanaraha-maso mandritra ny androm-piainana (scopes), ary amin'ny fanombanana ny fahamarinan'ny fidirana amin'ny fitadidiana amin'ny fotoana fandehanana. Ny Rust koa dia manome fiarovana amin'ny fihoaran'ny integer, mitaky ny fanombohana ny soatoavina miovaova alohan'ny hampiasana azy, manana fikarakarana fahadisoana tsara kokoa ao amin'ny tranomboky mahazatra, mampiasa ny foto-kevitry ny fanondroana sy ny fari-pitsipika tsy azo ovaina amin'ny alàlan'ny default, ary manolotra sora-baventy matanjaka mba hampihenana ny lesoka lojika.

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

  • Осуществлён переход на использование в качестве эталонного компилятора стабильного выпуска 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.

Source: opennet.ru

Add a comment