Поскольку Линус Торвальдс включил Rust в Linux Kernel версии 6.1, язык постепенно набирает популярность и все больше и больше разработчиков присоединяются к этому движению.
Тем не менее, некоторые из разработчиков ядра линукса Они подчеркивают, что достижения будут все больше означать больше работы и проблем., поскольку в своих комментариях они подразумевают, что может возникнуть патовая ситуация.
Стоит уточнить, что мы не говорим о том, что реализация зашла в тупик, а скорее учитывая комментарии различных разработчиков и как мы уже упоминали, в текущем состоянии начала проявляться необходимость снижения темпов работ, или по крайней мере, это то, что предлагает нам следующая статья LWN.net.
И несколько недель назад я наткнулся на эту статью, в которой рассматривается текущее состояние использования Rust в Linux и анализируется, оказался ли успешным эксперимент с этим языком программирования.
Отмечается, что в течение нескольких лет Ржавчина была темой, которую не переставали обсуждать на «Саммите мейнтейнеров ядра» и прошедший в 2023 году не стал исключением, поскольку с момента официального внедрения Rust как второй язык программирования в Linux. Мигель Охеда, Разработчик Rust-for-Linux, подчеркнул растущий интерес к использованию Rust за разработку ядра во время сессии, посвященной этой теме.
Мигель Охеда упоминает, что проект Rust для Linux за последний год наблюдался значительный импульс, поскольку к работе присоединились штатный инженер и студент-разработчик, а также к поддержке работы присоединились различные компании. Кроме того, ведется работа по интеграции инструмента Coccinelle с кодом Rust. Однако не все так радужно, поскольку одна из текущих задач — привлечение большего количества рецензентов для разрабатываемого кода.
В статьеи упоминает, что проблемы стали заметны в цепочке инструментов, поскольку прогресс компилятора Rust на основе GCC, известный как gccrs, замедлился. С другой стороны, генератор кода GCC для Rust демонстрирует многообещающий прогресс и был объединен с компилятором, что позволит расширить поддержку Rust на архитектуры, несовместимые с LLVM.
Внутри ядра, прогресс наблюдается в нескольких подсистемах, так обстоит дело с реализацией 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/