Что такое свободные, открытые и бесплатные программы
easy

Что такое свободные, открытые и бесплатные программы

Резко начинаем разбираться в лицензиях на софт

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

Для этого нужно будет:

  1. Разобраться в лицензиях на софт.
  2. Посмотреть по отдельности на свободный, открытый и бесплатный софт.
  3. Выделить основные риски и проблемы, связанные с каждым из них.

Картинка для затравки:

Что такое свободные, открытые и бесплатные программы

Лицензии и ПО

У каждой программы есть лицензия, которая определяет, что можно делать с этой программой, а что нельзя. Например, почти весь код в наших статьях публикуется под лицензией CC0 — она означает, что код становится общественным достоянием и его может использовать кто угодно в любых целях. 

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

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

В итоге получается, что основное различие между программами в том, по какой лицензии они распространяются и что в них написано. 

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

Например, вы нашли в интернете программу с лицензией типа Attribution, share-alike: это значит, что если вы будете делать свою программу на основе чужой, вы обязаны указывать автора этой программы и распространять вашу новую программу на тех же условиях, что и исходную. Вы закрываете на это глаза и выпускаете собственный коммерческий продукт. Кто вам что сделает?  

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

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

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

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

Популярные лицензии софта

GNU GPL (GNU General Public License) — универсальная общедоступная лицензия, которая считается основной лицензией в мире открытого и свободного ПО. По этой лицензии пользователь получает 4 свободы:

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

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

Mozilla Public License — эту лицензию используют для почти всех продуктов Mozilla (браузер, почта и остальные) и во многих других компаниях. Она похожа на GPL, но с важным отличием — код под этой лицензией можно использовать вместе с закрытым кодом, права на которые есть только у его разработчика. Это значит, что в одной программе может встретиться и открытый, и закрытый код.

Лицензия Apache — она разрешает делать с кодом что угодно, главное — указать всех авторов и все патенты, которые использовались при разработке. Например, можно взять открытый код под этой лицензией, доработать его, закрыть свой код для всех и начать продавать. При этом единственное, что нужно будет сделать, — добавить два файла: один с текстом лицензии Apache, а во втором перечислить весь код, что мы использовали под этой лицензией.

Лицензии Creative Commons

Ещё есть большая группа лицензий, разработанных организацией Creative Commons, которую можно применять к программам и исходному коду. Вот некоторые лицензии, которые там предусмотрены:

  • CC Attribution (CC BY) — с кодом можно делать что угодно, главное — указывать автора исходной версии.
  • CC Attribution — Share Alike (CC BY-SA) — если на основе этого кода вы сделаете что-то своё, то оно тоже должно распространяться под этой же лицензией. 
  • CC Attribution — Noncommercial (CC BY-NC) — можно использовать код как угодно, но зарабатывать на нём нельзя.
  • CC Attribution — Noncommercial — No Derivative Works (CC BY-NC-ND) — программу можно использовать как угодно, но не зарабатывать на ней и не менять в неё ни строчки кода.

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

Бесплатное ПО — просто можно не платить, а внутри что угодно

Бесплатное ПО — то, которое авторы изначально решили отдавать бесплатно, а значит, запретили его продавать. Продажа бесплатного ПО будет считаться нарушением лицензии, за это можно привлечь к ответственности. 

Бесплатным может быть любой софт: с открытым кодом, закрытым, свободный, несвободный. Например, «Скайп» — бесплатное ПО, но у него закрытый исходный код.

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

Открытое ПО — можно посмотреть исходники

Открытое программное обеспечение — это софт, у которого исходный код доступен всем, поэтому эту категорию ещё называют «ПО с открытым исходным кодом», «опенсорс» и open source.

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

В силу технологий любой софт на Python, PHP или JavaScript имеет открытый исходный код (если разработчик не пытался его намеренно обфусцировать). Если вы скачаете дистрибутив WordPress для своего сайта, вы сможете залезть во все модули программы, посмотреть на их логику работы и написать что-то своё, что будет дружить с «Вордпрессом». 

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

Свободное ПО — делай что хочешь, но не закрывай

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

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

Риски и нюансы

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

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

Когда у софта закрытый код, то найти в нём уязвимость намного сложнее (но тоже возможно), а если появится что-то вредоносное — понятно, кто за это отвечает. 

Открытое ПО не работает в энтерпрайзе. Когда у тебя маленькое предприятие, ты можешь отлично использовать открытое ПО и никому ничего не платить. Но однажды у тебя появятся потребности в доработке или обслуживании этого софта — например, что-то сломалось, а у тебя на этом завязаны важные технологические процессы. К кому ты пойдёшь? Тебе никто ничего не должен. 

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

Хорошие примеры — Atlassian и 1С. Первые делают систему Jira, которую используют почти во всех ИТ-компаниях. Вторые — систему для бухгалтерского учёта, склада и т. д. «Джира» и «1С:Предприятие» — не самые удобные и вылизанные программы. Но когда тебе срочно нужно добавить какую-то возможность (или что-то починить) — ты звонишь своему провайдеру, и он обязан по договору тебе помогать. С открытым ПО так не получится.

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

А вот OpenOffice и LibreOffice, для сравнения, нельзя будет просто так отключить для России или любой другой страны. Это свободное ПО, и спасибо ему за это.

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy