> man operating_systems
Конец бесплатного BitKeeper'а
на Четверг, 07 Апрель 2005, 04:26
добавил: Джереми Эндрюс (Jeremy Andrews) список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи
комментарии: 0
просмотров: 2086

Пятого апреля компания BitMover, создатель системы контроля версий, используемой для разработки Linux, объявила о своем решении прекратить разработку и поддержку бесплатной версии своего продукта для разработчиков сводного/открытого ПО. Джереми Эндрюс (Jeremy Andrews), создатель портала KernelTrap.org, рассказывает о том, как это произошло и что ждет разработку Linux дальше.<br />
<br />
(c) 2005 kerneltrap.org<br />
Перевод - Роман Химов.<br />
<a href=http://kerneltrap.org/node/4966>Оригинал </a> доступен на KernelTrap.org.

Впервые BitKeeper был использован для разработки Linux в декабре 1999 года, когда его начал использовать проект Linux PowerPC. Затем, в феврале 2002, создатель Linux, Линус Торвальдс (Linus Torvalds) обнаружил, что BitKeeper - "лучший инструмент для работы", и начал использовать его для управления разработкой основной ветви ядра. Это событие имело широкую огласку как в сообществах открытых исходников и свободного ПО, так и за их пределами. BitMover, компания создатель BitKeeper, была основана ее сегодняшним CEO, Ларри МакВоем (Larry McVoy) (интервью), который изначально задумывал BitKeeper, как инструмент, который помогал бы Линусу справляться со все возрастающими задачами управления ядром Linux. С того момента, как три года назад Линус начал использовать этот инструмент, темп разработки ядра Linux ускорился вдвое.

Существует два определения слова "free", которое часто используется для описания ПО. Первое - "Free as in Freedom", а второе - "Free as in Free Beer" (В русском языке ситуация малость попроще - есть свободное (от слова свобода) ПО и есть бесплатное (как бесплатное пиво, соответственно) - прим. пер.). BitKeeper был доступен бесплатно согласно последнему определению, что позволяло разработчикам свободного и открытого ПО использовать его без какой-либо платы. Он был доступен по соглашению о том, что те, кто будет использовать бесплатный инструмент, не будут разрабатывать в то же самое время конкурирующий с ним продукт. Другими словами, целью было предоставление инструмента, который можно было бы бесплатно использовать, но не свободно клонировать. В то же самое время, более богатая возможностями версия BitKeeper продавалась как коммерческий продукт и обе версии оставались интеллектуально собственностью BitMover.

Шумная группа разработчиков долго протестовала против использования Линусом BitKeeper, исходя из того, что Linux является флагманом свободного ПО и движения открытых исходников. Основатель проекта GNU, Ричард Столлмен (Richard Stallman) (интервью), был среди протестантов и очень резко критиковал решение Линуса об использовании несвободного инструмента. Однако многие понимали, что ни один свободный инструмент, существующий на данный момент не имел столько возможностей, как BitKeeper, который предоставлял возможность ведения по-настоящему распределенной разработки. Попытки обратной разработки некоторых возможностей BitKeeper приводили к повторяющимся предупреждениям со стороны BitMover. Две последние такие попытки привели к решению BitMover прекратить разработку и запретить использование бесплатного BitKeeper.

"Лучший инструмент для "
Вскоре после того как Линус начал использовать BitKeeper, он описал его как "лучший инструмент для работы". В отличие от многих инструментов, которые требовали центрального репозитория, который хранил бы главные копии всех данных, лежащих в системе контроля версий, BitKeeper позволял создать действительно распределенную систему, в которой каждый владеет своей главной копией. Более того, большинство систем контроля версий рассматривали как независимые сущности отдельные файлы и даже отдельные секции тех же файлов. Если изменение вносилось в файл А и затем еще одно изменение вносилось в файл Б, ПО контроля версий позволит кому-либо принять изменения только в файле Б. В BitKeeper это невозможно. Вместо этого, для того, чтобы получить изменения в файле Б, вы должны сначала принять изменения в файле А. Такой подход обеспечивает полную идентичность двух репозиториев.

