Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

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

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

Свободное и открытое программное обеспечение (СПО, Английский: 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), требует, чтобы доступ к исходному коду был у всех пользователей программы, даже если они не запускают её напрямую, а работают с программой по сети. Коммерческие организации часто отказываются использовать код под копилефт лицензиями, так как хотят сохранить монополию на часть кода программы.

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

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

CLA

Как правило, СПО разрабатывается многими людьми со всего земного шара - если кто-то улучшает код, он отправляет изменения автору, чтобы все могли получить доступ к улучшенной версии программы. Таким образом, автор больше не может распоряжаться кодом программы как угодно, он обязан следовать условиям лицензии, которую сам же и выбрал, так как не является автором улучшений, созданных третьими лицами. Однако некоторые авторы желают оставить за собой монополию на определённые действия - к примеру, некоторые авторы программ под копилефт лицензиями хотят сохранить возможность использовать код этих программ в проприетарном ПО. Для этого используются так называемые Contributor License Agreement (CLA) - лицензионные соглашения, которые обязан подписать каждый разработчик, вносящий изменения в "официальную" версию программы; данные соглашения передают полные права на весь код изначальному автору программы. С другой стороны, некоторые CLA создаются с благими намерениями: так как обычно авторское право может быть защищено лишь автором работы, некоторые авторы СПО просят передать им авторство изменений, чтобы иметь возможность защитить соблюдение условий лицензии.

Свободное ПО

Free и Libre

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

Критерии

  • 0. Свобода выполнять программу как вам угодно в любых целях.
  • 1. Свобода изучать работу программы и модифицировать программу, как вы пожелаете. Доступ к исходному коду является необходимым условием.
  • 2. Свобода распространять копии, чтобы вы могли помочь товарищам.
  • 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. “Но проблема зашла еще дальше. Слово "свободный" неотъемлемо связано с понятием морали: если свобода была самоцелью, то становилось не важно, будет ли свободное ПО лучше или выгоднее для бизнеса в определенных условиях. Все это становилось лишь довеском к побуждению, которое по сути своей не было ни техническим, ни меркантильным, а духовным. Более того, позиция "free как свобода" наиболее ярко высветила несоответствия в поведении корпораций, которые хотели поддерживать определённые свободные программы ради одних направлений своего бизнеса, но продолжали торговать проприетарным программным обеспечением в других.”

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

  7. The Open Source Definition