Поддержка разработки драйверов ядра 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.
Источник: http://www.opennet.ru/opennews/art.shtml?num=54792