Ларри МакВой рассказывал, что когда Линус только начинал использовать BitKeeper, он столкнулся с этой проблемой и пожаловался на это его свойство, — "случилось так, что Линус не смог выбирать отдельные патчи из большого набора изменений". Джеф Гаржик (Jeff Garzik) пояснил это концептуальное отличие в документе "bk-kernel-howto", включенном в состав ядра. До того как Линус начал использовать BitKeeper, ему приходилось просматривать каждый отдельный патч, строчка за строчкой, и он мог выбирать лишь те кусочки, которые он хотел. С BitKeeper'ом это стало сложнее делать. Ларри пояснил, что результатом такого подхода стало большее доверие к разработчикам отдельных подсистем, так как Линус начал просматривать некоторые патчи исходя из категории, а не построчно. Те из разработчиков, которым Линус доверял больше, требовали меньшей проверки, а те, кому он доверял меньше, проверялись тщательнее. Таким образом, большая часть усилий, затрачиваемая на обеспечение высокого качества, была перераспределен, и, конечно, это помогло удвоить темп разработки ядра.

Свобода против бесплатности
Несмотря на повышение продуктивности работы, шумная группа продолжала протестовать против использования Линусом инструмента, который как не имел открытых исходников, так и не являлся свободным. Начались попытки обеспечить схожую с BitKeeper функциональност в продуктах с открытыми исходниками. Это привело к еще большему флейму в листе разработчиков ядра Linux (Linux Kernel Mailing List - LKML), где Ларри пытался пояснить, что он был счастлив предоставить Линусу и другим разработчикам инструмент для разработки ядра, но не для обратного проектирования. Недавно две такие попытки обратного проектирования привели BitMover к тому, что они поставили под вопрос существование бесплатной части своей бизнес-модели. Что еще хуже, одна из этих попыток неявно финансироваласьOSDL, где сегодня работает Линус Торвальдс.

Ларри пояснил, что разработчик, активно работавший над обратным проектированиемпротокола BitKeeper, по прежнему работает в OSDL над другим проектом. Переговоры по улаживанию ситуации начались около пяти недель назад и пришли к устному соглашению о том, что он должен прекратить свои исследования. Однако, после этого обнаружилось, что попытки обратного проектирования продолжались. Несмотря на то, что OSDL не платила напрямую за обратное проектирование, они по прежнему являлись работодателем разработчика, который активно работал над конкурирующим продуктом, что запрещено согласно лицензии BitKeeper. Ларри добавил, — "У OSDL был шанс уладить проблему, но вместо этого они пожали плечами и сказали "это не наши проблемы". Это стало соломинкой из пословицы, которая проломила спину верблюда. Взвешивая это и предыдущие нарушения с 500000 долларов в год, которые BitMover тратит разработку и поддержание бесплатного BitKeeper, жестким решением стало свертывание поддержки и доступности бесплатной версии продукта.

Что пошло наперекос
Обсуждая причины, которые привели к такому решению Ларри пояснил, — "это действительно проблема сообщества открытых исходников и мне стоит сказать, что сообщество не могло сделать больше ошибок, чем оно сделало". Как давний фанат открытых исходников и CEO BitMover он отметил, — "мы представляем самую дружелюбную к открытым исходникам коммерческую организацию, какую вы когда-либо видели", предупреждая, что события, которые заставили BitMover свернуть свой бесплатный продукт, также могут побудить другие компании даже не задумываться о том, чтобы делать версии своих продуктов для Linux. "Вспоминая Sun, у них была пословица "все дело в приложениях, ". Что означало, что все разговоры вокруг "моя ОС лучше чем твоя " ничего не значили в сравнении с тем, больше ли под вашу платформу приложений, чем под платформу того парня. Это касается и Linux, равно как и то, что ни одна компания не будет портировать свои приложения на платформу, объявленная цель и история которой - обратное проектирование всего, что она находит для себя полезным. В какой-то момент миру открытых исходников надо решить, либо они терпят коммерческое ПО и уважают тот факт, что коммерческие компании имеют право получать деньги за свои усилия, либо выступить и принять вызов по обеспечению версий с открытыми исходниками для каждого приложения."

