Давление на новое поколение разработчиков не ослабевает.
Rust — современный язык программирования, обладающий высокой степенью безопасности памяти, — несколько лет назад начал постепенно внедряться в ядро Linux. В 2021 году разработчики ядра, включая его создателя Линуса Торвальдса, восприняли Rust с осторожностью, но с интересом. Спустя год Торвальдс одобрил первый запрос на включение поддержки Rust в кодовую базу ядра, что стало важной вехой в развитии проекта. Однако в 2024 году процесс столкнулся с серьезными трудностями, вызвав волну недовольства среди сторонников Rust.
Одним из самых резонансных событий стало неожиданное решение Хектора Мартина, ведущего разработчика проекта Asahi Linux, покинуть сообщество мейнтейнеров Linux. Мартин обосновал свой уход усталостью и разочарованием из-за многочисленных препятствий на пути внедрения Rust. Он утверждал, что использование Rust критически важно для эффективной и безопасной разработки драйверов, особенно для современных чипсетов Apple. Однако не все разделяли его точку зрения.
Одним из наиболее активных противников Rust в ядре Linux стал Кристоф Хеллвиг, отвечающий за поддержку API прямого доступа к памяти (DMA). Он высказал резкое несогласие с интеграцией Rust в свою область ответственности, заявив, что смешение языков усложнит поддержку кода и приведет к дополнительным проблемам. Хеллвиг сравнил включение Rust с "раковой опухолью", которая только разрастается и разрушает существующую экосистему. Он также утверждал, что Торвальдс в частных беседах якобы пообещал ему, что никогда не будет принудительно вносить Rust-код вопреки воле мейнтейнеров.
Ответ Торвальдса не заставил себя ждать. Он указал, что Rust-код, против которого выступал Хеллвиг, не изменял сам DMA-слой, а лишь использовал его интерфейсы. Создатель Linux подчеркнул, что мейнтейнеры имеют право не работать с Rust, если они этого не хотят, но при этом не могут запрещать другим разработчикам его использование. Он также отметил, что ни один из разделов ядра Linux не является "личной собственностью" его мейнтейнера, а значит, никто не вправе накладывать вето на развитие проекта в целом.
Торвальдс в своей фирменной манере жестко, но справедливо ответил Хеллвигу, заявив:
"Я уважаю тебя как разработчика и люблю работать с тобой. Ты часто указываешь мне на мои ошибки, и это важно. Но сейчас я хочу указать тебе на твои."
В поддержку Rust выступил Грег Кроах-Хартман, один из ведущих разработчиков Linux. Он напомнил, что за последние 15 лет ему пришлось работать практически со всеми исправлениями ошибок и уязвимостей в ядре, и большинство из них были связаны именно с недостатками языка C. По его мнению, Rust может устранить многие типичные проблемы, связанные с безопасностью памяти, что позволит разработчикам сосредоточиться на более сложных и важных задачах.
Кроах-Хартман подчеркнул, что в ближайшее время язык C не исчезнет из ядра Linux — в кодовой базе более 30 миллионов строк C-кода, который продолжит использоваться. Однако новые драйверы, написанные на Rust, могут принести значительные преимущества. Он отметил:
"Да, поддержка кода на нескольких языках сложна, но мы — разработчики ядра. Мы уже сделали Linux величайшей инженерной системой, способной развиваться десятилетиями. Почему же теперь мы должны отказываться от технологий, которые могут сделать ее еще лучше?"
В результате обсуждений было найдено компромиссное решение:
Таким образом, внедрение Rust в ядро Linux продолжается, хотя и не без сопротивления. Политика Торвальдса направлена на плавную интеграцию нового языка, при этом уважаются интересы как сторонников, так и противников изменений.
Несмотря на существующие разногласия, очевидно одно: будущее Linux невозможно представить без инноваций, а Rust, похоже, займет в этом будущем важное место.
Спойлер: она начинается с подписки на наш канал