Открыть сервис

Открытое программное обеспечение

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

История

Ранние годы (1950–1970-е)

В первые десятилетия существования компьютеров программное обеспечение не было отдельным товаром и распространялось вместе с аппаратным обеспечением. Исходные коды программ поставлялись пользователям в виде распечаток или перфокарт, что позволяло им модифицировать и улучшать программы. Такой подход был общепринятым в академической среде и среди производителей компьютеров (например, IBM, DEC). Группы пользователей, такие как SHARE (для мейнфреймов IBM), активно обменивались кодами и усовершенствованиями.

Коммерциализация и начало движения за свободное ПО (1980-е)

В 1980-х годах, с развитием персональных компьютеров и ростом рынка программного обеспечения, производители начали распространять только исполняемые файлы (бинарники), скрывая исходный код для защиты интеллектуальной собственности и получения лицензионных отчислений. В ответ на это Ричард Столлман в 1983 году запустил проект GNU (GNU’s Not Unix — «GNU — это не Unix»), целью которого было создание полностью свободной операционной системы, совместимой с Unix. В 1985 году он основал Фонд свободного программного обеспечения (FSF). Столлман разработал концепцию «copyleft» (левый копирайт), реализованную в Стандартной общественной лицензии GNU (GNU General Public License, GPL), которая требовала, чтобы производные работы также распространялись под той же лицензией.

Формирование движения Open Source (1990-е)

Термин «open source» был предложен в 1998 году Кристин Петерсон и принят на встрече, организованной в Пало-Альто (Калифорния). Ключевыми фигурами этого процесса стали Эрик Реймонд, Брюс Перенс и Линнус Торвальдс. Они стремились сместить акцент с моральных аргументов Столлмана (свобода слова) на прагматические преимущества (эффективность разработки, надёжность, низкая стоимость). В том же году была основана Инициатива открытого исходного кода (Open Source Initiative, OSI), которая разработала Определение Open Source (Open Source Definition, OSD), содержащее десять критериев, которым должна соответствовать лицензия, чтобы считаться открытой.

Огромную роль в популяризации открытого ПО сыграл выход в 1991 году ядра Linux, созданного Линусом Торвальдсом. Комбинация ядра Linux и системных утилит проекта GNU (часто называемая GNU/Linux) к середине 1990-х годов превратилась в полноценную, стабильную и бесплатную операционную систему.

Критерии и лицензирование

Определение Open Source

Согласно определению OSI, лицензия открытого ПО должна предоставлять следующие права:

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

Типы лицензий

Открытые лицензии делятся на две основные категории:

  • Пермиссивные (разрешительные) — минимально ограничивают использование и распространение производных работ. Позволяют включать код в проприетарное ПО без раскрытия исходников. Примеры: лицензии MIT, BSD (2- и 3-пунктная), Apache 2.0, лицензия zlib/libpng.
  • Copyleft (с защитой) — требуют, чтобы любые производные работы (даже частично основанные на лицензированном коде) распространялись под той же или совместимой открытой лицензией. Это препятствует превращению открытого кода в закрытый. Примеры: GNU GPL (2.0, 3.0), GNU LGPL (для библиотек), Mozilla Public License (MPL).

Существуют также лицензии с сильным copyleft (например, GPLv3) и со слабым copyleft (LGPL, MPL), которые допускают использование кода в статически скомпонованных проприетарных приложениях при определённых условиях.

Классификация по типам

Открытое ПО охватывает практически все категории программного обеспечения:

  • Операционные системы: Linux (дистрибутивы Ubuntu, Fedora, Debian, Arch Linux), семейство BSD (FreeBSD, OpenBSD).
  • Веб-серверы и серверное ПО: Apache HTTP Server, Nginx, PostgreSQL, MySQL/MariaDB.
  • Инструменты разработки: компиляторы GCC (GNU Compiler Collection), среда разработки Visual Studio Code (с открытым кодом), система контроля версий Git, редактор Vim.
  • Прикладное ПО: офисный пакет LibreOffice, графический редактор GIMP, браузер Mozilla Firefox, медиаплеер VLC.
  • Научное и инженерное ПО: система компьютерной алгебры SageMath, САПР FreeCAD, пакет для статистического анализа R.

