Что такое Open Source Software

Теги: IT

Open Source Software (OSS) — свободное программное обеспечение с открытым исходным кодом. В отличие от проприетарного ПО, код OSS может распространять, копировать, изучать и модифицировать любой пользователь. Рамки дозволенного регулируются выбранной изначально разработчиком лицензией.

Идея свободного и доступного исхода возникла в 1983 году из идеологического движения, неофициально основанного Ричардом Столлманом. Столлман считал, что ПО должно быть открыто для внесения изменений. Он первый начал выпускать бесплатный код по собственной лицензии — GNU Public License. Новый подход и идеология создания программного обеспечения быстро закрепились в среде программистов. В 1998 году они привели к формированию Open Source Initiative.
OSI была создана в противовес закрытому коду. Они продвигали и защищали Open Source Software и сообщества, занимающиеся его разработкой. OSI выступает в качестве центрального информационного и управляющего хранилища OSS. Он предоставляет правила и руководящие указания относительно того, как использовать Open Source Software и работать с ним, а также предоставляет информацию о лицензировании кода, поддержку, определения.

Создание OSS

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

Ошибки

Ошибки и конфликты — постоянная составляющая всех Open Source Software проектов, так как в них вносят изменения и улучшения сразу несколько сторон. Пользователи и компании, работающие с исходным кодом, придумали разделять разработку две ветки: стабильная и передовая. В стабильной обновление программы происходит раз в несколько недель или месяцев, а в исходный попадают только проверенные и рабочие функции. В передовой ветке обновления происходят чуть ли не каждый день, в программу попадают непроверенные функции.
Отметим, что и в коммерческом ПО достаточно ошибок. Единственное отличие состоит в том, что за исправление ошибок в проприетарном ПО отвечает поставщик, а в OSS сам пользователь.

Отличие от обычных программ

Основное отличие — лицензии. Авторы проприетарного ПО создают собственные лицензии, по которым распространять, копировать и изменять программу может только его создатель. Яркие примеры проприетарного ПО — Microsoft Office и Adobe Photoshop.
У программного обеспечения лицензии другого типа — они делают исходный код доступный всем желающим, способствуют сотрудничеству и обмену. Яркие примеры OSS — LibreOffice и GIMP. Другие отличия:
  • Для OSS не существует аутентифицированных лицензий — у закрытого ПО они необходимы для установки программы;
  • Open Source Software более гибкие, обеспечивают свободу действий — закрытое ПО поддерживает только официальные модификации, изменение запрещены;
  • Open Source Software обычно разрабатывается и поддерживается некоммерческими организациями — проприетарное ПО разрабатывают крупные корпорации.
  • Open Source Software обычно распространяется бесплатно, а плата взимается только крупными компаниями за техническую поддержку — за закрытое ПО необходимо платить.

Лицензии Open Source Software

Некоторые из самых популярных лицензий ПО с открытым исходным кодом включают в себя:
  • MIT — лицензия позволяет почти полностью, с небольшими ограничениями, изменять ПО.
  • GNU General Public — лицензия, гарантирующая возможность запуска, изучения и обмена ПО. Изменение также допускается, но в ограниченных рамках, зависящих от издания GNU.
  • Apache License 2.0 — полностью открытая лицензия, позволяющая любому пользователю самостоятельно распространять и изменять ПО.
  • BSD — лицензия позволяет использовать и изменять исходный код без необходимости делится им.
  • MySQL — открытая система управления базами данных, регулируемая двумя отдельными лицензиями: MySQL Standard Edition и MySQL Enterprise Edition.

Почему OSS высоко ценится

Контроль. Модель OSS позволяет получить больше контроля над ПО. Можно в любой момент проверить код, убедится во всех функциях, удалить не устраивающие моменты, исправить ошибки. Для обычных пользователей, не знакомых с программистом, тоже есть плюсы — OSS можно бесплатно скачивать и распространять, использовать на любых компьютерах.
Повышение навыков. Работа с OSS — отличный способ улучшить свои умения для программиста. Код общедоступен: изменять, копировать и изучать его может любой человек. А при возникновении ошибок или вопросов можно обратиться за помощью к другим людям, которые также работают над этим проектом.
Безопасность. Все функции OSS прописаны в лицензии, поэтому пользователь всегда знает, чего ожидать от ПО. Также скрытый сбор данных просто невозможен. При этом, сбор данных может быть открытым, но и в этом случае он будет регулироваться лицензией распространения.
Стабильность. Некоторые пользователи предпочитают программное OSS проприетарному программному обеспечению для важных долгосрочных проектов. Благодаря открытому коду можно быть уверенным, что инструменты не исчезнут или не будут повреждены, если их первоначальные создатели перестанут работать над ними. Кроме того, Open Source Software часто может работать и с проприетарным ПО. Например, LibreOffice поддерживает форматы «.doc» и «.docx», а Microsoft Office не поддерживает «.odt».
Сообщество. OSS объединяет вокруг себя огромное количество пользователей и разработчиков, горящих идеей открытого исходного кода. Сообщество OSS — это не просто фан-база, это люди, которые производят, тестируют, используют, продвигают и в конечном итоге влияют на программное обеспечение, которое они любят.

Недостатки OSS

В OSS относительно легко добавить вредоносное ПО для кражи личных данных, передачи вирусов и других запрещенных действий. Но стоит учитывать, что и в закрытое ПО часто добавляют вредоносные программы.
Также существуют сложности с обучением — у большинства OSS просто нет подробной документации, позволяющей разобраться во всех функциях. Поэтому придется либо изучать все методом «нажал, сломал, заново», либо обращаться к знающим людям на форуме.
Отдельно стоит отметить дизайн программ. При разработке Open Source Software часто пренебрегают внешним видом ради увеличения функционала. К тому же у программистов, в отличие от крупных компаний, нет огромного штата дизайнеров, которые могут рассчитать и создать оптимальный интерфейс. Для предприятий, которые внедряют решение OSS, все еще будут расходы на администрирование, обучение и внедрение. Также могут быть неожиданные внутренние расходы на поддержку.

Популярные программы с открытым кодом:

Linux — одна из наиболее популярных операционных систем для серверов. Многие дистрибутивы для ПК полностью бесплатны, поддерживают все функции «из коробки». Самые популярные дистрибутивы обладают подробной технической документацией.
Приложение веб-сервера Apache — бесплатная платформа для разворачивания веб-сервера. Поддерживается открытым сообществом разработчиков. Развернутый сервер хранит данные, способен обрабатывать запросы и обслуживать веб-активы.
Медиаплеер VCL — портативный медиаплеер, разрабатываемый коммерческой организацией. Несмотря на это, ПО поставляется с открытым исходным кодом. На мобильных платформах исходный код получить сложнее, так как инструментарий Google Play и AppStore не предусматривает эту возможность.
Android — открытая операционная система для мобильных устройств, изменять которую может любой пользователь. Новейшие версии не попадают под OSS, так как их Google оставляет для своих устройств Pixel. Несмотря на это, исходный код подавляющего большинства версий Android можно модифицировать, копировать и изучать.
LibreOffice — открытый офисный пакет, копирующий многие функции проприетарного Microsoft Office. Поддерживает все закрытые форматы (doc, docx, xls, xlsx и другие) ПО от Microsoft, но открывает их с большим скрипом, так как ориентирован на OpenDocument Format (odt, ods и другие).
Mozilla Firefox — веб-браузер с открытым исходным кодом, основанный на Chromium. К слову, Chromium также является Open Source Software, хоть и создан Google.

21 декабря 2022