11.2 C
Москва
Воскресенье, 9 марта, 2025

Мейнтейнер Linux активно мешает внедрению Rust в ядро — Tproger

Мейнтейнер Linux отверг поддержку Rust в DMA без аргументов, назвав его «раком» для ядра. Это ставит под вопрос будущее Rust в Linux

Разработчики Rust for Linux (R4L) предложили патч, позволяющий коду на Rust использовать DMA (Direct Memory Access).

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

Патч, отправленный 8 января 2025 года, добавляет RAII-обертку над выделенной памятью и базовые операции чтения-записи.

Он не меняет C-код ядра, а лишь добавляет новую абстракцию для Rust-драйверов.

Категорический отказ без аргументов

Однако мейнтейнер DMA в Linux Кристоф Хэллвиг сразу отверг предложение без объяснений:

Никакого rust-кода в ядре/dma, пожалуйста.

Обсуждение не продвинулось дальше. Хэллвиг не предоставил технических аргументов, но продолжал настаивать, что Rust в ядре мешает его поддержке.

Когда мейнтейнеры R4L попытались уточнить, в чем проблема, последовал ответ:

Интерфейсы к DMA API должны оставаться в читаемом Си-коде, а не в странных биндингах, чтобы он оставался удобным для поиска и сопровождения.

«Rust — это рак для ядра»

По его мнению, добавление второго языка делает Linux «неподдерживаемым», а код на Rust — это «раковая опухоль» в проекте. Хэллвиг заявил:

Если хотите сделать Linux невозможным для поддержки из-за кода на двух языках, делайте это в своих драйверах, но не тащите этот рак в системные подсистемы.

Он также выразил уверенность, что Linux выжил так долго именно потому, что не имел языковых барьеров внутри.

Читать также:
Прокуратура начала проверку «Аэрофлота» из-за плохой работы российского ПО для навигации — «Авиаторщина»

Rust уже в ядре — но кому-то это не нравится

Стоит отметить, что Rust в ядре уже давно используется. В R4L есть абстракции для множества API ядра и никто не заставляет мейнтейнеров C-кода разбираться в Rust.

Патч с абстракцией DMA оборачивает всего один C-тип и две функции, но даже это вызвало жесткое сопротивление.

Разработчик пробежал полумарафон с помощью Strava API и IoT-кормушки с M&M’stproger.ru

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

НОВОЕ НА САЙТЕ