Он продолжает, — "наша позиция состоит в том, что мы не думаем, что у нас есть хоть какие-то шансы на изменение того как ведет себя "сообщество открытых ". В отличие от морских пехотинцев, сообщество открытых исходников более чем желает проигнорироватьналичие у себя плохишей как "не мою " (морские пехотинцы наказывают группу за "" поведение, вскоре все становятся хорошими). Возможно, когда-нибудь эта ситуация исправится, но до того времени нам надо делать то, что имеет смысл для нашего бизнеса и позволять ребятам с открытыми исходниками выживать нас из бизнеса не имеет смысла."

Ларри также отметил, что некоторые люди могут посчитать конец бесплатного BitKeeper как поражение, но на самом деле это не так. Линус заметил, — "три года использования BitKeeper внесли серьезные улучшения в процесс работы", описывая, как вместо работы с изменениями патч за патчем он смог работать с другими доверенными разработчиками на более высоком и более эффективном уровне.

Решение было непростым. "Я пытался помочь и мне было больно видеть как части сообщества продолжали бичевать меня за то, что я не мог придумать политически корректный способ ", — пояснил Ларри. — "Вы не представляете, насколько это было ".

Что дальше
Следущие три месяца BitMover намерен выводить бесплатную версию BitKeeper. Некоторые деньги были отложены на обеспечение коммерческими лицензиями отдельных разработчиков ядра, однако, Линус Торвальдс не среди них. Как предложил Ларри, — "если бы Линус, Эндрю и другие перешли бы куда-нибудь в другое место, мы бы с радостью предоставили им лицензии", имея ввиду их сегодняшнего работодателя, OSDL.

Помимо этого, всем стало очевидно, что BitMover уже не получает назад того, что он тратит, поддерживая бесплатный продукт. В самом начале обмен услуги и продукта на маркетинговые достижения и отчеты об ошибках был достаточен. Однако сейчас это уже не так и Линус, не заинтересованны в односторонней сделке даже тогда, когда он находится в выигрышном положении, решил по этой и другим причинам уйти от использования BitKeeper'а и начать поиски альтернативы.

Ларри отметил, что дерево исходников ядра будет по прежнему поддерживаться BitKeeper'ом, так как многие разработчики ядра имеют коммерческие лицензии для этого. Сюда же входят работники множества больших компаний, которые активо участвуют в разработке Linux, таких как IBM, Intel, HP, Nokia и Sun, а также большого количества меньших компаний.

Пока еще не решено, какой инструмент заменит BitKeeper для управления разработкой ядра Linux. Было оттестировано несколько инструментов, но пока еще не было ничего выбрано, и на данный момент ничто не дает достаточной производительноти и функциональност. Ларри отметил, что Линус опробовал monotone, но простой импорт обычных файлов без информации о версиях занял два часа, что слишком медленно. Та же самая ситуация наблюдалась и с Darcs. В то же время, какой-то инструмент будет выбран и доработан для соответствовани требованиям разработчиков ядра.

Ларри заметил, что такой инструмент будет нуждаться в поддержке только Linux, и у него не будет необходимости поддерживать другие платформы вроде Solaris или Windows, а потому он сможет воспользоваться некоторыми специфичными для Linux преимуществами, что позволит ему работать "ослепительно быстро". На самом деле, Линус уже начал работу над простым инструментом, который использует преимущества Linux для лучшей производительноти. В этом ему помогал Ларри, который добавил, что это также хорошо для BitMover, так как инструмент, существующий только для Linux, не будет конкурентом BitKeeper, большая часть рынка которого - Windows-системы.

