Определение свободного программного обеспечения, написанное Ричардом Столлманом и опубликованное Фондом свободного программного обеспечения (FSF), определяет свободное программное обеспечение как программное обеспечение, которое гарантирует пользователям свободу использования, изучения, распространения и изменения этого программного обеспечения. Термин «свободный» используется в смысле «свободы слова», а не «бесплатно». [1] Самая ранняя известная публикация определения была в издании от февраля 1986 года [2] ныне прекращенного издания GNU Bulletin Фондом свободного программного обеспечения. Канонический источник документа находится в разделе философии веб-сайта проекта GNU . По состоянию на апрель 2008 года [обновлять]он опубликован на 39 языках. [3] Фонд свободного программного обеспечения публикует список лицензий, соответствующих этому определению .
Определение, опубликованное FSF в феврале 1986 года, содержало два пункта: [2]
Слово «бесплатно» в нашем названии не относится к цене; оно относится к свободе. Во-первых, свобода копировать программу и распространять ее среди своих соседей, чтобы они могли использовать ее так же, как и вы. Во-вторых, свобода изменять программу, чтобы вы могли контролировать ее, а не она вас; для этого исходный код должен быть вам предоставлен.
В 1996 году, когда был запущен сайт gnu.org, «свободное программное обеспечение» было определено как относящееся к «трем уровням свободы» путем добавления явного упоминания свободы изучать программное обеспечение (что можно было бы прочитать в двухпунктном определении как часть свободы изменять программу). [4] [5] Позднее Столлман избегал слова «уровни», говоря, что все свободы необходимы, поэтому было бы ошибочно думать в терминах уровней [ требуется ссылка ] .
Наконец, была добавлена еще одна свобода, чтобы явно сказать, что пользователи должны иметь возможность запускать программу. Существующие свободы уже были пронумерованы от одного до трех, но эта свобода должна быть перед другими, поэтому она была добавлена как «свобода ноль». [6] [7]
Современное определение определяет свободное программное обеспечение по тому, имеет ли получатель следующие четыре свободы: [8]
- Свобода запускать программу по своему усмотрению и в любых целях (свобода 0).
- Свобода изучать, как работает программа, и изменять ее так, чтобы она выполняла ваши вычисления так, как вы хотите (свобода 1). Доступ к исходному коду является предварительным условием для этого.
- Свобода распространять копии, чтобы вы могли помочь своему соседу (свобода 2).
- Свобода распространять копии ваших измененных версий среди других (свобода 3). Делая это, вы можете дать всему сообществу возможность извлечь выгоду из ваших изменений. Доступ к исходному коду является предварительным условием для этого.
Свободы 1 и 3 требуют доступности исходного кода , поскольку изучение и модификация программного обеспечения без его исходного кода крайне нецелесообразны.
В июле 1997 года Брюс Перенс опубликовал Debian Free Software Guidelines . [9] Определение, основанное на DFSG, также использовалось Open Source Initiative (OSI) под названием « The Open Source Definition ».
Несмотря на философские различия между движением за свободное программное обеспечение и движением за программное обеспечение с открытым исходным кодом , официальные определения свободного программного обеспечения FSF и программного обеспечения с открытым исходным кодом OSI в основном ссылаются на одни и те же лицензии на программное обеспечение, за несколькими незначительными исключениями. Подчеркивая эти философские различия, Free Software Foundation комментирует:
Термин "программное обеспечение с открытым исходным кодом" некоторые люди используют для обозначения более или менее той же категории, что и свободное программное обеспечение. Это не совсем тот же класс программного обеспечения: они принимают некоторые лицензии, которые мы считаем слишком ограничивающими, и есть лицензии свободного программного обеспечения, которые они не приняли. Однако различия в расширении категории невелики: почти все свободное программное обеспечение имеет открытый исходный код, и почти все открытое программное обеспечение является бесплатным.
— Фонд свободного программного обеспечения [10]
Причина, по которой они пронумерованы 0, 1, 2 и 3, историческая. Около 1990 года существовало три свободы, пронумерованные 1, 2 и 3. Затем мы поняли, что свободу запускать программу нужно упомянуть явно. Она была явно более базовой, чем остальные три, поэтому она должна была предшествовать им. Вместо того, чтобы перенумеровывать остальные, мы сделали ее свободой 0.
Я [Мэтт Малленвег] изначально думал, что Столлман начал считать с нуля вместо единицы, потому что он гик. Так оно и есть, но причина была не в этом. Свободы один, два и три появились первыми, но позже он захотел добавить что-то, чтобы заменить их все. Итак: свобода ноль. Гикство — это счастливая случайность.