Главная | Оглавление книги

Что такое GNU GPL и общественные свободные компьютерные программы


Всё больше и больше компьютерного программного обеспечения распространяется на условиях общественной лицензии GNU GPL и её аналогов. Рассмотрим основные принципы общественного свободного не копирайтного программного обеспечения для компьютерных систем.


Компьютерные программы как общественное благо

Практически все пользуются разными видами общественных благ — общественный транспорт, общественные книжные библиотеки и т.д. Многие даже и участвуют в создании этих общественных благ.

Создание общественных благ — необходимость любого общества. Деятельность на ниве общественного благополучия — это всегда благородно и достойно для любого человека.

Программное обеспечение для компьютеров тоже может существовать как общественное достояние, общественное благо. Мало того, такие общественные компьютерные программы существуют, их уже много. Они давно и повсеместно и эффективно эксплуатируются и приносят действительную общественную пользу.

Надо отметить, что многие даже не подозревают, что у них на компьютере, как минимум, добрая половина программ или отдельных программных компонентов имеет статус общественного достояния. У среднестатистического пользователя персонального компьютера как минимум 50% прикладного программного обеспечения составляют или полностью общественное ПО или программы с компонентами, которые распространяются на общественных лицензиях.

Для примера, браузеры как самые популярные программы. Firefox — это на 99% общественное ПО. В браузерах Chrome, Vivaldi, Opera 70—80% компонентов общественные, в Safari — около 50%. Мультимедиа кодеки, проигрыватели типа Media Player Classic, VLC — общественные. Операционная система «Android» на большинстве смартфонов — тоже общественная лицензия. И т.д. и т.п.

Поэтому речь ниже и пойдёт о принципах и примерах общественных программ.

Что такое общественная программа и лицензия GPL

Жизнь общества более долговечна, чем жизнь индивида. Например, в отношении песен, литературы «интеллектуальная собственность» рано или поздно, после определённого законодательством срока, превращается в общественное достояние — национализируется, так сказать.

Тем не менее, всё больше появляется создателей компьютерных программ, которые «национализируют» свои программы в пользу общества сразу же после их написания, не дожидаясь каких-то отведенных законом сроков.

На первый взгляд, общественным достоянием программа становится, когда распространяется бесплатно. Это такое обывательское представление об общественном программном обеспечении.

Сама по себе бесплатность — это ещё не признак общественной программы или другого общественного блага. Например, версия операционной системы Windows 10 распространяется корпорацией Microsoft бесплатно, но это не значит, что ОС Windows стала общественным достоянием. Общественное благо может быть и платным хотя, как правило, общественные программы в большинстве случаев бесплатны.

Программа, которая претендует на статус общественного достояния, должна предоставлять всем в обществе следующие возможности:

Описываются эти предоставляемые возможности и обязанности обычно в лицензии на программу.

Первым сформулировал эти принципы общественных программ американский программист Ричард Столлмен. Эти принципы он описал в своей лицензии, которую он назвал «Основной Общественной Лицензией» (General Public License, GPL). Эта лицензия является базовой и примером для подражания для всех остальных общественных лицензий.

Следует сказать, что Столлмен по натуре эдакий американский либертианец-хиппи и хакер. Принципы своей «Общественной Лицензии» он любит рассматривать в контексте философии и риторики либертианства, либеральных свобод. Программы, которые имеют лицензии подобные «Основной Общественной Лицензии», он любит пафосно называть «свободными» (Free Software).

В принципе такая «свободолюбивая» риторика — это не так уж и плохо, но часто либертианский пафос уводит Столлмена от сути его же собственной лицензии. Так, например, английское «free» может означать не только «свободный», но и «халява». И Столлмену практически всегда приходится объяснять, что «свободные программы» — это не то же самое, что и «бесплатное пиво».

Тем не менее, уже само название General Public License точно отражает общественный характер программы под этой лицензией. Содержание и формулировки лицензии GPL принято распространять только на английском языке. Дословное разъяснение на русском языке (пример разъяснения) можно найти в Сети.

Многие разработчики пишут свои варианты общественных лицензий — например, лицензия BSD, лицензия Apache и другие. Но все аналоги лицензии GPL, имея разные формулировки, сводятся к полному или частичному указанию перечисленных выше возможностей и обязанностей.

Заметьте, что общественные лицензии на программное обеспечение, начиная с GPL Столлмена, содержат в себе «копирайт». То есть используют защиту «копирайта» для защиты принципов, которые принципам «копирайта» противоположны, что получило название «копилефт»

Преамбула лицензии GPL:

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. …

Таким хитрым образом Столлмен заставил служить «копирайт» общественному делу по созданию фондов компьютерных программ.

Проблемы совместимости

Общественный лицензий уже создано немало. Даже GNU GPL имеет несколько рабочих версий. (Список самых популярных общественных лицензий.)

Формальные различия между лицензиями приводят к тому, что вы не всегда сможете скопировать исходный код из одной программы и использовать этот код в другой программе.

Это связано в первую очередь с условием в отдельных лицензиях распространять модификации программ на тех же условиях, что и оригинал. Этот принцип называется авторское лево (copyleft). Так, если вы используете код под лицензией GPL, то вам необходимо и свою модификацию этого кода распространять под лицензией GPL. А, например, лицензия BSD обязанности распространять модификации под той же лицензией не предполагает. Поэтому нельзя использовать код под лицензией GPL в проектах с лицензией BSD.

