Опубликован: 02.11.2010 | Доступ: свободный | Студентов: 5085 / 1573 | Оценка: 4.32 / 4.07 | Длительность: 17:08:00
ISBN: 978-5-9963-0416-5
Лекция 3:

Стандарты и лицензии на программное обеспечение

< Лекция 2 || Лекция 3: 12 || Лекция 4 >

3.2. Лицензии на программное обеспечение и документацию

С появлением Linux и подобных ей систем распространяемые свободно программы стали вытеснять коммерческие продукты. Для разных платформ существует много бесплатных программ семейства UNIX/Linux. Большая часть из них разрабатывалась в соответствии со специальной лицензией GPL (General Public License), которая была издана в рамках проекта GNU, начатого в 1984 году Ричардом Столменом (Richard Stollman) [16].

Информацию о Ричарде Столмене как одном из плеяды "выдающихся программистов мира" можно посмотреть в Интернете [53]. Ричард Столмен окончил Гарвардский университет по специальности "физика". Затем поступил на работу в Массачусетский технологический институт, где участвовал в нескольких проектах по разработке программного обеспечения. К примеру, он написал включенный во многие версии UNIX текстовый редактор emacs. С 1984 года он работает над проектом, первоначальной целью которого было создание на основе идей UNIX свободно распространяемой (бесплатной) операционной системы. Для ее разработки были нужны другие программные средства, например, транслятор с одного из языков программирования и редактор текстов. Но они также должны были быть бесплатными, иначе их авторы могут заявить свои права на часть созданной операционной системы.

Мысли Столмена были перенаправлены на создание новых методов разработки программного обеспечения. Для этого была создана лицензия GPL, в рамках которой разрабатываются свободно распространяемые программы. Для развития такого направления основывается FSF (Free Software Foundation), который возглавил Столмен. Его идеи заключаются в том, что программы обязательно должны иметь открытые исходные тексты. Любой программист может воспользоваться фрагментом чужой программы, но открыв исходный текст, созданный им самим. Кроме изменений, связанных с возможностью использовать чужие фрагменты, такой метод разработки программ улучшает и процедуру тестирования программ.

Удачные алгоритмы применяются многими программистами и подвергаются неоднократной и разнообразной проверке. Вообще Столмен сравнивал такой способ разработки программ с обменом кулинарными рецептами. Заметим, что разрабатываемые в соответствии с GPL программы не обязательно должны быть бесплатными. Можно включить программы других авторов как часть своего продукта и продавать последний. Конечно, при этом надо указать всех авторов всех частей проекта.

Что же такое свобода программного обеспечения по Столмену [8]?

  1. Разрешается запускать программу и использовать ее по назначению в любых целях.
  2. Разрешается изучать устройство программы, то, как она создана. При этом можно и даже необходимо использовать ее свободно предоставляемые исходники.
  3. Разрешается копировать программу в любых количествах и распространять бесплатно всем, кому она нужна.
  4. Разрешается изменять код программы, изменять ее в соответствии со своими представлениями и распространять как на коммерческой основе, так и на некоммерческой (платно или бесплатно).

Приведем и еще одну интерпретацию четырех пунктов "свободы" для разработчиков программ по Столмену [54]. Разработка свободно распространяемого ПО была очень важным шагом, но еще большей заслугой Р. Столмена следует признать создание "Стандартной Общественной Лицензии GNU" (GNU General Public License, или GPL). На русский язык это название разные авторы переводят по-разному: "Универсальная общественная лицензия", "Обобщенная Публичная Лицензия" и т.п. Но считается, что юридическую силу имеет только английский вариант этой лицензии. Основная идея GPL состоит в том, что пользователь должен обладать следующими четырьмя правами (или четырьмя свободами):

  • правом запускать программу для любых целей (свобода 0);
  • правом изучать устройство программы и приспосабливать ее к своим потребностям (свобода 1), что предполагает доступ к исходному коду программы;
  • правом распространять программу, имея возможность помочь другим (свобода 2);
  • правом улучшать программу и публиковать улучшения в пользу всего сообщества (свобода 3), что тоже предполагает доступ к исходному коду программы.

Публичная лицензия первой версии была выпущена в 1989 году. Через пару лет вышла ее вторая версия, а третья была написана в 2005 году, но окончательный вариант был принят в 2007 году. Эти лицензии обозначаются так: GPL vX (где Х может быть 1, 2 или 3). Из-за ограниченности размера книги приводим только название частей второй версии GPL:

  1. Определения.
  2. Право на копирование и распространение.
  3. Изменение программы.
  4. Требование предоставления исходного кода.
  5. Прекращение действия лицензии при нарушении ее условий.
  6. Акты, означающие принятие лицензии.
  7. Запрещение дополнительных ограничений при дальнейшем распространении.
  8. Внешние ограничения не снимают обязательства выполнять условия лицензии.
  9. Возможность географических ограничений.
  10. Будущие версии GNU GPL.
  11. Запросы на исключения из правил.
  12. Отказ от предоставления гарантий.
  13. Отказ от ответственности.

