Linux 6.1 RC1, первый взгляд на Rust в Linux

РустЛинукс

Интеграция Rust в Linux получила высокую оценку сообщества и разработчиков.

С приходом первый RC Linux 6.1 включил много важных изменений в версии 6.1, но одно из изменений, которое привлекло наибольшее внимание, также будет иметь наименьший краткосрочный эффект для пользователей ядра: введение поддержки Rust.

Линус Торвальдс обещал на последнем саммите Open Source что приведет к включению Rust для Linux на ядре версии 6.1, из которого исходный фреймворк Rust был объединен с основным деревом Linux Git.

Этот новый начальный код из 12 500 строк обеспечивает только базовую инфраструктуру и очень простая интеграция, в то время как будущие запросы на вытягивание добавят больше абстракций подсистем, различные драйверы, написанные на Rust, и многое другое, плюс компиляция ядра Linux с поддержкой Rust остается необязательной.

В сообщении сообществу ядра Торвальдс сказал:

«Дерево имеет недавнюю основу, но в основном находится в Linux-next уже полтора года. Обновлено на основе отзывов с саммита по обслуживанию ядра. Мигель — главный сопровождающий, и я помогаю, когда это необходимо. Наш план состоит в том, чтобы дерево перешло к стандартной практике не менять базы, как только этот начальный этап инфраструктуры будет завершен. Контент — это абсолютный минимум, позволяющий интегрировать код Rust в ядро, а также множество других интерфейсов (и драйверов: NVMe, 9p, GPU M1) на подходе».

Таким образом, никакая система с ядром 6.1 не будет запускать код Rust, что это дает это изменение это возможность для разработчиков ядра «поиграть» с языком в контексте ядра. и получить представление о том, как происходит разработка Rust. Наиболее вероятным выводом для большинства разработчиков будет то, что в ядре еще недостаточно Rust, чтобы сделать что-то стоящее.

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

Для первоначального слияния с основным ядром, Линус Торвальдs ясно дал понять, что нужно включить как можно меньше функций. Таким образом, эти драйверы и их вспомогательный код были удалены, и их следует ожидать в будущем выпуске ядра. Присутствует необходимая поддержка для сборки модуля, который можно загрузить в ядро, а также небольшой образец модуля.

Руст для линукса стремится ввести новый язык системного программирования в ядро. У Rust есть ключевое свойство, которое делает его очень интересным для рассмотрения в качестве второго языка ядра: он гарантирует отсутствие неопределённого поведения (до тех пор, пока небезопасный код является нормальным).

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

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

Как только это будет сделано, система конфигурации ядра согласится установить параметр CONFIG_RUST; дополнительная опция построит пример модуля.

Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.


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

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

*

*

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