Рассматривая ту или иную лицензию общественных программ или создавая собственную, надо учитывать и совместимость общественных лицензий между собой.

GNU и другие фонды общественных программ

Начиная с середины восьмидесятых, количество общественного некопирастического программного обеспечения неуклонно росло, чуть ли не в геометрической прогрессии. Для примера, только в одном открытом архиве Debian их более сорока тысяч. Условия общественных лицензий предполагают не только создание и распространение общественного ПО усилиями отдельных разработчиков, но и силами специальных общественных организаций и коммерческих компаний. В обязанности таких организаций входит следующие вопросы: отслеживание нарушений общественных лицензий, хостинг и архивы свободных программ, сопровождение свободных программ, вплоть до собственной прессы и найма программистов для развития того или иного общественного проекта.

Самым первым таким фондом общественного ПО является фонд Столлмена GNU (GNU Not Unix), где изначально собирались общественные аналоги коммерческим программам UNIX.

Важным фондом является Apache Software Foundation (ASF) со своей собственной общественной лицензией. В рамках этого фонда развиваются такие важные программные комплексы, как Apache HTTP Server, Hadoop, OpenOffice, Tomcat и другие.

Большую популярность приобрели общественные хостинги и репозитории для совместного создания и распространения свободных общественных программ. Наиболее крупные:

Мотивы создания общественных свободных компьютерных программ

Отнюдь не альтруизм является главной причиной появления такой лавины общественных компьютерных программ. Всё гораздо проще. Общинная, общественная собственность понятна даже неандертальцу, который убил мамонта на охоте и, не в силах съесть его в одиночку, делится с другими добычей, с расчётом, что с ним в случае удачной охоты поделятся тоже.

Действительно, общинная собственность — это такой способ решения общей экономической задачи с названием «куда девать избыток капитала». Потому что люди в большинстве способны производить больше, чем нужно им самим. Поэтому понятно, что, в случае общественного программного обеспечения, программист делится со всеми своей программой, с расчётом, что с ним своими программами поделятся и остальные программисты.

И это сработало. Один программист написал текстовой редактор под общественной лицензией, другие в ответ написали кто компилятор, кто системное ядро и т. д.

Но, говоря о программировании, нужно отметить интересный момент.

Программирование — это ведь такая прикладная математика, вычисления. А программы суть реализации каких-то конкретных вычислений.

Патентовать, копирайтить непосредственно математические формулы, вычисления как-то не сложилось. И брать и использовать чужие вычисления — это испокон веков в порядке вещей. Как, например, Эйнштейн использовал вычисления Пуанкаре в своих работах, и Пуанкаре спокойно это воспринял. Хотя некоторые и любят обвинять Эйнштейна в этом случае в «воровстве».

Хотя хорошо и приятно было бы запатентовать за собой, например, возведение в степень. Кто б от такой хуцпы отказался?

А компьютерные программы — они как бы дают возможность математические вычисления запатентовать, или поставить на них товарный знак копирайта. Именно протест против такой вот математической хуцпы — это один из поводов, почему появился и Ричард Столлмен, и его фонд «свободного» программного обеспечения GNU.

Проблемы

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

Самое простое в этом направлении, доступное даже школьникам, это взять код какой-нибудь общественной программы, переименовать в этом коде все названия, поменять заставку и фон и собрать уже якобы собственное приложение. Самый безобидный случай, как, например, «БолдженОС».

Следующий способ поиметь общественное ПО получил название «тивоизация» (от названия видеоплеера TiVo), когда на каком-нибудь устройстве установлено общественное открытое программное обеспечение. Но при этом установлено так хитро (например, с использование цифровых подписей), что на устройство нельзя установить модифицированную версию программного обеспечения. Практически большая часть китайских смартфонов «андроидов» таково.

Но это тоже не критический случай. Хотя возможность модификации программы — это один из основных принципов общественного программного обеспечения.

И противодействие общественному ПО может быть и на политическом и идеологическом уровне.

Например, на территории США расположены большинство интернет-репозиториев открытого программного обеспечения. И у правительства США есть мода регулярно перекрывать доступ к этим репозиториям доступ для других стран вроде Кубы, Ирана и т.д.

Есть люди и классы, для которых само по себе любое общественное достояние неприемлемо по идеологическим мотивам. Для них любая общественная собственность — это коммунизм. Вот как общественные, народные фонды времён СССР. Все знают, а многие и пережили на своей шкуре, как именно ради грабежа этих советских общественных фондов СССР демонизировали, прокляли, разрушили, а фонды разворовали.

В этом отношении против общественного программного обеспечения будет вестись (и ведётся) целенаправленная идеологическая борьба.

Например, в РФ разрабатывается некая «универсальная лицензия», которая никаких общественных лицензий не предполагает. Также и создание Тихоокеанского союза с США во главе, похоже, приведёт к попыткам нивелировать общественные лицензии на программное обеспечение.

Но у общественных фондов компьютерных программ имеется особенность — они не привязаны к какому-то конкретному государству, как общественные фонды СССР. Общественные программы — это не инициатива каких-то государств, а, то, что называется, движение масс. Так что ограбить и приватизировать общественное ПО будет не так уж и легко. А может и вообще не получится.