Иногда, в противовес правам на интеллектуальную собственность (в том числе и на программы), именуемым сopyright, программы, распространяемые в соответствии с лицензией, разработанной Столменом, связывают с термином copyleft (копилефт-лицензии).

Также сегодня, в противовес чисто коммерческому направлению разработки и распространения программного обеспечения, существует и другое направление – "открытые исходники" (Оpen Source). Его определение сформулировал Брюс Перенс (Bruce Perens) в 1997 году. С изменениями оно было опубликовано на сайте [54]. В Интернете об этом движении много самой разнообразной информации. Дадим только одну ссылку [55], содержащую адреса этой тематики в Рунете.

Отметим, что Оpen Source не эквивалентен GNU или FSF. Яркие последователи каждого из них часто высказывают свое несогласие между собой. Сам же разработчик Linux (Торвальс) старается держаться "поодаль" от перечисленных и других подобных движений. Эти два термина отличаются расстановкой приоритетов. Сторонники open source делают упор на эффективность открытых исходников как метода разработки, модернизации и сопровождении программ. Сторонники free software считают, что именно права на свободное распространение, модификацию и изучение программ является достоинством свободного ПО.

Linux – один из самых ярких представителей программного продукта, реализованного по методу открытых исходников. Но в этой разработке есть и нечто большее. Об этом ярко написал Эрик С. Рэймонд в статье "Базар и Собор" (The Cathedral and the Bazaar) Русский перевод можно найти в [56]. Там в противовес централизованному методу разработки программ предлагается другой метод – параллельный. При его использовании, разрабатывая программу, надо публиковать ее исходный текст с ранних стадий. Тогда создаются условия участия в проекте, например, на уровне обсуждения идей или частичной отладки, многих программистов. Об этом можно прочитать и статью Безрукова [57, 58].

Оpen Source имеет как много сторонников, так и противников. Его сторонники собираются на различные мероприятия, обсуждают свои проблемы в открытой печати и Интернете. Среди противников, что естественно, находим, прежде всего, представителей компьютерного бизнеса. Глава Microsoft неоднократно высказывался об Оpen Source. Например, в интернете есть публикация "Гейтс о бесплатном ПО" [59].

Исходные тексты своих программ публикуют и самые мощные представители компьютерного бизнеса. Это сделали, к примеру, Sun и даже Microsoft. Правда, последнюю фирму вряд ли можно "заподозрить" в приверженности к Оpen Source. Просто они оказались вынужденными передать исходные тексты своих программ, например, операционной системы Windows, под давлением [60].

Заметим, что параллельно с выпуском GPL v2 был разработан и в 1991 году оформлен документ, названный GNU Lesser General Public License (англ. "Стандартная общественная лицензия ограниченного применения GNU", сокращенно – GNU LGPL). Она была основана на GNU Library General Public License (англ. "Стандартная общественная лицензия GNU для библиотек"). Эти лицензии действуют на свободное программное обеспечение и одобрены Фондом свободного программного обеспечения. Их цель – достигнуть компромисса между GPL и простыми разрешительными лицензиями (например, BSD License, MIT License, Mozilla Public License). LGPL была написана в 1991 году, а затем обновлена в 1999 и 2007 годах Ричардом Столлмэном и Эбеном Могленом. На странице "Лицензии открытого ПО" Википедии приведен список из более 50 элементов. Естественно, это создает определенные трудности.

В семейства GNU есть еще одна лицензия. Ее имя FDL, а с описанием можно познакомиться на http://ru.wikipedia.org/wiki/GNU_Free_Documentation_License – "Свободная лицензия GNU на документацию". Может рассматриваться как дополнение к основной лицензии GPL.

Эта копилефт-лицензия первоначально разрабатывалась для пользовательских руководств, учебников и документации, сопровождающей программы для компьютеров. Как и основная лицензия GNU (GPL), предполагает возможность воспроизведениия, распространения и изменения исходных документов (в том числе и в коммерческих целях). При этом обязательно указывать авторов первоисточника. Заметим, что последний может содержать неизменяемые разделы.

< Лекция 2 || Лекция 3: 12 || Лекция 4 >
Анастасия Якимова
Анастасия Якимова
алена зянтерекова
алена зянтерекова