Поиск по сайту:

Rust делает большой шаг вперед в качестве второго официального языка Linux

В Linux с каждым днем становится все больше Rust.

Еще не так давно сама идея о том, что в ядре 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 Plumbers Conference 2020 года, где ведущие разработчики ядра Linux обсуждают будущее Linux, была представлена идея внедрения Rust в качестве второго языка ядра.

Хотя Линус Торвальдс уверен, Linux не будет написан на Rust. Но тогда это не цель. Никто не собирается переписывать 25 миллионов строк ядра C на Rust.

Под руководством Джоша Триплетта, ведущего специалиста по языку Rust, и Ника Десолнье, инженера Google, они предложили использовать язык Rust системного уровня внутри ядра. Почему? Потому что это намного безопаснее, чем C, особенно при обработке ошибок памяти.

Как объяснил Райан Левик, главный сторонник облачных разработчиков Microsoft, «Rust полностью безопасен для памяти». Поскольку примерно две трети проблем безопасности связаны с плохим обращением с памятью, это значительное улучшение. Кроме того, «Rust обычно предотвращает эти проблемы без каких-либо дополнительных затрат во время выполнения», — сказал Левик.

Торвальдс видит преимущества. Хотя он поддерживает медленный, но устойчивый подход к внедрению Rust в Linux, он также сказал, что использование интерфейсов Rust для драйверов и других неосновных программ ядра имеет смысл: «Я убежден, что это произойдет. Возможно, это будет не Rust, но произойдет так, что у нас будут разные модели для написания подобных вещей, и C не будет единственным».

Итак, как сказал Охеда этим летом ZDNet : «Проект еще не завершен, но мы готовы к его включению в сеть, если специалисты по сопровождению высокого уровня примут текущие изменения и предпочтут, чтобы мы работали внутри ядра. работа еще впереди».

Тем не менее, работа сейчас идет полным ходом. Я ожидаю увидеть первый код Rust в ядре Linux где-то в 2022 году.

Статьи по данной тематике