Не только цена делает свободно распространяемое программное обеспечение действительно свободным.
Давайте заглянем внутрь. Будем двигаться сверху вниз. В полном соответствии с принципами структурного анализа, столь популярного в 80-е годы. Поговорим об открытом коде. Этот термин не предполагает отмены лицензирования. Он относится к методологии разработки. Речь в данном случае идет об общедоступном исходном коде, о том коде, который может просмотреть и изменить любой. В этом и заключается суть открытого кода. Он открыт, его не прячут в сейф, подобно рецепту кока-колы или исходному коду любой версии Windows.
Эрик Раймонд — вероятно, самый красноречивый проповедник тех преимуществ, которые сулят пользователям программы с открытым кодом |
Эрик Раймонд — вероятно, самый красноречивый проповедник тех преимуществ, которые сулят пользователям программы с открытым кодом. Его книга «Собор и базар» (The Cathedral and The Bazaar) посвящена отличиям разработки с открытым кодом от классической модели проектирования программного обеспечения. Соборная модель — классическая методология — подразумевает наличие небольшой команды, которая осуществляет полный контроль за кодом. Модель базара описывает методологию, которая использовалась при разработке Linux и других успешных проектов свободно распространяемых программ с открытым кодом. Исходный код доступен всем желающим, а благосклонный диктатор (в случае с Linux это Линус Торвальдс) решает, что именно следует добавить или изменить.
А теперь давайте поговорим о свободно распространяемом программном обеспечении. Значение этого термина следует искать не в методологии разработки или цене, он говорит прежде всего о свободе. Эту концепцию поясняет принцип: «свободный, как речь, а не дармовой, как пиво на фуршете». В первую очередь люди обычно ассоциируют свободу с ценой. Поэтому, когда они слышат о свободно распространяемом программном обеспечении, они думают: «О, отлично! Это не будет мне стоить абсолютно ничего». Может быть, и так, может, нет, но в любом случае не цена делает свободно распространяемое программное обеспечение действительно свободным. По определению Free Software Foundation, свободно распространяемые программы должны соответствовать четырем критериям:
- программу можно свободно использовать по своему усмотрению;
- пользователям предоставляется возможность изучить исходный код, для того чтобы разобраться, как работает программа;
- пользователь может без каких-либо ограничений передавать программу любым другим лицам;
- пользователь имеет возможность вносить в программу произвольные изменения.
Если в лицензии перечислены все эти четыре пункта, FSF соглашается называть ПО свободно распространяемым. General Public License — не единственная лицензия, отвечающая данным требованиям, есть и множество других. Обратите внимание, что во втором и четвертом пунктах говорится о доступе к исходному коду. Это означает, что свободно распространяемые программы являются одновременно и программами с открытым кодом. Однако обратное не всегда справедливо. Многие лицензии на программы с открытым кодом не содержат всех четырех перечисленных пунктов, и такое программное обеспечение не относится к категории свободно распространяемого.
Идея создания FSF принадлежит Ричарду Столлману, исповедующему твердую и бескомпромиссную идеологию, согласно которой только свободно распространяемое ПО способствует развитию общества и движению вперед, а все прочие программы являются регрессивными. Многие считают Столлмана безумцем, но, с другой стороны, истории известно множество примеров того, как твердость убеждений превращает человека в символ. Как бы то ни было, безумец он или нет, но именно Столлман положил начало и стал главным проповедником революции, которая перевернула всю программную отрасль с ног на голову.
Столлман взялся за проект GNU (GNU?s Not Unix) в 1984 году, пытаясь создать свободно распространяемую версию Unix, которой программисты и пользователи могли бы беспрепятственно обмениваться, не заботясь о соблюдении каких-либо ограничений и лицензировании. Он лично написал несколько известных и популярных инструментальных средств и утилит, вошедших в состав GNU. В качестве примера можно привести легендарный компилятор GCC. В 1985 году Столлман основал Free Software Foundation — «сообщество разработчиков программного обеспечения, освобожденных от уплаты податей». В 1989 году в FSF предложили первую версию лицензии GPL. Вторая версия лицензии, используемая по сей день, появилась в 1991 году. Это произошло как раз в тот период, когда Торвальдс начал работать над ранними вариантами ядра Linux. Для своего ядра, начиная с версии .12, Торвальдс выбрал именно лицензию GPL.
Некоторые утверждают, что GPL — самое слабое связующее звено мира программ с открытым кодом и свободно распространяемого ПО. Я с этим категорически не согласен. Кстати, такой же точки зрения придерживаются и люди из Microsoft. Ведь если бы это было так, представители корпорации не тратили бы столько сил и времени на борьбу с данной концепцией. Напротив, GPL — не самое слабое, а самое сильное звено в цепи. Долголетие GPL гарантируется тем, что все производные от программного обеспечения GPL должны лицензироваться в соответствии с условиями GPL. Эксперты говорят о «вирусной природе» такого ПО и утверждают, что в данном случае речь идет об «освобождении» (copyleft), а не о «защите» (copyright) авторских прав.
На сайте FSF дается следующее определение термина copyleft: «Для того чтобы освободить программу от действия закона об авторских правах, мы сначала объявляем о том, что она защищена его положениями. Затем мы описываем условия распространения, в соответствии с которыми любой желающий вполне легально получает возможность использовать, модифицировать и распространять код программы, а также код любых производных от нее приложений (но только в том случае, если условия распространения сохраняются в неизменном виде). Таким образом, доступ к исходному коду и возможность свободного распространения совершенно законно становятся неотделимыми друг от друга».
Почему Microsoft беспокоят различия в условиях лицензирования ПО с открытым кодом? Ведь они сами получили немалую выгоду от использования программного кода различных проектов BSD. Да потому что лицензии BSD не относятся к лицензиям категории copyleft. Любой желающий может воспользоваться этим кодом и «заблокировать» его своей собственной закрытой лицензией. GPL же не предоставляет такой возможности.
В заключение хотелось бы обратить внимание еще на один важный момент, связанный с концепциями свободно распространяемого программного обеспечения и программного обеспечения с открытым кодом.
Открытый код предполагает общую методологию разработки. Свободно распространяемое программное обеспечение подразумевает лицензию, которая включает в себя четыре перечисленных выше фактора свободы.
Разделение двух этих категорий вызывает жаркие споры как внутри соответствующих объединений, так и за их пределами. Объектом самой священной из всех священных войн являются отнюдь не текстовые процессоры, операционные системы или компиляторы. Война идет за лицензии на программы.
Пусть же у каждого будет та лицензия, которая устраивает его в наибольшей степени. Человек, который пишет код, вправе сам подбирать для себя лицензию. И если она вам не нравится, это ваше дело. Всегда можно понять мотивы людей, тратящих массу времени и сил на борьбу с лицензиями, которые использует кто-то другой. Возможно, эта борьба и не значится в их официальной повестке дня, но всем видно, что они активно ведут ее и почему они это делают.
Сравнительный анализ основных лицензий категории Open Source
Различия между концепциями «свободного ПО» (Free Software) и «ПО с открытым кодом» (Open Sours Software). Представители Open Source Initiative употребляют эти термины как синонимы, указывая, однако, на их различное содержание. Так, Дэвид Уилер пишет: «Те, кто использует термин «ПО с открытым кодом», хотят подчеркнуть технические преимущества таких программ (например, большую надежность и безопасность), тогда как те, кто использует термин «свободное ПО», хотят подчеркнуть независимость от контроля со стороны третьих лиц за использованием ПО». Как считают в FSF, сейчас Free Software и Open Source являются самостоятельными движениями. «Мы не против движения Open Source, но не хотим, чтобы нас путали с ним» — такое заявление можно увидеть на сайте FSF. Представители FSF считают определение «открытый код» слишком узким, а также указывают, что некоторые разработчики «обычного» программного обеспечения используют определение «открытый код» в своих целях, придавая ему совсем иной смысл.
Названия и тексты лицензий. Англоязычные тексты лицензий GPL и LGPL, а также изменения к ним или новые версии этих лицензий, если они появятся, лучше всего брать с сайта GNU. Тексты остальных лицензий — MIT, BSD, Mozilla public license, Apache software license — лучше взять с сайта Open Source Initiative. Если внимательно прочитать список лицензий на этом сайте и сравнить его со списком лицензий на сайте GNU, то можно убедиться, что отдельные лицензии по версии GNU называются иначе. В частности, лицензия MIT на сайте GNU называется Expat license; ее текст почти полностью соответствует тексту лицензии BSD, за исключением одного условия. В русских компьютерных изданиях упоминается также лицензия X-консорциума, или X11. Этой лицензии нет в списке на сайте Open Source, быть может, потому, что она практически повторяет лицензию MIT. Отдельно следует остановиться на тексте лицензии BSD. Существует два ее варианта: с оговоркой о рекламе и без нее. Как Open Source Initiative, так и FSF одобрена лицензия без оговорки о рекламе. Текст лицензии BSD лучше брать с сайта Open Source. В 2001 году корпорацией Intel был разработан еще один вариант лицензии BSD — BSD+Patent License. Она была специально создана для того, чтобы позволить модифицировать и распространять программы, которые могут защищаться патентами на программное обеспечение Intel. Однако эта лицензия так и не была введена в действие из-за слишком негативной реакции со стороны противников патентов на программное обеспечение.
Совместимость с GPL. Из указанных выше лицензий совместимыми с лицензией GPL являются только три: LGPL, BSD и лицензия MIT. Лицензии Apache (версии 1.0 и 1.1) и Mozilla (версии 1.0 и 1.1) несовместимы с GPL. Совместимость с GPL означает, что разработчик вправе объединить модуль, который распространяется на условиях совместимой с GPL лицензии с модулем, распространяемым на условиях GPL, чтобы получить одну программу. Дальнейшее распространение полученной программы должно осуществляться в соответствии с условиями GPL (так называемый «вирус Copyleft»).
Елена Тяпкина, tiapkina@hotmail.com