Интеграция ржавчины в ядре Linux сталкивается с проблемами, но показывает прогресс

Конфликт между ржавчинами и сторонниками C в ядре Linux в течение некоторого времени растет. Линус Торвальдс, создатель Linux, сказал на Summit Open Source Europe в августе 2024 года, разногласия поднялись на «почти религиозные войны». С тех пор все стало еще более враждебным.

Почему? Дэн Уильямс, старший главный инженер в архитектурной команде Intel Core Architecture Architecture, объяснил на встрече Linux Slumbers 2024: «Содействия ядрам, как правило, очень консервативны. Они знают C Итак, они «не знают, как просмотреть это или отлаживать это, потому что они не понимают код».

Однако то же самое верно для разработчиков ржавчины, пытающихся работать с фондами C ядра Linux. Последняя вспышка была получена из-за запроса добавить патч для ржавчины для передачи интерфейса программирования приложения (API) прямого доступа к ядра Linux (DMA) в январе. Эта функциональность необходима для того, чтобы драйверы устройств Rust могли иметь использование ввода/вывода данных (ввод/вывод).

Код ржавчины и C API

Выдающийся инженер -программист и соавтор ядра Linux Кристоф Хеллвиг не хотели иметь с этим ничего общего. Он ответил: «Нет кода ржавчины в ядре/DMA, пожалуйста». Это странная позиция, так как патч не поместил никакого кода в этот каталог.

Когда Мигель Оджеда, надзиратель проекта Rust For Linux, попросил Hellwig предложить альтернативу, он ответил, что разработчики ржавчины должны «держать обертки в вашем коде, вместо того, чтобы сделать жизнь болезненной для других». Достигаясь сердца вопроса, в другой примечании по рассылке ядра Linux (LKML), Hellwig писал: «Поддержание многоязычных проектов-это боль, с которой я не заинтересован. Если вы хотите использовать что -то, что не C, будьте этой сборкой или ржавчиной, вы пишете на C -интерфейсы и имеете дело с несоответствием импеданса ».

Ржавов труднее для сопровождающих?

В качестве альтернативы, инженер Red Hat Hate и разработчик ядра Данило Крумрич «предложили поддерживать слой абстракции ржавчины для последовательного распределения DMA в качестве отдельного компонента». Krummrich добавил, что Rust for Linux разработчики пишут код Rust, который абстрагирует API C для всех драйверов ржавчины и поддерживается разработчиками Rust.

Это тоже не работает для Hellwig. Он ответил: «Я также не хочу другого сопровождающего. Если вы хотите сделать Linux невозможным для поддержания из-за межязычной кодовой базы, сделайте это в своем драйвере, чтобы вы должны были сделать это вместо того, чтобы распространять этот рак на основные подсистемы ».

«Рак», благодаря критике Стива Баллера в отношении Linux, всегда была красной буквы в кругах Linux. Последовали много горячих слов. Я думаю, что старший разработчик ядра Linux Тед Т’Со, тем не менее, ударил по гвоздям по голове, когда сказал, что, в конечном счете, забота Кристофа заключается Очень ограниченная полоса пропускания, которая имеет сопровождающие ». Короче говоря, это не столько, что абоненты ядра считают, что ржавчина ужасна; У них не хватает часов в день, чтобы поддерживать свои проекты.

‘Rust Device Dissing’

Как бы то ни было, один из сопровождающих, ведущий разработчик Asahi Linux Гектор Мартин, призвал Torvalds «поднять авторитетный ответ», чтобы разрешить беспорядок драйвера Drust Device. «Если он этого не сделает, Мигель и другие ржавчины должны просто объединить эту серию, как только она будет рассмотрена и готова, игнорируя явную попытку Кристофа саботировать проект». Когда это не сработало, Мартин взялся за «стыд в социальных сетях», чтобы нести свою точку зрения. Торвальдс не был удивлен.

Торвальдс ответил: «Как насчет того, чтобы принять тот факт, что, может быть, проблема — это вы? Вы думаете, что знаете лучше. Но текущий процесс работает. У этого есть проблемы, но проблемы — это факт жизни. Там нет идеального ». Тем не менее, Торвальдс продолжил: «Если у нас есть проблемы в модели разработки ядра, то социальные сети, несомненно, не являются решением. Точно так же, это, черт возьми, не было решением для политики ».

Мартин ответил, выпав из разработки платформы Apple/Arm Linux, сказав: «У меня больше нет никакой веры в процессе разработки ядра или подхода управления сообществом».

Уроки из Linux в реальном времени

Итак, что можно сделать, двигаясь вперед с Rust и Linux? Старший разработчик Linux в реальном времени Стивен Ростедт предположил, что разработчики Rust могут пойти по стопам Linux в реальном времени, который потребовалось двадцать лет, чтобы присоединиться к ядра Linux; это было «держать [Rust as] вне деревья. … Да, быть вне дерева очень сложно, потому что вы должны постоянно переименовать … но это также дает вам полную гибкость, чтобы попробовать новые подходы. Тот факт, что что -то вне дерева не означает, что оно не может быть опубликовано и использовано. Red Hat и Suse, а также многие другие, отправили Preempt_rt, пока она была вне дерева ».

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

В этом документе рассматриваются несколько важных моментов, включая ожидаемый уровень поддержки ядра. Ojeda отметила, что каждый содействующий продолжает решать, как справляться с ржавчиной. «Некоторые подсистемы могут решить, что они не хотят иметь код ржавчины на данный момент, как правило, по причинам пропускной способности. Это нормально и ожидалось ». Таким образом, в то время как некоторые разработчики хотят, чтобы ржаветь гораздо быстрее переехала в ядро, позиция Hellwig идеально защищается.

Действительно, Ojeda продолжил: «Для ржавчины подсистема может позволить временно нарушать код ржавчины. Намерение состоит в том, чтобы облегчить дружеское принятие ржавчины в подсистеме, не представляя бремени для существующих сопровождающих, которые могут работать над срочными исправлениями для С -стороны. Тем не менее, поломка должна быть исправлена ​​как можно скорее, в идеале, прежде чем поломка достигнет Линуса ».

Интеграция ржавчины с Linux

Когда дело доходит до интеграции Rust с Linux, в отличие от технической мантра «двигаться быстро и сломать вещи», правило состоит в том, чтобы «двигаться медленно и стабилизировать вещи». В конце концов, несмотря на все резкие слова, интеграция Rust в Linux продолжала двигаться вперед.

Например, ядро ​​Linux 6.13, выпущенное в январе 2025 года, принесло значительные расширения поддержки ржавчины. Это ядро ​​вводило на месте модули, привязки и события трассировки для разработчиков ржавчины. Это означает, что, пояснил Грег Кроа-Хартман, стабильный релиз Linux, так это то, что поддержка ржавчины находится в «переломной точке; Ожидайте увидеть гораздо больше драйверов ржавчины сейчас, когда эти привязки присутствуют.

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

Короче говоря, несмотря на всю войну слов, движение Руста в Linux продолжает быть медленным, устойчивым и продуктивным, как мы можем видеть в 6.13. Руст найдет свое место в Linux.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Стивен Дж. Воган-Николс, известный как SJVN, пишет о технологиях и технологии, так как CP/M-80 был передовой операционной системой ПК, 300BPS был быстрым подключением к Интернету, WordStar был современным -Арт текстовый процессор, и нам понравилось. Подробнее от Стивена Дж. Вогана-Николса

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *