Свободное программное обеспечение

Материал из Энциклопедия фан-клуба Лаборатории Касперского
Перейти к: навигация, поиск

Свободное программное обеспечение (СПО, англ. free software, также software libre или libre software), свободный софт — программное обеспечение, в отношении которого права пользователя («свободы») на неограниченную установку, запуск, а также свободное использование, изучение, распространение и изменение (совершенствование) защищены юридически авторскими правами при помощи свободных лицензий.

Как и бесплатное (freeware) и бесплатно распространяемое программное обеспечение, СПО можно получать и использовать бесплатно (но конкретный распространитель может взимать плату за получение у него копий, за каналы доставки, носители — компакт-диски или дополнительные сервисные услуги). Однако freeware обычно распространяется в исполнимом виде без исходных кодов и является проприетарным ПО, а чтобы ПО было свободным, получателям должны быть доступны его исходные коды, из которых можно создавать исполнимые файлы, с соответствующими лицензиями. Также следует различать свободное и открытое ПО (open source) — хотя доступность исходного кода для СПО является обязательным, а многие открытые программы является одновременно свободными, но открытым иногда называют и некоторое несвободное проприетарное ПО (например, коммерческое ПО с открытым исходным кодом, Shared source).

Движение СПО зародилось в 1983 году, когда Ричард Столлман сформировал идею о необходимости дать программную свободу (англ. software freedom) пользователям. В 1985 году Столлман основал Фонд свободного программного обеспечения, чтобы обеспечить организационную структуру для продвижения своей идеи.

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

Содержание

Свободные лицензии

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

Чтобы избавить пользователей программ от проблем, вызванных перекосом законодательства об охране результатов интеллектуальной деятельности в сторону правообладателя, авторы и правообладатели могут передать пользователям права на четыре вышеперечисленные свободы действий. Это достигается путём выпуска исходного кода программного обеспечения на условиях одной из особого рода лицензий, называемых свободными лицензиями. Несмотря на то, что по условиям свободных лицензий выданные пользователям разрешения правообладатель отозвать не может, свои права, гарантированные законодательством, авторы сохраняют.

Свободное ПО легко коммерциализируется — существует множество бизнес-моделей, где исключена необходимость оплаты копий программы. Например, высокую популярность имеет бизнес-модель, когда предприниматель может заработать за счёт предоставления услуг технической поддержки. Правообладателю свободного кода может быть интересен другой вариант — реализация программных продуктов на условиях коммерческой лицензии, в случае, если клиенту необходимо интегрировать свободный код в проприетарное программное обеспечение, но он не желает раскрытия своих разработок.

Определение свободного ПО

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

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

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

Только удовлетворяющая всем четырём перечисленным принципам программа может считаться свободной программой, то есть гарантированно открытой и доступной для модернизации и исправления ошибок и дефектов, и не имеющей ограничений на использование и распространение. Нужно подчеркнуть, что эти принципы оговаривают только доступность исходных текстов программ для всеобщего использования, критики и улучшения, и права пользователя, получившего исполнимый или исходный код программы, но никак не оговаривают связанные с распространением программ денежные отношения, в том числе не предполагают и бесплатности. В англоязычных текстах здесь часто возникает путаница, поскольку слово «free» по-английски означает не только «свободное», но и «бесплатное», и нередко употребляется по отношению к бесплатному программному обеспечению, которое распространяется без взимания платы за использование, но недоступно для изменения пользователями и сообществом, потому что его исходные тексты не опубликованы. Такое бесплатное ПО вовсе не является свободным. Наоборот, свободное ПО вполне можно распространять (и распространяют), взимая при этом плату, однако соблюдая при этом критерии свободы: каждому пользователю предоставляется право получить исходные тексты программ без дополнительной платы (за исключением цены носителя), изменять их и распространять далее. Всякое программное обеспечение, пользователям которого не предоставляется такого права, является несвободным — независимо от любых других условий.

Основная общественная лицензия GNU

Декларировав критерии свободного ПО, члены Фонда свободного ПО стали распространять свои программы в соответствии с этими принципами, никак не оформляя это документально: иначе говоря, первоначально свободные программы распространялись вообще без лицензии. Однако произошедший с самим Ричардом Столлманом прецедент (см. ниже) убедил его в том, что документальное оформление необходимо для свободного ПО.

Ричард Столлман занимался разработкой текстового редактора Emacs на основе исходных текстов Джеймса Гослинга. Тогда Гослинг свободно раздавал свои исходные тексты всем заинтересованным. Однако в какой-то момент Гослинг продал права на распространение Emacs компании UniPress[5], и эта компания попросила Столлмана прекратить распространение его версии Emacs, так как права принадлежат им.[стиль!] Этот инцидент заставил Столлмана переписать заново те части исходного текста Emacs, которые теперь принадлежали UniPress, после чего он разработал собственную лицензию на своё программное обеспечение.

Лицензия, сформулированная Столлманом, должна была работать так же, как и лицензии на несвободное программное обеспечение: это типовой договор автора программы (обладателя авторских прав) с пользователем, в котором автор, среди прочего, оговаривает права пользователя по отношению к программе. В отличие от типовой собственнической лицензии, лицензия Столлмана предоставляет пользователю права, являющиеся критериями свободной программы: получать исходные тексты программ, изменять их, распространять изменённые и неизменённые версии. Впоследствии лицензия Столлмана получила название GNU General Public License («Основная общественная лицензия GNU»), сокращённо GNU GPL или просто GPL.

В этой лицензии оговаривается также принципиальное для Столлмана защитное условие распространения свободного ПО: ни один пользователь, сделавший модифицированную версию свободной программы, не имеет права распространять её, не соблюдая всех принципов свободного ПО, то есть делать модификацию свободной программы несвободной. Чтобы подчеркнуть отличие такой лицензии, которая использует ЗоАП (copyright) для побуждения к сохранению свободы, от типовых собственнических лицензий, которые используют ЗоАП для ограничения свободы, был придуман термин copyleft (копилефт) — игра слов, построенная на значениях английских слов right и left. Действие копилефта основано на том, что производные работы в большинстве случаев наследуют лицензии своих составляющих; если в программе используется небольшая часть стороннего кода под GPL, то вся программа и её производные должны распространяться под GPL, пока они являются производными этого кода. При этом в GPL есть раздел, позволяющий требовать сохранения в коде имён авторов, запрещать использование этих имён в рекламе, предупреждать о зарегистрированных товарных знаках и т. п., что позволяет комбинировать работы под GPL с работами под многими свободными некопилефтными лицензиями (например, некоторыми из лицензий BSD), не создавая значительных ограничений и не нарушая лицензии, — но производные от результата, являясь производными от работы под GPL, уже не могут (без отдельного разрешения правообладателей) распространяться на условиях данной некопилефт‐лицензии без соблюдения условий GPL — в том числе и как неотъемлемая часть несвободного ПО. По этой причине лицензии, подобные GNU GPL, иногда называют также «вирусными лицензиями»: они как бы «заражают» программу, становясь её неотъемлемой частью.

Философия

В европейской культуре долго вырабатывались правила собственности по отношению к материальным ценностям. И вполне логично, что эти правила были распространены на ценности нематериальные — в том числе и на программные продукты, когда они начали представлять самостоятельную ценность. Однако, у программных продуктов есть принципиальное отличие от материальных объектов — их можно легко копировать. Создание же копии материального продукта часто почти равно затратам на создание оригинала.

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

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

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

Существует и точка зрения противников вышесказанного. Так, например, последовательная легализация theft of services означает бесплатность всех услуг, что означает скорее всего содержание всей этой сферы госбюджетом, а в таковом случае, во-первых, за услуги платят все налогоплательщики из своих налогов, причем без рыночного механизма влияния потребителя на производителя («кушай что дают»), во-вторых, это отвлекает госсредства от задач национальной важности, в-третьих, отсутствие рыночной конкуренции приведет к нивелированию качества всех услуг к некоему дешевому и не очень качественному минимуму (возможно даже возложение части оказания услуги на потребителя в виде «доделай сам»). Все то же самое относится и к идее тотальной бесплатности всего ПО.

Несвободные программы называют «проприетарными» (от англ. proprietary) или «собственническими». Иногда их неправильно называют просто «коммерческими», что неверно: получать выгоду от программы можно различными способами и многие успешные свободные проекты это подтверждают.

См. таже

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты