Free Software и Open Source: общее и различное, прошлое и будущее

«Если программисты заслуживают вознаграждения за создание прогрессивных программ, то также они заслуживают и наказания, если они ограничивают использование этих программ.»
Ричард Мэттью Столлман («RMS»)
Термин «свободное программное обеспечение» часто используют, не мудрствуя лукаво, как «бесплатные программы с открытым исходным кодом».
Чтобы подчеркнуть существенное различие, вспомним историю и определение такого термина, как FLOSS (Free/Libre and Open-Source Software), который в русскоязычной версии звучит как свободное программное обеспечение с общедоступными (открытыми) исходными кодами. Особый акцент здесь сделан на слове Libre (свободное), которое было намеренно поставлено рядом с Free. Двузначность слова Free в английском языке – и свободное, и бесплатное! – не ограничивало область толкования исходного определения FOSS в том смысле, который вложили в него авторы. Рассмотрим это существенное различие поближе.
Читати як працює Kubernetes – на сайті IT Education Blog.
Во-первых, возможность увидеть «человеко-понятные» исходные коды (под лицензиями типа Source-available software) — хотя и является условием №1 для любой разновидности FLOSSа, но вовсе не гарантирует, что эти коды возможно будет далее хотя бы как-нибудь использовать: так, лицензия Ms-RSL от Microsoft позволяет только ознакомиться с исходным кодом некоторых программ, что называется, «для успокоения души». Во-вторых, свободное – не есть бесплатное, а бесплатное ПО («freeware») — часто оказывается не-свободным, и даже с закрытым исходным кодом.
В чем же тогда заключается самое общее и понятное определение «свободного ПО» (то есть собственно FLOSS-а)?
FLOSS = free software + open source software
В дополнение к сказанному выше про необходимость открытого исходного кода, все разновидности свободных лицензий (признанные FSF или OSI) предполагают, что этот код можно свободно использовать далее — например, выпускать существенно переработанные версии свободно-лицензируемых программ (делать их «форки»), включать как компоненты в новые программы и программные комплексы, а также использовать их для коммерческой деятельности (получения выгоды). И, безусловно, улучшать эти программы вместе с командами их разработчиков.
Если с общими качествами все стало понятно – то как насчет принципиального различия?
Основное отличие free software и open source software
«Ричард думает, что всё программное обеспечение должно быть свободным, а я считаю, что свободное и несвободное программное обеспечение могут сосуществовать. Это единственное различие.»
Брюс Перенс, автор определения Open Source
Принципиальное отличие свободного (free software) и открытого (open source software) ПО заключается в требованиях к его использованию: лицензии свободного ПО (FSF-based, free software — например, GPL) предполагают, что все результаты его использования будут также строго соответствовать исходной лицензии, проще говоря — нельзя включить программу free software в состав любого не-free software решения. В этом смысле, free software подобен вирусу («вирусная лицензия», «General Public Virus», «GNU Public Virus» etc.) – все, с чем соприкасается free software, также должно быть (или стать) free software. На практике это означает, что нельзя использовать любые free software программы (в т.ч. библиотеки) в составе программных решений с закрытым исходным кодом, даже если доля этого закрытого кода незначительна (например, закрытый производителем системный загрузчик, который загружает free software-прошивку на мультимедийное устройство (телевизор). Другой пример — использование не-free software компонент (мультимедийные кодеки, шрифты, проприетарные драйвера) в составе открытых операционных систем (Ubuntu, которая соответственно не может считаться каноничным free software).
Такой радикальный подход получил также неформальное название «принуждения к свободе» и стал темой философских дискуссий — может ли считаться свобода действительно свободой, если к ней принуждают?..
Лицензии open source software (например, BSD), в общем случае, не запрещают использование открытого кода в закрытых проектах — и, соответственно, поощряют развитие произвольных IT-экосистем вокруг открытого ПО, поощряя тем самым более активное его развитие.
Нужно сказать, что такая странная на первый взгляд ситуация сложилась вследствие вполне конкретных исторических прецедентов, которые стоит рассмотреть.
Free/open software – с чего все началось, и что есть сейчас?
История «закрытия ПО» полна драмы, обманутых надежд, цитат из открытого письма Билла Гейтса энтузиастам и пересказана уже сотни раз. Резюмируя ее итог, можно сказать — так или иначе, это должно было случиться: с началом активных продаж ПК конечным пользователям, массовое программное обеспечение для них стало таким же точно товаром. Зачастую – с дополнительными условиями в виде запретов на модификацию, копирование, особые случаи использования и т.д., проводя аналогию, свой собственных ПК можно было красить, разбирать и сверлить дрелью, а вот ОС и офисные программы — уже нет.
Одним из первых героев-одиночек, которые не смирились со сложившейся ситуацией, был Ричард Мэтью Столлман aka RMS, который взялся в одиночку развивать LISP-машины в лаборатории искусственного интеллекта MIT после того как их код ушел во владение коммерческих компаний.
Осознав тщетность попыток в одиночку угнаться за разработками целых команд, Столлман в октябре 1985-го года организовал некоммерческую организацию «Фонд свободного программного обеспечения» (Free Software Foundation, FSF). Целями Фонда было поддержка программного обеспечения, разработка которого будет всегда открытой. Двумя годами ранее, в 1983 году, Ричард Столлман выступил также как основатель проекта GNU по созданию UNIX-совместимой операционной системы, целиком состоящей из свободных компонент с открытыми исходными кодами.
Изначально деятельность Фонда полагалась исключительно на «добрую волю» участников (распространение ПО без всяких документальных лицензий), однако спустя некоторое время с самим Ричардом произошел инцидент, убедивший его в необходимости строгой формализации соглашений на ПО. Столлман совершенствовал текстовый редактор Emacs, исходные коды которого передал ему и другим энтузиастам сам автор редактора, Джеймс Гослинг. Но через некоторое время Гослинг продал права на этот продукт компании UniPress, после чего представители компании попросили Ричарда прекратить свободное распространение программы. После этого случая Ричард Столлман сформулировал принципы первой лицензии для свободного ПО под названием «Основная общественная лицензия GNU» (GNU General Public License, GNU GPL или GPL). Лицензия выступала как договор между автором программы и пользователем и декларировала пользователю права на просмотр, любые изменение и свободное распространение кода программы. Основной акцент, который сделал Столлман и который стал базовым постулатом free software — пользователь GPL-ПО не имеет права делать несвободной любую модификацию такого ПО. Чтобы еще более обозначить отличие free software от проприетарного (собственнического), Столлман ввел термин копилефт (copyleft), обыгрывающий словами термин «копирайт» (copyright), «визуальный маркер» несвободных программ и технологий. Фактически, знак копилефта объявлял: «эта программа — свободная, и любые использования ее самой либо любой ее части, а также любые модификации — должны также быть полностью свободными (следовать правилам free software)».
Примерно в это же время оформились базовые свободы пользователей free software, ставшие постулатами философии свободного программного обеспечения (статья «Что такое свободное программное обеспечение?» или «The Free Software Definition»), которые в настоящий момент выглядят так:
- 0-свобода — запускать программу для любых целей;
- 1-свобода — изучать исходный коды программы пользователем и адаптировать их под его потребности;
- 2-свобода — распространять копии программы в любом виде;
- 3-свобода — улучшать (изменять) программу и делиться результатами со всеми желающими, не закрывая доступ к исходному коду.
Следующим знаковым событием для мира FLOSS стал выпуск в 1991 ядра ОС Linux финским студентом Линусом Торвальдсом. Ядро свободной операционной системы оказалось именно тем, чего не хватало проекту GNU, поэтому все разработки данного проекта были включены в комплект GNU/Linux (название было расширено по просьбам FSF). Официальное лицензирование ОС Linux по GPL в феврале 1992 года стало качественным прорывом и эпохальным событием для всего движения свободного ПО. Семимильными шагами дистрибутивы на основе Linux начали покорять мир серверов и потихоньку пробираться на пользовательские ПК.
Тем не менее, радикализм лицензии free software устраивал далеко не всех — не только в мире бизнеса (то есть потенциальных клиентов и пользователей), но и в среде разработчиков открытого/свободного ПО.
В 1998 году Эрик Реймонд и Брюс Перенс сформулировали новую концепцию под названием «открытое ПО» (open source). Формальным предлогом была неоднозначная семантика термина free software, который смущал представителей коммерческого сектора. В феврале этого же года Брюс и Эрик основали организацию Open Source Initiative (OSI), которая так же, как и FSF, посвятила свою деятельность продвижению свободного программного обеспечения. Дата основания OSI совпала с публикацией исходного кода браузера Netscape Communicator на условиях свободного использования, впоследствии на базе этого кода была разработана первая версия браузера Mozilla FireFox.
Определение открытого ПО от OSI («определение OSI») позволяет использовать официальный логотип OSI для ПО, которое удовлетворяет его критериям. Эти 10 критериев базируются на более ранних критериях стандарта Debian Free Software Guidelines и, в общем виде, не запрещают использовать соответствующее ПО в закрытых разработках (например, под лицензией BSD).
Несмотря на существенную разницу во взглядах, FSF и OSI находят много общих моментов для плодотворного сотрудничества с целью продвижения идеологии FLOSS и содействия в распространение таких программных продуктов.
Далеко идущие последствия
Знаковые достижения свободного программного обеспечения и организаций, содействующих его распространению и развитию (в частности, победы в судебных делах) стали примером и мотивацией для деятелей культуры и искусства, юристов и общественных организаций — для всех тех, кому небезразличен прогресс и доступность для людей достижений всего человечества.
Так, в 2001 году в США была создана некоммерческая организация Creative Commons, создавшая типовые договоры и лицензии, которые позволяют авторам произведений литературы и искусства гибко управлять своими авторскими правами и доступностью своего творчества соответственно (в отличии от политики принципа безусловной охраны).
Множество других открытых методологий (открытые данные, открытое образование, открытое проектирование и т.д.) также служат общему делу — сделать достижения человечества доступными для всех, установить разумный баланс между коммерческой выгодой и свободами личности, создать новые возможности для качественного развития Цивилизации.
Курсы Linux и Devops от практических специалистов в IT Education Center