К чему приведет зависимость процесса разработки ядра Linux от одного человека
В последнее время разработчиками Linux ядра все чаще поднимается серьёзный вопрос, связанный с излишней зависимостью всего проекта от одного человека: Не настало ли время для Линуса Торвальдса разделить бремя ответственности, лежащее на нём, с кем-нибудь ещё ? Модель разработки ядра Linux отличается многими уникальными особенностями, и одна из них - право публиковать код в "официальный" репозиторий имеет только один человек. Множество мейнтейнеров присматривает за разными подсистемами ядра, но каждый слитый (merge) ими патч, если он в итоге должен быть в главной ветви, будет проверен Линусом.Работа по такому сценарию - потенциальная почва для возможного повторения знаменитого эпизода 1998 года, когда Линус "перегорел". Джонатан Корбет (Jonathan Corbet) считает: "Если Линус останется центральной фигурой в разработке ядра, то сообщество в целом должно быть уверено в том, что процесс будет масштабироваться и не погребёт Линуса под собой. Что касается самого кода, то есть смысл уже сейчас подумать о проблемах масштабирования следующего уровня, до того, как они возникнут."
Другой комментатор высказывается, что в случае ухода Линуса, все дистрибутивы немедленно начнут сами сливать (merge) версии из соответствующих подсистем, и в итоге "может родиться новый золотой стандарт, либо со стороны разработчиков либо со стороны комьюнити". "У Linux чрезвычайно распределённая модель разработки без единого узкого места; централизация едва ли целесообразна и уж тем более в ней нет жёсткой необходимости".
Также часто упоминается так называемый "фактор автобуса" (bus factor), вошедший в обиход из известного эмпирического исследования "What If Linus Torvalds Gets Hit By A Bus?" (что будет если Линуса собьет автобус) и высказываются мнения о том, что Линус должен начинать готовить себе преемников, что, как известно, занимает немало времени. Опять же, "все мы люди в конце концов", и хороший пример здесь - Кон Коливас (Con Kolivas) с его патчем, который предоставил бы конечному десктопному пользователю гораздо более удобные условия работы с мультимедия. "Но патч снизил бы производительность серверов, которые в конечном счёте являются кормильцами Линуса, так что патч был отвергнут, и в итоге Кон ушёл". В данной ситуации на Линусе лежала слишком большая ответственность и он был под огромным давлением, а он всего только человек.
Решением в подобных ситуациях может стать разделение процесса разработки на три части: десктоп, сервер и встраиваемый код, поскольку то, что хорошо для десктопа, затормозит сервер, а уж встраиваемые системы - вообще отдельная область. Линус мог бы заняться сервером и передать десктопы тому же Кону, а встраиваемые системы - человеку, возглавляющему один из долгосрочных "встраиваемых" проектов. В любом случае объём работы уже сегодня слишком велик даже для человека со знаниями и умениями Линуса.
Однако не все смотрят на вещи под таким углом: процесс публикации изменений (commit) занимает уже огромное время и он будет развиваться, также как и само ядро. В самом худшем варианте развития событий Линусу придётся написать что-то ещё, как это было с git, считают некоторые. "Не стоит обманываться насчёт того, что Линус должен масштабироваться - ему приходится трудиться в поте лица, но он - капитан команды и привратник с функцией фейс-контроля. Тысячи людей работают на него, а ему в нужный момент необходимо только открывать дверь." "У Линуса огромная практика и он ещё полон честолюбивых планов. Он может продолжать работать до окончания карьеры, имея признание во всём мире и с душевным удовлетворением от хорошо проделанной работы."
© OpenNet