DA
Поддержка разработки драйверов ядра Linux на языке Rust активно обсуждалась в прошлом году, в том числе с участием Линуса Торвальдса, который не исключал такую возможность. Идею также поддержал Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной ветки ядра Linux. Использование Rust для разработки драйверов позволит с минимальными усилиями создавать безопасные и более качественные драйверы, избавленные от таких проблем как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.
Для активации поддержки Rust в ветке linux-next в KConfig добавлена опция CONFIG_RUST ("Rust support" в меню "General setup"), при включении которой проверяется наличие в системе компилятора rustc и при его присутствии даётся возможность включить остальные компоненты, завязанные на Rust (например, в меню "Kernel hacking" появляется секция "Rust hacking"). Использование Rust рассматривается как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру.
Сборка компонентов ядра на Rust возможна как при использовании GCC, так и при сборке с помощью Clang. Для использования Rust в ядре требуется установка свежих ночных сборок компилятора rustc, не старее ветки nightly-2021-02-20 (по возможности обещают добавить поддержку стабильных веток Rust, но пока имеется привязка к некоторым экспериментальным возможностям). Также необходимо наличие в системе стандартных библиотек Rust, поставляемых в пакете rust-src, и генератора привязок bindgen. Поддержка пока ограничена платформами x86_64 и ARM64.
https://t.me/crossjoin/67