Медленно, но верно язык Rust проникает в Linux. Линус Торвальдс и Грег Кроа-Хартман поделились своим мнением насчет перспектив Rust в Linux.
Linux+Rust
На конференции Linux Plumbers в 2020 году разработчики подняли вопрос об использовании языка Rust для ядра Linux.
Многие интеграции языка уже используются в коммерческих целях. Amazon Web Services выпустила дистрибутив Bottlerocket для контейнеров, и большая его часть написана на Rust.
Разработчик Mozilla и Debian Сильвестр Ледру портировал Rust для Linux Coreutils с использованием инфраструктуры LLVM компилятора и языком Clang C для фронтенда. Ледру признает, что релиз еще не готов к стабильному выпуску, но с некоторым количеством доработок он уже работает. В конце концов, он может заменить GNU Coreutils.
Зачем это нужно
Причина популярности Rust в том, что с ним легче писать безопасное программное обеспечение. Используя более безопасные интерфейсы прикладного программиста (API) Rust, он уменьшает вероятность возникновения уязвимостей в ядре Linux, связанных с проблемами безопасности памяти.
Три области, на которых сосредоточено больше всего внимания – это использование существующих API в ядре, поддержка архитектуры и совместимость с двоичным интерфейсом приложений между Rust и C.
Мнения разработчиков
Линус Торвальдс проявил интерес к интеграции Rust, но при этом занимает позицию «поживем – увидим». Он говорит, что открыт для нового, с учетом преимуществ безопасности, но знает, что иногда ожидания не оправдываются.
Торвальдс считает, что основная цель Rust в Linux – это драйверы. Так как отдельные части ядра довольно малы и независимы, они хорошо подходят для оптимизации под Rust.
Также Торвальдс указал на то, что некоторым людям вообще не нравится идея появления Rust в пользовательском пространстве. Однако ядро отличается от проектов пользовательского пространства, так как R03;R03;является самодостаточным и не полагается на другие проекты.
Сопровождающий разработчик стабильной ветки ядра Linux Кроа-Хартман, также считает, что драйверы станут первой целью для интеграции Rust в Linux, поскольку они являются «конечными листами» дерева зависимостей в исходном коде ядра. Он считает, что успех Rust зависит от того, насколько хорошо будет реализовано взаимодействие между структурами ядра и правилами времени жизни, написанными на C. Разработчикам, желающим все это подключить, потребуется проделать много работы.
Rust не появится в Linux в ближайшее время, но существует большой интерес по внедрению программ пользовательского пространства, драйверов и ядер на основе Rust в Linux.