21 февраля 2025 года Линус Торвальдс выступил с разъяснением своей позиции по внедрению Rust в ядро Linux, подлив масла в огонь дискуссий среди мэйнтейнеров. Споры о новом языке программирования в ядре не утихают уже несколько лет, но недавний конфликт вокруг подсистемы DMA и переписка с Грегом Крокха-Хартманом выявили новые детали. Линус чётко обозначил: Rust — это не угроза для тех, кто верен Си, но и не игрушка, которую можно заблокировать по прихоти. Давайте разберём ситуацию с инженерной точки зрения, оценим, что происходит под капотом ядра, и попробуем понять, куда движется Linux.
Rust и Си: свобода выбора или вынужденное сосуществование?
Торвальдс в очередной раз подчеркнул: внедрение Rust в ядро — это не принудительный переход. Мэйнтейнеры, которые хотят работать только с Си, могут продолжать это делать, не касаясь кода на Rust. Им не придётся учить новый язык, разбираться в его синтаксисе или поддерживать обвязки. Однако Линус сразу расставил границы: такая изоляция — обоюдоострый меч. Если вы не участвуете в развитии Rust, вы не можете влиять на то, как он взаимодействует с вашими подсистемами.
Для тех, кто готов освоить Rust, открываются новые возможности. Они могут проектировать интерфейсы, связывающие код на Си и Rust, и участвовать в их сопровождении. Это создаёт естественное разделение: одни мэйнтейнеры остаются в зоне комфорта Си, другие становятся мостом между старым и новым. Торвальдс видит в этом баланс, который позволяет ядру эволюционировать без радикальных потрясений. На практике, как отметил Грег Крокха-Хартман в переписке, многие сопровождающие уже начинают учитывать обвязки на Rust, хотя и не погружаются в язык слишком глубоко.

Конфликт с DMA: Хелвиг против прогресса
Ключевой момент дискуссии — ситуация с подсистемой DMA. Мэйнтейнер Кристоф Хелвиг попытался заблокировать Rust-обвязки над DMA, утверждая, что они касаются его зоны ответственности. Однако Линус и Грег жёстко раскритиковали его подход. Код на Rust был реализован в отдельном подкаталоге и не затрагивал ядро подсистемы DMA напрямую — он лишь использовал её функциональность. Торвальдс сравнил действия Хелвига с попыткой запретить драйверу использовать DMA только потому, что мэйнтейнеру не понравился стиль кода.
Грег Крокха-Хартман в переписке добавил конкретики: Хелвиг пытался наложить вето на изменения, которые выходили за рамки его подсистемы, что противоречит принципам работы ядра. Линус поддержал эту точку зрения, заявив, что мэйнтейнеры отвечают за свой код, но не за то, как другие разработчики используют его результаты. Итог: Хелвиг превысил полномочия, а изменения на Rust были приняты в обход его протестов. Это показательный кейс, который подчёркивает философию Линуса: прогресс не должен стопориться из-за локальных амбиций.
Технический взгляд: зачем ядру Rust?
Чтобы понять, почему Линус так отстаивает Rust, нужно заглянуть под капот. Си — это мощный, но опасный инструмент. Переполнение буфера, гонки данных, ошибки с указателями — эти проблемы преследуют ядро десятилетиями. Rust же предлагает встроенные механизмы безопасности: строгую проверку памяти на этапе компиляции и отсутствие undefined behavior в ключевых аспектах. Для ядра, где ошибка может обрушить систему, это не просто бонус, а необходимость.
При этом Rust не заменяет Си полностью. Как отметил Грег, текущая цель — использовать его для новых драйверов и модулей, оставив миллионы строк кода на Си нетронутыми. Например, обвязки для DMA на Rust позволяют интегрировать современные подходы без переписывания подсистемы. Это эволюция, а не революция: ядро становится гибридным, где старое и новое сосуществуют через чётко прописанные интерфейсы.
Реакция сообщества и взгляд в будущее
Споры о Rust выявили раскол среди мэйнтейнеров. Некоторые, как Хектор Мартин из Asahi Linux, даже покинули проект из-за напряжённости. Однако Линус и Грег демонстрируют уверенность: ядро должно развиваться, даже если это вызывает дискомфорт. Переписка показывает, что Торвальдс готов принимать код на Rust в обход локальных вето, если он соответствует общей архитектуре и проходит ревью. Это сигнал: язык будет проникать в ядро всё глубже, и сопротивление отдельных личностей его не остановит.
Для инженеров, следящих за развитием Linux, это повод задуматься. Rust — не просто тренд, а инструмент, который повышает надёжность и открывает новые горизонты. Мэйнтейнерам, игнорирующим его, придётся смириться с потерей влияния на новые части ядра. Те же, кто адаптируется, смогут формировать будущее проекта. В ближайшие годы мы увидим больше драйверов и подсистем с элементами Rust, а сообщество постепенно привыкнет к мультиязыковой реальности.
Итог: прагматизм Линуса в действии
Позиция Торвальдса и Крокха-Хартмана — это не слепая поддержка Rust, а прагматичный взгляд на развитие ядра. Они выстраивают систему, где Си и Rust работают параллельно, не мешая друг другу. Мэйнтейнеры получают свободу выбора, но не власть над чужими решениями. Инцидент с Хелвигом показал, что Линус готов отстаивать прогресс, даже если это требует жёстких мер. Подробности дискуссии — в переписке на lore.kernel.org и новости на OpenNET.