Грег Кроа-Хартман: Rust спасет Linux от ошибок C

от автора

Сопровождающий разработчик стабильной ветки ядра Linux Грег Кроа-Хартман считает, что язык Rust поможет справиться с уязвимостями в ядре Linux, которые возникают из-за типичных ошибок на языке C. По его словам, Rust позволяет выявлять такие ошибки на этапе сборки, а не в ходе рецензирования кода людьми. 

В ходе выступления на конференции Rust Week 2026 Кроа-Хартман привёл несколько примеров реальных проблем, которые долгое время оставались незамеченными. Одна из них — ошибка в подсистеме Bluetooth, существовавшая около 15 лет: разработчик разыменовал указатель без проверки. Другая — проблема в гипервизоре Xen, где в обработчике ошибок забыли снять блокировку. По словам Кроа-Хартмана, именно такие мелкие ошибки чаще всего и приводят к уязвимостям.

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

По оценке разработчика, такие механизмы могли бы устранить до 60% типичных проблем в ядре. Кроме того, это снижает нагрузку на сопровождающих: им не нужно разбирать базовые ошибки, и можно сосредоточиться на логике работы. Также Rust повышает безопасность работы с внешними данными. Язык чётко разделяет доверенные и недоверенные данные и требует явно обрабатывать переход между ними.

Проблема уязвимостей в Linux остаётся серьёзной. По словам Кроа-Хартмана, команда безопасности публикует в среднем около 13 отчётов в день, а иногда их число достигает нескольких сотен. На этом фоне Rust рассматривается как один из способов снизить количество ошибок.

При этом язык не считается универсальным решением, подчёркивает Кроа-Хартман, никто не планирует переписывать всё ядро. Язык предлагают внедрять постепенно — прежде всего в новых драйверах и подсистемах.

На прошлой неделе на конференции Open-Source Summit 2026 Линус Торвальдс рассказал о большом числе отчётов об ошибках, сформированных при помощи ИИ-ассистентов. Он охарактеризовал это как краткосрочную боль, которая принесёт пользу в долгосрочной перспективе. По словам Торвальдса, любое выявление и исправление ошибки лучше, чем её игнорирование.

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

ссылка на оригинал статьи https://habr.com/ru/articles/1041534/