Свободное ПО и копилефт

GNU GPL – это одна из разновидностей лицензий для свободного программного обеспечения. Вероятно, самая популярная. GNU GPL была разработана в рамках проекта GNU. Существуют три версии этой лицензии, созданные в 1988, 1991 и 2007 годах.

GPL есть аббревиатура от General Public License, что на русский язык можно перевести как "универсальная общественная лицензия". Лицензируя программный продукт с помощью GNU GPL или другой копилефт-лицензии, разработчик, сохраняя за собой авторство, передает программу в общественную собственность. В остальном лицензии типа "копилефт" имеют небольшие отличия, нередко специфику областей применения.

Здесь мы не будем вдаваться в юридические особенности и подробно анализировать текст лицензии. Рассмотрим, почему возникла проблема лицензирования ПО, и какие преимущества есть у свободного ПО.

Как распространяются программы

Компьютерные программы создаются с помощью разных языков программирования, которые в настоящее время развиты настолько, что напоминают естественные. Программа на таком языке недоступна для "понимания" аппаратным обеспечением компьютера (железом). Поэтому для каждого языка программирования существуют специальные программы – трансляторы – осуществляющие перевод текста программы с языка программирования, на котором она была написана, на язык вычислительной машины. Команды, которые понимает и пишет программист, называются исходным кодом; команды, которые выдает транслятор, и которые способен выполнить компьютер, называются исполняемым (машинным) кодом.

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

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

Программное обеспечение с закрытым исходным кодом

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

В 80-х годах прошлого века компьютеры начали широко использоваться. Возрос спрос на программное обеспечение. Стали появляться фирмы, продающие ПО. Желая защититься от конкурентов, они "закрывали" исходные коды своих программ, чтобы другие программисты и фирмы не могли их изучать. Покупатель же в большинстве случаев получал уже скомпилированную исполняемую программу, которую ему было запрещено передавать другим. Другими словами, произошел отказ от принципов открытости исходных кодов и свободного распространения ПО.

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

Программы с открытым исходным кодом

Когда исходные коды начали закрываться, а программы запрещаться к распространению, появились несогласные. Яркий пример – Ричард Столлман. Многие программисты не лицензировали свои разработки, а предоставляли исходные коды сообществу. Эти программы становились общественным достоянием. Другой программист мог взять таковую и использовать на свое усмотрение.

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

В результате начали появляться лицензии, охраняющие открытое ПО от превращения в закрытое.

Copyleft и лицензия GNU GPL

Copyleft – это разновидность лицензий, запрещающих ограничение свобод. Причем программа, выпущенная под лицензией вида Copyleft, при изменении не может выпускаться под проприетарными Copyright-лицензиями. Как говорят, "копилефт заразен".

Самым известным примером копилефтной лицензии является GNU GPL – GNU General Public License.

Разработчикам, выпускающим свои программы под GNU GPL, гарантируется, что

Преимущества открытого и свободного ПО

Можно отметить следующие преимущества программ, распространяемых с открытым исходным кодом:

Если говорить о свободе копирования программного обеспечения, то следует отметить такое преимущество как социальная справедливость. Каждый человек может получить программу, в которой нуждается.

Вопрос 1. Чем отличаются понятия "свободное ПО" и "открытое ПО"?

Вопрос 2. Почему сделать закрытыми исходные коды программ, написанных на интерпретируемых языках, сложнее, чем на компилируемых?

Курс с ответами к заданиям и дополнительными уроками в PDF


Введение в Linux и Bash. Курс




Все разделы сайта