Чем занимаются сопровождающие ядра Linux и почему им нужна ваша помощь
Все используют Linux, и компании готовы платить за его разработку, но поддерживать код Linux? Это другое дело.
Монтеррей, Калифорния: На саммите членов Linux Foundation Джонатан Корбет, разработчик ядра Linux и исполнительный редактор Linux Weekly News, объяснил, где находятся болевые точки у сопровождающих ядра Linux и почему их становится немного очень для всех поваров Linux.
Действительно, многие специалисты по сопровождению кода Linux выгорают. Почему? Есть много причин. Однако сначала вам нужно понять, чем на самом деле занимаются сопровождающие ядра Linux.
Это люди, которые берут код от тысяч разработчиков, проверяют его на наличие ошибок, проверяют отсутствие регрессий, координируют код с патчами от других разработчиков из верхних и нижних уровней дерева и, наконец, направляют патчи к основная линия. Да, и управляйте бэкпортами. Это большая работа, но это только «забавная» часть кода.
Специалисты по сопровождению также должны урегулировать разногласия между разработчиками и взаимодействовать с поставщиками и пользователями. Последнее может варьироваться от переговоров с производителями оборудования с целью заставить их открыть исходный код своих драйверов и помощи разработчикам в создании драйвера до помощи пользователю, у которого возникли проблемы с сенсорной панелью ноутбука — вполне возможно, потому что вышеупомянутый поставщик никогда сотрудничал, когда драйвер тачпада был впервые создан.
Результат? Что ж, как Дэррик Вонг, бывший специалист по сопровождению файловой системы XFS, выразил это в своем недавнем заявлении об увольнении: «Много лет назад я сгорел, пытаясь совмещать роли старшего разработчика, рецензента, тестировщика, триажера (паршиво), менеджера по выпуску и (иногда) связь с менеджером… Я думал, что если продержусь еще немного, то смогу сосредоточиться на долгосрочной разработке и улучшении опыта для пользователей. Я ошибался».
Вонг добавил:
Большинство моих друзей работают в небольших компаниях, некоммерческих организациях и местных органах власти. Они сообщают о тех же проблемах с переутомлением, всепроникающим страхом и гневом, а также о том, что им трудно понять и адаптироваться к новым идеям, которые я наблюдаю здесь. Они видят прямую связь между недостатком доходов и ресурсов их организации. Они не понимают, почему, черт возьми, то же самое происходит со мной и моими коллегами по работе, когда мы все работаем в компаниях, которые зарабатывают сотни миллиардов долларов.
Прежде чем углубиться в это, позвольте мне отметить, что проблема выгорания сопровождающих связана не с тем, что Linux Foundation не платит им. В Linux Foundation есть только три сопровождающих: Линус Торвальдс, Грег Кроа-Хартман и Шуа Хан. Вот и все.
Это потому, что Linux Foundation не является компанией-разработчиком программного обеспечения. Это фонд с открытым исходным кодом, который предоставляет предприятиям, организациям и разработчикам ресурсы для создания проектов с открытым исходным кодом. По большей части корпорации нанимают сопровождающих.
Но, как упомянул Корбет, почти никто – никто – не платит людям за работу по обслуживанию. Техническое обслуживание — это дополнительная работа, которую они выполняют помимо своей повседневной работы. Компании хотят, чтобы их программисты создавали новый код. Они не заинтересованы в том, чтобы платить им за помощь в управлении всей фундаментальной инфраструктурой Linux или любого другого проекта с открытым исходным кодом.
Результат? Кобет процитировал Стива Ростедта, инженера-программиста Google и сопровождающего несколько проектов ядра Linux: «Поскольку я сам занимаюсь сопровождением и работаю полный рабочий день, но не занимаюсь сопровождением, я изо всех сил пытаюсь найти время для работы над этим».
Кто бы не стал? Я преклоняюсь перед сопровождающими. Я известен как чрезвычайно продуктивный писатель — опубликовано более 10 тысяч статей и продолжает расти, — но я не мог справиться с их рабочей нагрузкой.
Но ждать! Есть больше. Хотя Корбет приветствует появление языка Rust в Linux, это также добавит дополнительную нагрузку на сопровождающих. «Если вы являетесь специалистом по сопровождению ядра и собираетесь начать получать материалы, написанные на языке Rust, вам необходимо понимать этот язык на очень глубоком уровне… Это слишком много — просить сопровождающего изучить этот новый язык, когда они уже заняты и перегружены работой, которую делают, так что в будущем это будет проблемой».
Другая проблема — более широкое использование фаззеров. Эти тестовые программы вводят полуслучайные данные в программу/стек для обнаружения ошибок. Это отличный метод для поиска ошибок и потенциальных дыр в безопасности.
Но в последнее время люди, понятия не имеющие, используют фаззеры для поиска «ошибок». Итак, Корбет заметил: «Фуззеры генерируют тысячи отчетов. И даже если все эти отчеты были хорошими, кто-то должен их просмотреть или кто-то должен их все понять. Эта задача ложится на сопровождающего. Добавьте к этому тот факт, что многие из эти отчеты плохие или дублируются, и вы теряете огромное количество времени». Хуже того, «у нас есть множество людей, которые запускают фаззеры и составляют отчеты, не проверив, действительно ли они нашли реальную проблему или каким-либо образом помогают решить эти проблемы».
Именно то, что нужно сопровождающим, — дополнительная и часто бессмысленная работа.
Итак, каков ответ? Решите проблему нехватки персонала для сопровождающих.
Корбет сказал:
В мире, где каждый год в ядре работают 5 тысяч человек, нехватка персонала может показаться странной вещью, на которую стоит жаловаться. Но сопровождающие перегружены работой. Мы работаем для компаний, приносящих доход в сотни миллионов долларов в год, но компании, которые любят нанимать специалистов по сопровождению ядра, не всегда хотят давать им время на то, чтобы действительно заниматься сопровождением ядра. Их необходимо оценить за их работу по сопровождению.
Короче говоря, «дайте специалистам по сопровождению выполнять обслуживание как часть своей работы, отдайте им должное за это, потому что этого не происходит, а это то, что нам действительно нужно».
Компаниям необходимо осознать ценность поддержки не только Linux, но и других важных проектов с открытым исходным кодом. Успешная разработка — это не только создание новых строк кода. Речь идет о том, чтобы вся кодовая база работала в целом хорошо, а это означает предоставление людям времени и ресурсов.
Не только корпорации должны активизироваться. Корбет добавил, что разработчикам необходимо проверять патчи.
Корбет объяснил: «Если вы отправляете исправления в ядро, вам следует просматривать исправления, отправленные в ядро. часть, чтобы помочь им».
Таким образом, при большей поддержке со стороны как программистов, так и корпораций, большое выгорание сопровождающих Linux может быть устранено до того, как оно станет еще большей проблемой, чем оно есть сейчас.