Rust в Linux: достижения, проблемы и текущий статус

Драйверы ржавчины в Linux

Поскольку Линус Торвальдс включил Rust в Linux Kernel версии 6.1, язык постепенно набирает популярность и все больше и больше разработчиков присоединяются к этому движению.

Тем не менее, некоторые из разработчиков ядра линукса Они подчеркивают, что достижения будут все больше означать больше работы и проблем., поскольку в своих комментариях они подразумевают, что может возникнуть патовая ситуация.

Стоит уточнить, что мы не говорим о том, что реализация зашла в тупик, а скорее учитывая комментарии различных разработчиков и как мы уже упоминали, в текущем состоянии начала проявляться необходимость снижения темпов работ, или по крайней мере, это то, что предлагает нам следующая статья LWN.net.

И несколько недель назад я наткнулся на эту статью, в которой рассматривается текущее состояние использования Rust в Linux и анализируется, оказался ли успешным эксперимент с этим языком программирования.

Отмечается, что в течение нескольких лет Ржавчина была темой, которую не переставали обсуждать на «Саммите мейнтейнеров ядра» и прошедший в 2023 году не стал исключением, поскольку с момента официального внедрения Rust как второй язык программирования в Linux. Мигель Охеда, Разработчик Rust-for-Linux, подчеркнул растущий интерес к использованию Rust за разработку ядра во время сессии, посвященной этой теме.

Мигель Охеда упоминает, что проект Rust для Linux за последний год наблюдался значительный импульс, поскольку к работе присоединились штатный инженер и студент-разработчик, а также к поддержке работы присоединились различные компании. Кроме того, ведется работа по интеграции инструмента Coccinelle с кодом Rust. Однако не все так радужно, поскольку одна из текущих задач — привлечение большего количества рецензентов для разрабатываемого кода.

Ядро Linux
Теме статьи:
Linux 6.1 поставляется с Rust, улучшениями производительности, драйверами и многим другим

В статьеи упоминает, что проблемы стали заметны в цепочке инструментов, поскольку прогресс компилятора Rust на основе GCC, известный как gccrs, замедлился. С другой стороны, генератор кода GCC для Rust демонстрирует многообещающий прогресс и был объединен с компилятором, что позволит расширить поддержку Rust на архитектуры, несовместимые с LLVM.

Теме статьи:
В GCC одобрили внедрение RUST (gccrs)

Внутри ядра, прогресс наблюдается в нескольких подсистемах, так обстоит дело с реализацией Rust папка для Android который продемонстрировал производительность, сравнимую с реализацией C, с минимальным количеством небезопасного кода. Кроме того, ведется работа над связыванием файловых систем с целью достижения поддержки только чтения в Rust и реализации полностью безопасной файловой системы в Rust.

Дэйв Эйрли, сопровождающий подсистемы DRM (графики), сказал, что, если он добьется своего, в следующих выпусках будет объединенный драйвер Rust DRM. Кристоф Хеллвиг ответил, что Эйрли была готова «превратить жизнь каждого в ад», чтобы она могла играть со своей любимой игрушкой. Хеллвиг сказал, что слияние Rust заставит других иметь дело со вторым языком, новыми инструментальными цепочками и «обертками со странной семантикой». Дэн Уильямс сказал, что текущая ситуация «именно так выглядит успех» и что сообщество ядра уже привержено Rust.

Хотя среди сопровождающих растет интерес к использованию Rust, возникают проблемы, поскольку это обсуждалось необходимо иметь эталонные драйверы ядра, написанные на Rust чтобы показать, как контроллеры могут быть написаны на этом языке. Однако дублирование функциональности драйверов в Rust и C вызвало недоверие среди сопровождающих.

Дискуссия о включении Rust приняла разные направления. Что ж, некоторые сопровождающие выступают за объединение автономных драйверов Rust, таких как драйвер связывателя, чтобы продемонстрировать их жизнеспособность, в то время как на другой стороне медали есть другие. Они выражают обеспокоенность по поводу сложности поддержки ядра с двумя языками программирования.

Далее Эйрли сказал, что большая часть работы Раста в настоящее время связана с проблемой курицы и яйца. Абстракции нельзя объединить, пока для них не найдется пользователь, но код, которому нужны эти абстракции, блокируется, ожидая, пока код достигнет нескольких подсистем. В результате разработчики, работающие над Rust, носят с собой большое количество патчей, необходимых для работы их кода. Чтобы преодолеть это препятствие, потребуется разрешить доступ некоторых абстракций без непосредственных пользователей.

Несмотря на трудности, Сообщество ядра признает потенциал Rust для улучшения безопасности и стабильности кода. Существует возможность объединения более широко используемых драйверов с Rust в будущем, как только будут решены проблемы с возможностью исправлений и ремонтопригодностью.

Охеда согласился, что эта проблема замедлила прогресс, но сказал, что старается не заставлять сопровождающих быстро объединять код. По иронии судьбы, в случае с сетью разработчикам Rust пришлось попросить сетевых специалистов замедлить слияние кода Rust.

Наконец, стоит отметить, что путь к широкому внедрению Rust в Linux сопряжен с трудностями, интерес и прогресс в этой области очевидны. Ожидается, что со временем Rust сыграет важную роль в улучшении Linux.

источник: https://lwn.net/


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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.