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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Логотипы копилефта и копирайта

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

Логотип GNU GPL v3

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

  • авторское право будет сохранено;
  • каждый сможет копировать и использовать программу;
  • исходный код всегда будет доступен для изучения и изменения;
  • изменённые версии программ также должны быть лицензированы под копилефт.

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

Свободное программное обеспечение с открытым исходным кодом отличается следующими преимуществами:

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

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

Вопросы для самопроверки:

  1. Как переводится аббревиатура GPL на русский язык?
  2. Для чего используются трансляторы в процессе разработки программного обеспечения?
  3. Какое влияние оказало закрытие исходных кодов программ на развитие компьютерной науки?
  4. Кто был одним из видных противников закрытия исходных кодов и что он предложил?
  5. Каковы основные гарантии, которые получают разработчики, использующие GNU GPL для своих программ?
  6. Какие преимущества предоставляет свободное программное обеспечение с открытым исходным кодом?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux