Так в чем основная проблема интеграции Rust в Linux?
Несомненно главной проблемой любой сложной интеграции является налаживание совместной работы всех ее участников и преодоление консерватизма , отсутствия коммуникаций, различий подходов между Rust и С, а так же внятно написанной документации.
✒️ Как пишет Стивен Вон-Николс, старший редактор ZDNET, тоже самое и случилось с интеграцией Rust, он столкнулся с рядом проблем, на котором остановился в прошлый раз и которые обсуждались за круглым столом разработчиков ядра Linux на недавно проходившем европейском саммите по вопросам развития открытого кода в Вене.
Как заметил Miguel Ojeda, разраработчик Linux и Rust, выступавшей на встрече Linux Plumbers Rust, ”ответ мантейнерам кроется в работе с Rust для разработчиков Linux. Мантейнеры внесут свое понимание подсистем, в то время как программисты Rust -- свое экспертное знание языка программирования. Работая вместе, обе группы смогут помочь продвижению кода на Rust в Linux.”
Alice Ryhl, программный инженер Google от команды Rust Android, согласился, что “По мне, успешность подхода выражается в объединении разработчика ядра и эксперта Rust. Я общалася с мантейнером и мы выпустили патч вместе. Мы смогли поучиться друг у друга“ .
Это был пример того, что может случиться, когда дело идёт хорошо. Иногда, однако, это не так .
Wedson Almeida, инженер программного обеспечения Microsoft и один из Rust мантейнеров Linux, недавно покинула проект, в сообщении на почтовой рассылке ядра Linux ( Linux Kernel Mailing List (LKML), сообщила что “После почти четырех лет, нашла в себе потерю энергии и энтузиазма, так как однажды мне пришлось отвечать на некоторую несусветную чушь, поэтому лучше оставить тем у кого они все ещё остались." . Несмотря на это ядро команды разработки ядра на Rust все ещё остаётся большим.
Однако, участники встречи, признали положительное влияние совместной работы , что привело к изменению существующих API на С и практики документирования. Заставляя думать людей о том как Rust может помочь Linux, им также пришлось глубоко покапаться в своем коде и объяснить его
Для примера, Al Viro, мантейнер виртуальной файловой системы, рассказал, что Josef Bacik, технический лидер команды разработки файловой системы Meta, переработал 65 страниц документации. Это в свою очередь, позволило снабдить код на С простыми примерами, для того чтобы разработчики в будущем смогли его конвертировать . Теперь документация даёт четкие правила что делает код и почему .
Ещё участники встречи также указали на одну критическую проблему: несмотря на 1000 оплачиваемых разработчиков ядра, никто не финансирует ведение документации. Это всем также широко известно, но часто игнорируют проблему документирование по Linux и открытому коду.
Jonathan Corbet, разработчик ядра Linux и сооснователь Linux Weekly News (LWN), обнаружил , что некоторые из противоречий в документации идут из принципиальной разницы между C и Rust.
Пока ещё все не в восторге от Rust в Linux, но прогресс на лицо. На встрече с мантейнерами Тордвальс сказал, что нет необходимости понимать Rust, чтобы впустить его в свои подсистемы. Иронично добавив, что "никто не понимает подсистему управления памятью, но все могут работать с ней.“
Картинка взята с ZDNET, на которой разработчик ядра Linux сооснователь LWN Jonathan Corbet.