Не так давно сама идея о том, что в ядре Linux будет использоваться другой язык, помимо C, вызывала смех. Времена изменились. Сегодня не только RUST, системный язык высокого уровня, приближающийся к Linux, он ближе, чем когда-либо, благодаря следующая «серия патчей для добавления поддержки Rust как второго языка ядра Linux».
Самым большим изменением в этих новых пакетах является то, что код Rust, предложенный для ядра, теперь полагается на стабильный компилятор Rust, а не на бета-компиляторы. В будущем Rust на Linux будет мигрировать каждый раз, когда будет выпущен новый стабильный компилятор Rust. В настоящее время он использует Rust 1.57.0.
Сделав это, как сказал разработчик ядра Linux и руководитель Rust on Linux Мигель Охеда: «Обновив компилятор, мы смогли исключить из списка несколько нестабильных функций, которые мы использовали». Это, в свою очередь, означает, что Rust в Linux будет более стабильным.
Забегая вперед, Охеда написал: «Мы будем продолжать обновление до тех пор, пока не перестанем полагаться на какие-либо нестабильные функции; в этот момент мы можем захотеть объявить, что минимальная версия Rust поддерживается, как это делается, например, GCC и Clang.
Старший разработчик ядра Linux Грег Кроа-Хартман сказал мне, что он верит «драйверы, вероятно, первое место, где Rust появится в Linux поскольку «они являются« конечными листами »дерева зависимостей в исходном коде ядра. Они зависят от функциональности ядра, но от них ничего не зависит».
Это происходит уже несколько лет. На виртуальном Конференция по сантехникам Linux 2020, где ведущие разработчики ядра Linux обсуждают будущее Linux, идея внедрения Rust как второй язык ядра был представлен.
Линус Торвальдс уверен, что Linux не будет написан на Rust. Но тогда цель не в этом. Никто не собирается переписывать 25 миллионов строк C в ядре на Rust.
Во главе с Джошем Триплеттом, руководителем языка Rust, и Ником Десолнерсом, инженером Google, они предложили использовать язык Rust системного уровня внутри ядра. Почему? Потому что это намного безопаснее, чем C, особенно при обработке ошибок памяти.
Как пояснил Райан Левик, главный защитник облачных разработчиков Microsoft: «Rust полностью безопасен для памяти«Поскольку примерно две трети проблем безопасности могут быть связаны с плохим обращением с памятью, это серьезное улучшение. Кроме того,« Rust предотвращает эти проблемы, как правило, без дополнительных затрат времени выполнения », — сказал Левик.
Торвальдс видит преимущества. Пока он поощряет медленный, но устойчивый подход к внедрению Rust в Linux, он также сказал, что использование интерфейсов Rust для драйверов и других программ, не связанных с ядром, имеет смысл: «Я уверен, что это произойдет. Возможно, это и не Rust, но скоро у нас будут разные модели для писать такие вещи, и Си не единственный «.
Итак, как сказал Охеда ZDNet этим летом «Проект не завершен, но мы готовы к мэйнлайну, если высокоуровневые сопровождающие примут текущие изменения и предпочтут, чтобы мы работали внутри ядра. Большая часть работы еще впереди».
Тем не менее, сейчас работа идет полным ходом. Я ожидаю увидеть первый код Rust в ядре Linux где-то в 2022 году.