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

Материал из ПролеВики, пролетарской энциклопедии
Версия от 17:57, 10 августа 2022; Chayleaf (обсуждение | вклад) (устранение тавтологии)

Свободное и открытое программное обеспечение (СПО, Англ: Free/Libre and Open-Source Software - FLOSS, или просто Free and Open-Source Software - FOSS) - программное обеспечение, которое каждый вправе запускать, распространять, изучать, изменять и улучшать в любых целях. Чтобы считаться свободной и открытой, программа должна совпадать с критериями свободного ПО от Free Software Foundation и критериями открытого ПО от Open Source Initiative. Антоним данного термина - проприетарное программное обеспечение.

Отношение к социализму

СПО (чаще его называют "открытым", что не раскрывает суть термина) повсеместно используется по всему миру. Одни из самых важных проектов являются СПО, включая MediaWiki (на нём основаны ПролеВики и Википедия), GNU/Linux, OpenSSL, Telegram, Mozilla Firefox, Chromium, и др.

Социалистические страны часто широко используют и развивают СПО, к примеру:

  • Red Star OS, дистрибутив GNU/Linux, использующийся правительством Кореи (КНДР). Ввиду своей природы как правительственного инструмента он является проприетарным. [1]
  • Nova, дистрибутив GNU/Linux, созданный кубинскими студентами с целью заменить Windows. Проект свободно распространяется. [2]
  • PaddlePaddle, алгоритм машинного обучения, разработанный Baidu совместно с правительством Китая, с основном для использования в поисковых системах. [3]
  • COVID19-Cuba, приложение для Android, использующееся для сбора данных о пандемии COVID-19, помогающее жителям Кубы избегать районов с большим числом заражённых.[4]

Копилефт

Есть лицензии, которые разрешают использование кода в проприетарном ПО. Другие же лицензии, коллективно называющиеся "копилефт", накладывают ограничение на лицензии распространения. К примеру, GNU General Public License (GPL) требует, чтобы всем лицам с доступом к программе был доступен весь код, являющийся частью этой программы. Другая лицензия, GNU Affero General Public License (AGPL), требует, чтобы доступ к исходному коду был у всех пользователей программы, даже если они не запускают её напрямую, а работают с программой по сети. Коммерческие организации часто отказываются использовать код под копилефт лицензиями, так как хотят сохранить монополию на часть кода программы.

Коммерческое использование

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

Свободное ПО

Free и Libre

Термин "Free Software" может быть неправильно понят как "бесплатное ПО". Из-за этого вместо "Free" часто используют "Free/Libre", либо просто "Libre".

Критерии

  1. 0. Свобода выполнять программу как вам угодно в любых целях.
  2. 1. Свобода изучать работу программы и модифицировать программу, чтобы она выполняла ваши вычисления, как вы пожелаете. Доступ к исходному коду является необходимым условием.
  3. 2. Свобода распространять копии, чтобы вы могли помочь товарищам.
  4. 3. Свобода передавать копии своих измененных версий другим, чтобы всё общество выиграло от этого. Доступ к исходному коду является необходимым условием. [5]

Открытое ПО

Термин "Открытое ПО" был выбран для распространения идей СПО среди бизнеса. Этот термин акцентирует преимущества, полученные автором от открытия исходного кода, а не преимущества, полученные обществом от коллективных прав на ПО.[6]

Критерии

  1. Свободное распространение. Лицензия не должна налагать ограничений на продажу и распространение ПО.
  2. Доступ к исходному коду. Даже если исходный код не прилагается к ПО, он должен быть легко доступен (к примеру, к ПО должен прилагаться адрес, откуда можно запросить копию кода).
  3. Возможность модификации. Лицензия должна разрешать не только чтение кода, но и модификацию, использование частей кода в других проектах и распространение получившихся программ на условиях той же лицензии.
  4. Даже в случае неприкосновенности авторского исходного кода, производные программы и их исходный код должны свободно распространяться. Открытые лицензии могут оставлять за автором какие-то права на целостность кода — к примеру, условие, обязывающее давать другое имя или версию производным программам; или обязательство использовать определённый формат изменений, который нельзя перепутать с кодом автора. Тем не менее, в том или ином виде модификации должны быть распространяемые.
  5. Отсутствие запретов на использование определёнными людьми или группами людей. К примеру, нельзя запрещать правительствам определённых стран использовать данный код. Если использование кода определёнными лицами запрещено законом, то лицензия может об этом напоминать, но не должна напрямую запрещать это.
  6. Отсутствие запретов на цель применения. Открытая лицензия должна разрешать все виды деятельности, включая генетические и ядерные исследования, коммерческое применение и т. д.
  7. Распространение лицензии. Права, связанные с открытым ПО, должны быть даны всем пользователям, получившим доступ к программе, без дополнительных условий.
  8. Лицензия не должна быть привязана к конкретному продукту. Права на программный код не должны зависеть от того, является ли программа частью какого-то продукта. Человек, перенёсший часть кода в другой продукт, имеет такие же права, какие давались изначально.
  9. Лицензия не должна ограничивать другие программные продукты. Пользователь имеет право выбирать, чем пользоваться. Например, нельзя требовать, чтобы остальные программы, поставляемые вместе с данной, также были открытым.
  10. Лицензия должна быть технологически нейтральной. Лицензия не должна требовать что-либо от интерфейса или технологий, применяемых в производной программе. [7]

Ссылки

  1. Архив Red Star OS на ArchiveOS.
  2. Nova OS webpage.
  3. https://github.com/PaddlePaddle/Paddle
  4. COVID19-Cuba на GitHub.
  5. Определение СПО
  6. “Слово "свобода" неизбежно несло с собой определённые моральные ценности: если свобода была сама по себе целью, а не средством, неважно, лучше ли свободное ПО по сравнению с обычным, приносит ли оно большую прибыль для определённых бизнесов в определённых условиях. Это - попросту приятные побочные эффекты, но сам мотив был, по сути, не техническим или меркантильным, а моральным. Более того, эта моральная позиция мешала корпорациям, которые хотели поддерживать СПО в некоторых сферах деятельности, но продолжать использовать проприетарное ПО в других.”

    Карл Фогель (2005). Производство открытого ПО: Как запустить успешный проект со свободным ПО: 'Введение' (Английский: Producing Open Source Software: How to Run a Successful Free Software Project). [PDF] doi: 10.5555/1593439 [HUB]

  7. The Open Source Definition