Староверы Linux проиграли войну. Код на Rust больше не эксперимент, а законная часть ядра

Староверы Linux проиграли войну. Код на Rust больше не эксперимент, а законная часть ядра

Поддержка языка программирования Rust спустя годы вошла в перечень основных возможностей ядра Linux. Разработчики и лично Линус Торвальдс долго сопротивлялись этому, обеими руками держась за код на С и С++. Но код этих языках менее безопасен, а сами языки намного старше, чем Rust, относящийся к новейшему поколению языков программирования, и даже сам Торвальдс в итоге признал его очевидные преимущества. 

Больше не эксперимент

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

Rust относится к числу новейших языков программирования – он разрабатывается с 2006 г., но впервые был представлен широкой общественности в январе 2012 г. С этого же времени его адепты не прекращают попыток переписать весь код ядра Linux, который десятилетиями базировался исключительно на коде С и С++.

Решение о снятии пометки «экспериментальная функция» с кода Rust в составе ядра Linux было принято участниками конференции Maintainers Summit. Они коллективно обсудили результаты внедрения этого кода в ядро и пришли к общему выводу, что все прошло вполне успешно.

Три года к успеху

В самую активную свою фазу эксперимент по внедрению кода на Rust в состав ядра Linux вошел в 2022 г. В тот период разработчики получили разрешение создавать драйверы и модули на Rust – эта опция была включена в ядро версии 6.1.

Кода на Rust в ядре Linux становится все больше

Как пишет OpenNet, программисты решили не терять времени даром и за прошедшие три года внедрили в ядро Linux множество компонентов, написанных на Rust. Среди них – абстракции для разработки на драйверов для видеокарт, сетевых карт и USB-устройств. Например, существует написанный на Rust драйверы Nova для видеокарт Nvidia, и Tyr для интегрированной графики ARM Mali, а также драйвер rust_ext2 для поддержки файловой системы Ext2.

Староверы против

Сторонники внедрения кода на Rust в ядро Linux столкнулись с невероятно сильным сопротивлением со стороны его разработчиков, пишущих на С и С++. Они выступили резко против таких нововведений и заявили, что не собираются переучиваться или что-то менять. Среди них нашлись даже те, кто сравнил внедрение в ядро кода на Rust с раковой опухолью Также они высказали мнение, что столь сложные программные продукты не должны создаваться на радикально разных языках программирования, поскольку это усложняет разработку.

По современным меркам и С, и С++ – относительно старые языки, поскольку многие нынешние программисты еще не родились, когда они появились. Между тем, С (вышел в 1972 г.) и С++ (появился в 1982 г.). до сих пор входят в топ-3 самых популярных в мире (рейтинг Tiobe, декабрь 2025 г.) наряду с Python. Rust в этом рейтинге находится на 17 строчке против 14 места в декабре 2024 г.

До первой тройки Rust еще очень далеко

Создатель Linux Линус Торвальдс (Linus Torvalds) никогда не обходил споры адептов С и Rust стороной. В течение длительного времени он занимал сторону «староверов», по-всякому и публично обзывая программистов на Rust. Многие из них даже покинули сообщество Linux, не желая терпеть оскорбления со стороны Торвальдса, а кого-то был заблокирован после очередной перепалки с Торвальдсом.

Но через некоторое время Линус сменил сторону. Теперь он хоть и не поливает грязью программистов на С и С++, но открыто признает, что коду на Rust есть место в ядре Linux.

Чем так хорош Rust

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

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

Добавить комментарий

Кнопка «Наверх»
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять
Отказаться
Политика конфиденциальности