BitKeeper против замены с открытыми исходниками
Уход бесплатного BitKeeper означает то, что какой-то другой проект сделает шаг вперед, чтобы занять его место как системы контроля версий, используемой для ядра Linux. На вопрос о том, думал ли он о том, что результатом этого всего станет создание проекта, который будет напрямую конкурировать с BitKeeper, Ларри ответил, — "да, конечно. Мы были бы идиотами, если бы не думали." Однако, затем он привел к тому, что есть причины, по которым это вряд ли возможно. Поддерживая два продукта, он был удивлен, увидев, что нужды сообщества открытых исходников значительно отличались от нужд коммерческого сообщества. Конечно, были и пересечения, но они обнаружили, что два сообщества подталкивают их в разные направления.

Специфичным примером здесь является управление бинарными файлами. В ядре Linux немного бинарных файлов, а те что есть нечасто изменяются. "Например", — говорит Ларри, — "там может быть JPEG изображение, являющееся логотипом, которое может обновляться раз в год или около того, но здесь нет необходимости в сложном управлении бинарными файлами." Наоборот, для коммерческого сообщества управление бинарными файлами является критичным. Например, кто-нибудь может отслеживать Word документ на 1 МБ, который проходит через сотни ревизий, занимая 1 ГБ пространства. BitKeeper фокусируется на улучшении этой функциональност, так как она является повседневной в коммерческих применениях, в то время как решение для открытых исходников, связанное с ядром Linux, не имеет такой нужды.

Более того, Ларри отметил, что у BitKeeper нет "убойной возможности", которая делала бы его таким замечательным инструментом. Вместо этого он является собранием тысяч мелких возможностей, которые делают его столь мощным. Он добавил, что он надеется на то, что жизнеспособное решение с открытыми исходниками появится скоро, так как до этого момента возможности будут тихо подсказываться коммерческими пользователями BitKeeper сообществу открытых исходников. Уже сейчас в дискуссиях о том, что понадобится для замены BitKeeper, список пожеланий составлен прямо из набора возможностей BitKeeper.

Последний бесплатный релиз BitKeeper
В своем письме в лист разработчиков ядра Linux в феврале 2005-го, Ларри обсуждал 16-битное ограничение существующего бесплатного продукта. Когда сегодня в основной ветке ядра уже собрано около 64000 наборов изменений, дальнейшая разработка скоро выйдет за это ограничение. Поэтому, скорее всего BitMover сделает один финальный релиз своего бесплатного BitKeeper, чтобы обеспечить разработчикам ядра безболезненный переход. К концу июля стоит цель завершить переход, тем самым закрывая бесплатную версию, и далее полностью сфокусироваться на коммерческой.

Так как две версии продукта тяготели к различным требованиям, решение о свертывании бесплатной версии принесет пользу пользователям коммерческой версии. "По шкале от одного до десяти", поясняет Ларри, "я думаю, что мы на уровне четырех. Конечно, все другие продукты это три или меньше, но они этого не понимают. У нас есть план разработки новых возможностей, которые дадут нам, возможно, восемь из десяти. Они займут нас на ближайшие три-пять лет и мы очень рады работать над этими проблемами."

Итог:
Три года, которые Linux разрабатывался с контролем исходных кодов в BitKeeper были очень выгодны для процесса разработки ядра Linux. Они научили хорошим манерам контроля исходников и предоставили разработчикам ядра более эффективный свособ управления распределенной разработкой.

Дебаты относительно свободы ("Free as in Freedom") против бесплатности ("Free as in Free Beer") далеки от завершения и мы еще увидим длинные дискуссии в листе разработчиков ядра Linux пока разработчики будут уходить от BitKeeper. На сегодня нет очевидной замены, но это всего лишь вопрос времени, когда появится проект, который удовлетворит нужды разработчиков ядра. Когда ядро уже поддерживалось с помощью качественного инструмента контроля исходных кодов, скорее всего оно продолжит поддерживаться так же, создавая решение при необходимости, ведь как правильно сказал Платон, "нужда - мать изобретения."


Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.