Разработка модели открытого ПО

Модель «Bazaar» (Базар)

Эрик Реймонд в эссе «Собор и Базар» (1999) противопоставил две модели разработки. Модель «Собора» — централизованная, закрытая, характерная для проприетарного ПО (например, Microsoft Windows ранее). Модель «Базара» — децентрализованная, с участием множества добровольцев, характеризующаяся быстрым циклом выпуска версий, ранним привлечением пользователей к тестированию и постоянной интеграцией изменений. Классический пример «Базара» — ядро Linux.

Особенности процесса

  • Публичные репозитории: код хранится на платформах вроде GitHub, GitLab, SourceForge.
  • Pull-реквесты и ревью: предложения изменений (патчи) проходят проверку мейнтейнерами (кураторами).
  • Совместная работа: обсуждение ведётся в открытых списках рассылки, форумах и системах отслеживания ошибок (bug tracker).
  • Роли: авторы, коммиттеры (имеющие право записи в репозиторий), мейнтейнеры (принимающие окончательные решения).
  • Форки: ответвление проекта в случае непримиримых разногласий (например, LibreOffice от OpenOffice.org, X.Org Server от XFree86).

Значение и применение

Экономические аспекты

Открытое ПО широко применяется в корпоративном секторе и госструктурах. Согласно исследованиям Gartner и Red Hat, более 90% крупных компаний (включая 95% компаний из списка Fortune 500) в той или иной форме используют открытое ПО (в основном Linux, Apache, Kubernetes). Экономия на лицензионных отчислениях, возможность аудита кода на предмет уязвимостей («свет — лучший дезинфектант») и независимость от одного поставщика являются ключевыми преимуществами. Крупные компании, такие как IBM (приобрела Red Hat за 34 млрд долларов в 2019 году), Microsoft (активный участник проектов Linux, Visual Studio Code), Google (Android основан на ядре Linux, Kubernetes), активно инвестируют в разработку открытого ПО.

Влияние на культуру

Движение открытого ПО способствовало появлению и развитию таких концепций, как краудсорсинг и распределённая коллаборация. Эти принципы легли в основу «открытой науки» (open science) и «открытых данных» (open data). OSI отмечает, что открытый код стал стандартом для веб-технологий и облачных вычислений, а также основой для ускорения инноваций.

Критика

Основные претензии к открытому ПО:

  • Фрагментация: множество проектов, конкурирующих друг с другом (например, сотни дистрибутивов Linux), что затрудняет стандартизацию.
  • Сложность встраивания: правила лицензий copyleft могут быть неприемлемы для коммерческих производителей ПО, желающих сохранить код закрытым.
  • Скрытые издержки: несмотря на отсутствие платы за лицензию, внедрение и поддержка открытого ПО требуют квалифицированных специалистов, которые на рынке труда стоят дорого.
  • Зависимость от воли сообщества: развитие проекта не гарантировано и может прекратиться из-за ухода ключевых разработчиков.
  • Безопасность: хотя открытость позволяет быстрее находить ошибки, она же делает уязвимости видимыми для злоумышленников до выхода патча (проблема «дилеммы прозрачности»).

Интересные факты

  • По состоянию на 2024 год реестр OSI насчитывает более 80 одобренных лицензий открытого ПО.
  • На портале GitHub (крупнейшем хостинге открытого кода) насчитывается более 100 миллионов репозиториев, из которых подавляющее большинство — открытые.
  • В 2021 году в ядре Linux работало более 2400 активных разработчиков от более чем 500 компаний из разных стран мира.

Источники

  1. Рэймонд, Э. С. «Собор и Базар» (The Cathedral and the Bazaar), 1999.
  2. Open Source Initiative. «The Open Source Definition» (версия 1.9), 2007.
  3. Фонд свободного программного обеспечения. «GNU General Public License», версия 3, 2007.
  4. Веб-сайт OSI (opensource.org) — список одобренных лицензий.
  5. GitHub Octoverse Report, 2023.
  6. Red Hat. «The State of Enterprise Open Source», 2022.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →