Process & Methodology

Open Source

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

Что такое Open Source

Open Source (опенсорс, ПО с открытым исходным кодом) — программы, исходный код которых открыт и доступен для чтения, изменения и распространения на условиях лицензии. Определение поддерживает Open Source Initiative (OSI): помимо доступности кода оно требует свободного распространения, разрешения на производные работы и отсутствия дискриминации по областям применения — нельзя запретить использовать программу коммерчески или в конкретной отрасли.

Главное заблуждение: открытый ≠ бесплатный. Открытость — про права, а не про цену. Опенсорс можно продавать, а проприетарную программу — раздавать даром. В английском для этого есть присказка «free as in freedom, not as in free beer»; ближайшая русская пара — «свободный», а не «бесплатный».

Рядом живёт термин free software (свободное ПО) от Free Software Foundation с четырьмя свободами: запускать, изучать, распространять и улучшать. На практике списки программ почти совпадают, различие идеологическое: FSF считает открытость этическим требованием, OSI — практическим преимуществом разработки.

Отдельно стоит source-available: код виден, но лицензия ограничивает применение. Это не опенсорс, хотя выглядит похоже.

Лицензии: главное различие

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

Лицензия Тип Что обязывает
MIT Пермиссивная Сохранить текст лицензии и копирайт
BSD (2/3-clause) Пермиссивная То же; 3-clause запрещает использовать имя автора в рекламе
Apache 2.0 Пермиссивная Сохранить уведомления, отметить изменения; даёт явную патентную лицензию
MPL 2.0 Слабый копилефт Открыть изменённые файлы библиотеки
LGPL Слабый копилефт Открыть изменения самой библиотеки; линковка своего кода не заражает
GPL v3 Сильный копилефт При распространении продукта открыть весь производный код под GPL
AGPL v3 Сильный копилефт То же + считает работу по сети распространением

Пермиссивные (MIT, BSD, Apache) разрешают почти всё, включая встраивание в закрытый коммерческий продукт. Единственная реальная обязанность — не убирать уведомления об авторстве.

Копилефт (GPL) требует взаимности: раздаёте производный продукт — раздавайте и исходники на тех же условиях. Отсюда слово «вирусность» — оно про распространение условий лицензии, а не про вред.

Отдельного внимания заслуживает AGPL. GPL требует открывать код только при распространении программы, а SaaS ничего не распространяет — пользователь работает по сети. AGPL закрывает эту лазейку: если вы предоставляете доступ к изменённой AGPL-программе через сеть, обязаны предложить пользователям её исходники. Практический вывод: AGPL-компонент внутри публичного сервиса — вопрос к юристам, а не к разработчику.

Что важно на практике:

  • Лицензия зависимости распространяется на вас. Прочитать нужно не только лицензию проекта, но и всё, что он тянет за собой.
  • Патентная оговорка Apache 2.0 — причина, по которой её часто выбирают для корпоративных проектов вместо MIT.
  • Отсутствие лицензии — не «делай что хочешь». Код без лицензии защищён авторским правом по умолчанию, использовать его нельзя.
  • Открытый код не даёт гарантий. Все эти лицензии содержат отказ от ответственности заглавными буквами.

Смена лицензий и форки

За последние годы несколько крупных проектов ушли из опенсорса в source-available, чтобы облачные провайдеры не зарабатывали на их коде: MongoDB перешла на SSPL, HashiCorp — на BUSL. Ни SSPL, ни BUSL не одобрены OSI, то есть формально это уже не Open Source.

Сообщество отвечает форками: от Terraform отпочковался OpenTofu, от Redis — Valkey под крылом Linux Foundation. Это иллюстрирует главную практическую ценность открытой лицензии: право на форк означает, что смена политики вендора не оставляет пользователей в заложниках.

Как на этом зарабатывают

  • Open core — ядро открыто, корпоративные функции (SSO, аудит, квоты) в платной редакции. Так устроен GitLab.
  • SaaS от авторов — код бесплатен, платят за managed-хостинг и отсутствие забот.
  • Поддержка и подписка — модель Red Hat: код открыт, деньги за сертифицированные сборки, обновления и SLA.
  • Двойное лицензирование — GPL для сообщества, платная коммерческая лицензия для тех, кому копилефт не подходит.

Опенсорс в инфраструктуре

Открытым является практически весь стек, на котором работает современный хостинг: Linux, Nginx, PostgreSQL, Docker, Kubernetes, Prometheus, OpenStack. Это не идеология, а экономика: базовая инфраструктура слишком дорога, чтобы каждый строил её сам, и выгоднее развивать общую.

Практический смысл открытости для админа — три вещи: отсутствие vendor lock-in (не нравится провайдер — переносите тот же стек), возможность посмотреть, как оно работает при отладке странного поведения, и право форкнуть, если проект бросили.

В ML сложилось отдельное понятие — открытые весы (open weights). Модели Llama, Qwen, Mistral выкладываются на Hugging Face и запускаются на своём железе, но их лицензии часто не соответствуют определению OSI: встречаются ограничения на области применения или на масштаб использования. Кроме того, «открытые весы» почти никогда не означают открытые обучающие данные. Называть такие LLM опенсорсом строго корректно не всегда — проверяйте текст лицензии конкретной модели, а не заголовок новости.

Связанные термины

  • Linux — главный опенсорс-проект инфраструктуры
  • GitHub — где живёт большинство открытых проектов
  • Git — инструмент, сделавший форк дешёвой операцией
  • Hugging Face Hub — репозиторий моделей с открытыми весами
  • Kubernetes — пример открытого проекта, ставшего отраслевым стандартом
  • DevOps — практика, построенная почти целиком на открытых инструментах

Готовы запустить GPU-задачу?

Запустить GPU-сервер