Фанату Linux на заметку: чем свободная программа отличается от открытой
Приведу несколько терминов, определяющих в российском массовом сознании чуть ли не одно и то же: свободное ПО, открытое ПО, ПО с открытым исходным кодом, бесплатное ПО, Linux. Если вспомнить о нашей привычке употреблять к месту и не к месту английские слова, то к этому ряду добавятся Freeware, Free Software и Open Source. Поскольку к большому числу синонимов мы уже привыкли с детства, то подобное разнообразие прекрасно вписывается в наш менталитет. А напрасно.
Что такое Freeware
Freeware никакого отношения ни к свободе, ни к открытости не имеет. Так обозначается ПО, которым можно пользоваться бесплатно. Однако при этом могут накладываться ограничения на его распространение, а модификация будет невозможной по причине недоступности исходного кода.
К тому же Freeware — это не некая четкая категория, которая включает в себя все тонкости получения и использования программ. В частности, можно встретить ПО, которое бесплатно только для домашнего или некоммерческого использования. И хотя интуиция подсказывает, что именно имеется в виду под этим термином, вопросов остается много. Скажем, такой: можно ли устанавливать это ПО на личную машину, если ее владелец работает дистанционно, т. е. зарабатывает таким образом деньги?
Еще одно не очень понятное требование часто выдвигают наши настоящие и бывшие соотечественники. Желая продемонстрировать лояльность к нашей общей родине, они объявляют, что программу можно использовать бесплатно только в странах бывшего СССР. И не вполне ясно, к чему это относится — то ли к гражданам Союза, то ли к территориям новообразованных государств. Например, будет ли это условие соблюдено, если компьютер пересек границы?
Разумеется, пока эти соображения носят сугубо умозрительный характер — реальных судебных процессов, вызванных неправильной эксплуатацией ПО типа Freeware, не было. Точнее — еще не было. Но давайте вспомним, что какие-то пару лет тому назад никому и в голову не могло прийти, что за использование нелицензионной Windows начнут преследовать работников школ. Поэтому как-то не хочется стать тем самым прецедентом, с которого все и начнется. В общем, некоторая аккуратность тут не помешает.
Что такое Free Software
Понятие Free Software ввел в обиход сам основатель Free Software Foundation (FSF) Ричард Столлман. Он же сформулировал четыре критерия, при соответствии которым программа может считаться свободной. Вот они:
- программу можно использовать с любой целью;
- можно изучать, как программа работает, и адаптировать ее для своих целей;
- можно распространять копии программы;
- программу можно улучшать, а затем публиковать свою улучшенную версию, — с тем чтобы принести пользу всему сообществу.
Очевидно, что второе и четвертое условия могут быть выполнены только при доступности исходного текста программы.
Что такое Open Source
Несколько позже основатели организации Open Source Initiative (OSI) Эрик Реймонд и Брюс Перенс сочли, что термин Free Software может иметь неоднозначные толкования (в английском языке слово “Free” означает не только “свободное”, но и “бесплатное” — вспомните Freeware), и вследствие этого он не всем понравится. Поэтому они ввели новое понятие — Open Source.
Критерии открытости сформулировал Брюс Перенс. Они практически полностью соответствуют признакам, на которые ориентируется проект Debian (кстати, именно Брюс Перенс был его лидером в 1996—1997 гг.). Десять условий Open Source таковы:
- нельзя ограничивать распространение программы и требовать за нее денежную компенсацию;
- исходные тексты программы должны быть доступны;
- на основе программы могут создаваться производные продукты, которые можно распространять на тех же условиях, что и оригинал;
- если распространение производных работ запрещается по причине требования сохранности целостности исходного текста, то должно быть разрешено свободное распространение патчей;
- недопустима дискриминация пользователей или их групп. В частности, программа не может быть недоступной жителям какой-то страны;
- программа может использоваться с любой целью;
- не должно быть никаких дополнительных соглашений, относящихся к ПО;
- нельзя юридически привязывать программу к какому-либо другому продукту;
- нельзя накладывать какие-либо требования на другие программы;
- на пользователя программы нельзя накладывать какие-либо ограничения технологического характера.
Open Source или Free Software
Как нетрудно заметить, эти два термина — Open Source и Free Software — очень близки. Разница между ними носит, скорее, идеологический характер. Если под первым подразумевается прежде всего эффективная модель разработки, то под вторым — право на распространение, модификацию и изучение.
Отсюда и разница в употреблении этих обозначений ПО. В частности, Давид Уилер, один из представителей OSI, отмечал, что использование термина Open Source более уместно, если желательно подчеркнуть технические преимущества продукта, а вот про Free Software лучше говорить при намерении указать на независимость программы и отсутствие контроля со стороны третьих лиц за ее распространением и эксплуатацией.
В свою очередь, представители FSF считают, что определение Open Source слишком узко и может использоваться не в том смысле, который они вкладывают в эти слова. Таким образом, Free Software и Open Source — хоть и близкие, но самостоятельные направления.
Поскольку мы живем в России, то чаще используем отечественные определения. Причем их даже больше, чем английских, поэтому вероятность путаницы нисколько не уменьшается при переходе на русский язык.
СПО, ОПО, ПООК и другие уродцы
Например, мы часто говорим про открытое ПО (ОПО), подразумевая под этим ПО с открытым исходным кодом (ПООК). Поскольку из контекста обычно понятно, о чем именно идет речь, мы привыкли не обращать внимания на довольно серьезную ошибку.
Дело в том, что открытое ПО — это не Open Source, а Open Software, если переводить дословно. А это означает не более чем программу с открытыми протоколами. Но английский термин используется крайне редко, вот и прижилось такое не вполне корректное сокращение. Поэтому в случаях, когда возможно разночтение, более правильно говорить о ПО с открытым исходным кодом.
Всегда ли свободное программное обеспечение (СПО) будет представлять собой ПО с открытым исходным кодом? Правильный ответ — чаще всего. Но исключения возможны.
Дело в том, что разработчик свободного ПО обязан предоставить доступ к исходному коду только пользователям программы. От него вовсе не требуется выкладывать его на сайт, чтобы познакомиться с ним могли все желающие. Поэтому если какой-либо продукт делается для конкретного заказчика и его широкое распространение не планируется, то вполне может оказаться, что широкая общественность так и не узнает, как именно работает приложение.
Но тогда, может быть, ПООК всегда является свободной программой? Опять же нет. Хотя чаще всего это действительно так.
ПО с открытым исходным кодом можно беспрепятственно изучать. А вот для модификации, распространения или иных способов его использования может потребоваться отдельное разрешения автора.
И уж конечно, совершенно некорректно называть СПО или ПООК просто бесплатным. Нулевая цена вовсе не подразумевает передачу пользователю каких-то дополнительных прав и тем более никак не обязывает разработчика делаться с кем-то исходным текстом. Хоть и не запрещает ему это делать.
СПО за деньги
К тому же СПО вполне может продаваться за деньги. Например, именно таким образом распространяются так называемые коробочные версии дистрибутивов Linux. Правда, в этом случае покупатели могут надеяться на получение печатного руководства пользователя и купона на техническую поддержку. Хотя и это совершенно не обязательно.
Рассмотрим пример, ставший уже хрестоматийным. Из него станет понятно, что приведенные выше рассуждения — вовсе не отвлеченная теория.
Операционная система Microsoft Singularity
ОС Singularity, разрабатываемая корпорацией Microsoft и представляющая собой высоконадежную среду, относится к ПООК. То есть ее исходные тексты доступны в виде Singularity RDK (Research Development Kit) и распространяются под специальной лицензией Shared Source. Но свободным это приложение не является, поскольку массовый пользователь может только изучать продукт, а на всё остальное он не имеет права.
Кстати, из последнего примера видно, что российский термин ПООК следует понимать буквально, и он вовсе не тождественен Open Source в понимании OSI. Причем именно по этой причине многие считают его неудачным. Однако определение уже успело прижиться, и попытка что-то изменить внесет еще большую путаницу, в которой, разумеется, никто не заинтересован.
И в заключение — практический совет: будьте осторожней при чтении материалов с обильными и короткими цитатами. Ибо зачастую понять, о чем именно идет речь, можно только из общего контекста.
Комментировать