Свобода свободе рознь
АрхивКолонка ЗолотоваТри года Линус Торвальдс пользовался для разработки ядра Linux несвободной программой BitKeeper. Теперь он и тысячи его коллег вынуждены искать замену и переучиваться: компания-владелец BitKeeper требует заплатить за лицензию на нее.
Свободный софт - термин за последние годы примелькавшийся и даже, возможно, приевшийся. Но простота подразделения мира программного обеспечения на два лагеря - программ проприетарных и программ свободных - весьма условна. Лагерь свободного софта сам разделён на множество сегментов, сгруппированных в двух больших разделах. Свободный софт бывает свободным как слово (вы можете делать с ним всё, что вам заблагорассудится) и свободным как бесплатное пиво (увы, вы можете его только запускать). Для большинства пользователей разница между двумя категориями неочевидна, но она есть и более того, она чрезвычайно важна! Доказательством и замечательной иллюстрацией тому - история, начавшаяся буквально пару дней назад как небольшой инцидент в узком сообществе хакеров, и к настоящему моменту переросшая в скандал мирового значения.
Впрочем, начать рассказ следует с событий трёхлетней давности. В феврале 2002-го года Линус Торвальдс, основатель операционной системы Linux, по сей день руководящий процессом разработки Linux-ядра, известил коллег по цеху о своём решении использовать для обработки поступающих к нему патчей программный продукт BitKeeper, созданный и развиваемый небольшой американской компанией BitMover. Рабочий день Линуса наполнен монотонной чередой однообразных действий: являясь по сути координатором работы нескольких тысяч человек ("ядерщиков"), он получает от них куски нового или изменённого кода, анализирует полученное и в каждом отдельном случае принимает решение, имплантировать ли данный патч в основное древо Linux. Каждая версия Ядра - а выходят они с периодичностью раз примерно в два месяца - содержит многие тысячи таких мелких изменений. Можете представить себе каково это - руководить таким процессом! Конечно, какие-то средства автоматизации существовали уже тогда, были и помощники, отделявшие (грубо говоря) зёрна от плевел. Но в целом труд Линуса оставался таким же, как и пять, и десять лет назад - он был вынужден лично вчитываться в исходники каждого представленного на рассмотрение патча.
BitKeeper как раз является одним из инструментов, облегчающих труд большого коллектива разработчиков. Эта программа была создана в конце 90-х годов Ларри Маквоем (который, кстати, принимает участие и в разработке Linux) и к настоящему моменту стала одной из самых популярных в своём роде. Главное достоинство BitKeeper заключается в возможности полной децентрализации процесса разработки. Применительно к ядру Linux это означало, что каждый из тысяч хакеров, участвующих в его создании, может работать только над интересным ему участком кода, не беспокоясь об изменениях, вносимых в текст ядра другими участниками. О том, чтобы разработчики не пересеклись между собой позаботится BitKeeper. Теперь поставьте себя на место человека, который должен руководить этим процессом. На первый взгляд кажется, что его задача многократно усложнилась, ведь уже не существует "главной" копии ядра, вместо неё - тысячи отличающихся версий! Однако на деле это обстоятельство не только не тормозит, но напротив, ускоряет процесс в целом. Поскольку изучать каждый патч теперь невозможно, руководитель вынужден полагаться на собственную оценку профессиональных качеств своих коллег. Попросту говоря, патчи, сделанные теми хакерами, которым руководитель доверяет, будут приниматься без проверки. Патчи от хакеров, которым руководитель доверяет меньше, будут подвергаться минимальной проверке. И так далее. Именно так всё и получилось в случае с Линусом и ядром Linux: адаптировавшись к BitKeeper, Линус вскоре рапортовал об удвоенной скорости разработки Ядра!
Проблема однако в том, что BitKeeper изначально задумывался как продукт проприетарный. Исходные тексты BitKeeper не опубликованы, работа с программой требует приобретения дорогостоящей лицензии. Но Маквой и Линус сошлись на компромиссном варианте. Компания Маквоя выпустила особую бесплатную версию BitKeeper для Linux-разработчиков, обеспечив её специальными сервисами на своих серверах - чтобы даже те Linux-девелоперы, которые отказались от BitKeeper в пользу других инструментов, могли минимально взаимодействовать с Линусом и его коллегами, работающими через BitKeeper. Так Linux-сообщество получило отличный инструмент, а компания BitMover - хорошую рекламу. Загляните на её сайт, там и по сей день эпиграфом висит цитата из благодарственного письма Линуса Торвальдса.
И вот здесь мы подходим к завязке скандала. Решение Линуса использовать для разработки ядра свободной (как слово) операционной системы программу, свободную как бесплатное пиво, немедленно вызвало нарекания со стороны многих участников сообщества open source. Ричард Столлмен, Алан Кокс и другие, менее известные личности высказывали и недоумение, и разочарование поступком Линуса. И дело здесь не только в идеологии. Избрав BitKeeper, Торвальдс тем самым вынуждал тысячи своих коллег последовать за ним. Ведь напрямую с BitKeeper не совместим ни один из аналогичных инструментов (BitKeeper использует закрытый криптопротокол). Конечно, благодаря щедрости BitMover, возможность взаимодействия через её серверы с пользователями других инструментов была, но щедрость не бесконечна. И вот финал: на днях глава BitMover объявил о прекращении выпуска бесплатной версии BitKeeper и постепенной остановке серверов, её поддерживающих.
Формальной причиной "отзыва" бесплатной версии BitKeeper послужила продолжаемая несколькими энтузиастами работа по раскрытию её защищённого протокола. Дело в том, что право безвозмездного использования BitKeeper было предоставлено Linux-сообществу при условии, что никто из этого сообщества не будет пытаться создать конкурирующий инструмент. Строго говоря, совсем не факт, что те хакеры, которые работают над взломом протокола BitKeeper, задействованы и в работах над ядром Linux, но, как говорится, хозяин - барин. Истинной причиной, по всей видимости, стало то, что дела у BitMover резко пошли в гору, и компания более не нуждается в бесплатной рекламе. Теперь, когда первый акт трагедии сыгран, предстоит второй - много более драматичный: помимо самого Линуса, который уже сообщил об отказе от дальнейшего использования BitKeeper, неминуемо пройдут через отказ и большинство его коллег. Что это означает для Linux-сообщества, хорошо описал в своём вчерашнем посте на форуме Slashdot известный open source-активист Брюс Перенс: тысячам хакеров необходимо построить новую инфраструктуру, необходимо обучиться работе с новым инструментом и перенести на него тысячи рабочих файлов. Такова цена ошибки одного человека, не придавшего значения разнице между категориями свободы.
Сомнений в том, что в конце концов жизнь Linux-сообщества вновь наладится, нет. Истинно свободные программные инструменты, способные худо-бедно заменить BitKeeper, существуют (GNU Arch, к примеру). Со временем появятся и свободные программы, способные конкурировать с BitKeeper на равных. Но запомнится ли преподнесённый самой судьбою урок?