Категории свободных и несвободных программ
Свободные программы
Свободные программы — это программы, которые сопровождаются разрешением для всех применять, копировать и передавать, с изменениями или без них, за плату или безвозмездно. В частности, это означает, что исходный текст должен быть доступен: “Без исходного текста нет программы”. Это упрощенное описание; см. также полное определение.
Если программа свободна, то она в принципе может входить в такую свободную операционную систему, как GNU, или в свободные версии системы GNU/Linux.
Есть много способов сделать программу свободной — много вопросов о деталях, которые можно решить по-разному, делая при этом программу свободной. Некоторые из возможных вариантов описаны ниже. За сведениями о конкретных лицензиях свободных программ обращайтесь к нашему списку лицензий.
Свободная программа подразумевает свободу, а не стоимость; но компании, выпускающие несвободные программы, как правило, употребляют термин “свободная программа” для обозначения стоимости. Иногда они имеют в виду, что вы можете получить программу в двоичном виде бесплатно; иногда они имеют в виду, что эта копия поставляется с компьютером, который вы покупаете, и в стоимость входит и то, и другое. Во всяком случае, это не имеет никакого отношения к тому, что мы подразумеваем под свободной программой в проекте GNU.
Поскольку возможно такое недоразумение, то когда компания, выпускающая программы, говорит, что ее продукт является свободной программой, всегда проверяйте точные условия распространения, чтобы понять, действительно ли у пользователей есть все свободы, которые подразумевают свободные программы. Иногда это действительно свободная программа; иногда — нет.
Во многих языках есть два разных слова для “свободного” в смысле свободы и “свободного” в смысле нулевой цены. Например, во французском есть “libre” и “gratuit”. В английском это не так; в нем есть слово “gratis”, которое однозначно указывает на цену, но нет общепринятого прилагательного, которое однозначно указывало бы на свободу. Так что если вы говорите на другом языке, мы рекомендуем вам для большей ясности переводить “свободный” на свой язык. См. наш список переводов выражения “свободные программы” на различные языки.
Свободные программы часто более надежны, чем несвободные.
Программы с открытым исходным текстом
Некоторые применяют термин “программы с открытым исходным текстом” для обозначения примерно той же категории, что и свободные программы. Это не совсем тот же самый класс программ: они принимают некоторые лицензии, которые мы считаем слишком жесткими, и есть лицензии свободных программ, которых они не приняли. Однако разница между классами невелика: нам известно всего несколько случаев текста программ, которые являются открытым исходным текстом, но не свободны. В принципе, могло бы получиться, что какие-то свободные программы не считаются открытым исходным текстом, но мы не знаем, бывало ли такое на самом деле.
Мы предпочитаем термин “свободные программы”, потому что он подразумевает свободу — то, чего термин “открытый исходный текст” не подразумевает.
Программы в общественном достоянии
Программы в общественном достоянии — это программы, на которые не распространяется исключительное авторское право. Если исходный текст программы находится в общественном достоянии, то она представляет собой особый случай свободной программы без авторского лева. Это значит, что некоторые копии, а также модифицированные версии вполне могут не быть свободными.
В некоторых случаях программа в исполняемой форме может быть в общественном достоянии, а исходный текст — недоступен. Это не свободная программа, потому что для того, чтобы программа была свободной, требуется доступ к исходному тексту. В настоящее время большинство свободных программ не находится в общественном достоянии; на них распространяется исключительное авторское право, и правообладатели с помощью лицензии свободных программ дали юридическое разрешение всем свободно пользоваться ими.
Иногда люди нестрого употребляют термин “общественное достояние” для обозначения свободных или бесплатных программ. Однако “общественное достояние” — юридический термин, он означает (в точности) “то, на что не распространяется исключительное авторское право”. Для ясности мы рекомендуем употреблять выражение “общественное достояние” только в этом значении и пользоваться другими терминами для передачи других значений.
Согласно Бернской Конвенции, которую подписало большинство стран, все, что написано, автоматически попадает под действие авторского права. В том числе и программы. Следовательно, если вы хотите, чтобы программа, которую вы написали, была в общественном достоянии, вы должны предпринять определенные юридические шаги, чтобы отказаться от прав на нее; в противном случае авторское право на нее распространяется.
Программы с авторским левом
Программа с авторским левом — это свободная программа, условия распространения которой гарантируют, что все версии распространяются на более или менее одинаковых условиях. Это значит, например, что лицензии с авторским левом обычно не позволяют другим налагать на программу дополнительные требования (хотя ограниченный набор дополнительных безопасных требований может допускаться) и требуют, чтобы исходный текст был доступен. Это предохраняет программу и ее модификации от некоторых обычных способов сделать программу несвободной.
Некоторые лицензии с авторским левом, такие как GPL версии 3, блокируют и другие средства обращения программы в несвободную, такие как тивоизация.
Мы, участники проекта GNU, применяем авторское лево почти ко всем программам, которые мы пишем, потому что наша цель — дать каждому пользователю свободы, подразумеваемые термином “свободная программа”. Более подробное объяснение того, как работает авторское лево и почему мы применяем его, см. в нашей статье об авторском леве.
Авторское лево — абстрактная идея; чтобы применить его к конкретной программе, необходимо воспользоваться особым набором условий распространения. Есть много возможных способов составить условия распространения с авторским левом, так что в принципе может быть много лицензий свободных программ с авторским левом. Однако на практике почти все программы с авторским левом пользуются Стандартной общественной лицензией GNU. Две различных лицензии с авторским левом обычно “несовместимы”. Это значит, что сочетание текстов программ, выпущенных под одной лицензией, с текстами, выпущенными под другой, незаконно. Следовательно, для сообщества лучше, чтобы люди применяли только одну лицензию с авторским левом.
Свободные программы без авторского лева
Свободные программы без авторского лева предоставляются автором с разрешением перераспространять и модифицировать, а также добавлять к ним дополнительные ограничения.
Если программа свободна, но без авторского лева, то некоторые копии или модификации могут вообще не быть свободны. Компания по разработке программ может скомпилировать программу, с изменениями или без них, и распространять исполняемый файл как несвободный программный продукт.
Это иллюстрирует система X Window. X Consortium выпускал X11 на условиях, которые делали ее свободной программой без авторского лева, и последующие разработчики по большей части следовали этой же практике. Копия, у которой есть эти условия, является свободной программой. Однако есть и несвободные версии, и есть (или, по крайней мере, были) популярные ЭВМ и графические платы персональных компьютеров, с которыми могли работать только несвободные версии. Если вы пользуетесь этой аппаратурой, то X11 для вас не свободна. Разработчики X11 даже сделали X11 несвободной на некоторое время; они могли сделать это потому, что другие добавляли тексты программ под той же самой лицензией без авторского лева.
Программы с безрассудно либеральной лицензией
Безрассудно либеральные лицензии включают лицензию X11 и две лицензии BSD. Эти лицензии допускают почти любое применение исходного текста, включая несвободное распространение оттранслированных файлов с изменениями исходного текста или без них.
Программы под GPL
GNU GPL (Стандартная общественная лицензия) — один из конкретных наборов условий распространения по авторскому леву. Проект GNU применяет ее в качестве условий распространения большинства программ GNU.
Следовательно, приравнивать свободные программы к программам под GPL — ошибка.
Операционная система GNU
Операционная система GNU — полностью свободная операционная система типа Unix, которую мы развиваем в рамках проекта GNU с 1984 года.
Операционная система типа Unix состоит из множества программ. В систему GNU входят все официальные пакеты GNU. В нее входит также много других пакетов, таких как система X Window и TeX, которые не являются программами GNU.
Первый пробный выпуск полной системы GNU был в 1996 году. Он включал GNU Hurd, наше ядро, разработка которого ведется с 1990 года. В 2001 году система GNU (включая GNU Hurd) начала работать вполне надежно, но ядру Hurd до сих пор не хватает некоторых важных особенностей, так что широко его не используют. Между тем система GNU/Linux, ответвление операционной системы GNU, в котором в качестве ядра вместо GNU Hurd применяется Linux, пользуется большим успехом начиная с девяностых годов. Из этого видно, что система GNU — это не какой-то один статичный набор программ; пользователи и поставщики могут выбирать разные пакеты в соответствии со своими желаниями и нуждами. В результате все равно получается вариант системы GNU.
Поскольку цель GNU — свобода, каждая отдельная составляющая в операционной системе GNU является свободной программой. Однако не требуется, чтобы на них распространялось авторское лево; любого рода свободные программы юридически подходят для присоединения к системе, если они помогают решать технические задачи.
Программы GNU
Программы GNU — это программы, выпускаемые под эгидой проекта GNU. Если программа является программой GNU, мы также говорим, что это — пакет GNU. Это должно быть указано в руководстве пользователя или файле README пакета. Кроме того, все пакеты GNU отмечены в Каталоге свободных программ.
Большинство программ GNU выпускается с авторским левом, хотя некоторые программы выпускаются без него; однако все программы GNU должны быть свободными.
Некоторые программы GNU были написаны персоналом Фонда свободного программного обеспечения, но большинство программ GNU поступило от многочисленных добровольцев. (Работа некоторых из этих добровольцев оплачивается компаниями или университетами, но для нас они — добровольцы.) Авторские права на одни из поступивших программ принадлежат Фонду свободного программного обеспечения, авторские права на другие остаются за теми, кто предоставляет эти программы.
Программы GNU, авторские права на которые принадлежат ФСПО
Разработчики пакетов GNU могут передавать авторские права ФСПО или оставлять их за собой. Выбор — за ними.
Если они передали авторские права ФСПО, программа попадает в эту категорию и ФСПО может контролировать соблюдение ее лицензии. Если они оставили права за собой, то ответственность за контролем соблюдения лежит на них.
ФСПО, как правило, не принимает авторских прав на программы, которые не являются официальными пакетами GNU.
Полусвободные программы
В прошлом мы выделяли в категории несвободных программ “полусвободные программы”, которые можно дорабатывать и перераспространять в некоммерческих целях. Но больше мы не употребляем этого термина.
Несвободные программы
Несвободные программы — это все программы, кроме свободных. Их применение, перераспространение и модификация запрещены, или для этого вам требуется разрешение, или это настолько ограничено, что вы по существу не можете делать это свободно.
Фонд свободного программного обеспечения следует правилу, что мы не должны устанавливать на наши компьютеры какую бы то ни было несвободную программу, кроме случая, когда мы временно устанавливаем ее специально для написания свободной замены этой же самой программы. Мы считаем, что других оправданий для установки несвободной программы нет.
Например, мы считали оправданной установку Unix на нашем компьютере в восьмидесятых годах XX века, потому что мы пользовались ею для написания свободной замены Unix. Сегодня, когда доступны свободные операционные системы, этого оправдания больше нет; мы не применяем несвободных операционных систем, и каждый новый компьютер, который мы вводим в эксплуатацию, должен работать под управлением полностью свободной операционной системы.
Мы не настаиваем, чтобы пользователи GNU или те, кто помогает развивать GNU, следовали этому правилу. Это правило, которое мы установили для самих себя. Но мы надеемся, что вы тоже последуете ему — ради своей свободы.
Бесплатные программы
У понятия “бесплатные программы” нет ясного общепринятого определения, но обычно это выражение употребляют для обозначения пакетов программ, которые разрешено перераспространять, но не изменять (и их исходный текст недоступен). Эти пакеты не являются свободными программами, так что, пожалуйста, не употребляйте выражение “бесплатные программы” для обозначения свободных программ.
Условно-бесплатные программы
Условно-бесплатные программы — это программы, которые людям разрешено перераспространять, но каждый, кто продолжает пользоваться копией, обязан внести лицензионную плату.
Условно-бесплатные программы не являются ни свободными, ни даже полусвободными, по двум причинам:
- Исходный текст для большинства условно-бесплатных программ недоступен; таким образом, вы никак не можете изменять программу.
- Условно-бесплатные программы не разрешено копировать и устанавливать без оплаты лицензии, даже для частных лиц, занимающихся некоммерческой деятельностью. (На практике люди часто пренебрегают условиями распространения и все равно делают это, но условия этого не допускают.)
Заказные программы
Заказные программы — это программы, разрабатываемые для одного пользователя (как правило, организации или предприятия). Этот пользователь хранит их и пользуется ими, не публикуя их ни в виде исходного текста, ни в виде двоичных файлов.
Заказная программа свободна (в некоем тривиальном смысле), если у ее единственного пользователя есть четыре свободы. В частности, если у пользователя есть все права на заказную программу, то программа свободна. Однако если пользователь распространяет копии среди других и не предоставляет четырех свобод вместе с этими копиями, то эти копии не являются свободными программами.
Свободная программа подразумевает свободу, а не доступ. Вообще говоря, мы не думаем, что разработать программу и не публиковать ее дурно. Бывают случаи, когда программа настолько важна, что можно утверждать, что скрывать ее от общественности нечестно по отношению к человечеству. Однако такие случаи редки. Большинство программ не настолько важны, так что в решении не выпускать их нет ничего особо дурного. Таким образом, между разработкой программ на заказ и принципами движения за свободное программное обеспечение противоречия нет.
Почти все программисты заняты в разработке заказных программ; следовательно, большая часть работы по программированию производится или могла бы производиться совместимым с движением за свободное программное обеспечение образом.
Коммерческие программы
“Коммерческая” и “несвободная” — не одно и то же! Коммерческая программа — это программа, разрабатываемая предприятием в процессе своей коммерческой деятельности. Большинство коммерческих программ — несвободные, но существуют как свободные коммерческие программы, так и несвободные некоммерческие программы.
Например, компилятор GNU Ada разрабатывается компанией. Он всегда распространяется на условиях GNU GPL, и каждая копия его является свободной программой; но его разработчики торгуют контрактами на поддержку. Когда продавцы разговаривают с предполагаемыми клиентами, клиенты иногда говорят: “Мы чувствовали бы себя увереннее с коммерческим компилятором”. Продавцы отвечают: “GNU Ada и есть коммерческий компилятор; он также является свободной программой”.
Для проекта GNU приоритеты стоят в другом порядке: важно то, что GNU Ada — свободная программа; то, что она коммерческая — второстепенная подробность. Однако дополнительное развитие компилятора GNU Ada благодаря тому, что он является коммерческой программой, безусловно, полезно.
Пожалуйста, помогайте обществу уяснить, что коммерческие программы могут быть свободными. Вы можете делать это, пытаясь не говорить “коммерческая”, когда подразумеваете “несвободная”.