Перейти к основному содержимому

Open-Source

Всем

Открытость как принцип и open-source как модель распространения

Термин open-source («открытый исходный код») стал обозначать особую модель распространения программного обеспечения, при которой исходный код программы доступен для изучения, модификации и распространения. Эта модель возникла как практическое и идеологическое развитие более раннего движения за свободное программное обеспечение (free software), зародившегося в 1980-х годах под руководством Ричарда Столлмана.

Столлман в 1983 году инициировал проект GNU с целью создания полностью свободной UNIX-совместимой операционной системы. В 1985 году он основал Фонд свободного программного обеспечения (Free Software Foundation, FSF), разработавший философские и юридические основы свободы программ: пользователь должен обладать возможностью запускать программу в любых целях, изучать и изменять её, распространять копии и улучшать программу, делая улучшения доступными для общества.

Однако термин free software в английском языке вызывал двусмысленность: слово free означает и «свободный», и «бесплатный». Это вводило в заблуждение бизнес-сообщество, которое часто воспринимало свободное ПО как просто безвозмездно доступное, без учёта прав на модификацию и распространение.

В 1998 году, после выхода исходного кода браузера Netscape Communicator, Эрик Реймонд и Брюс Перенс предложили использовать термин open source как более нейтральный и ориентированный на практические преимущества модели открытой разработки. В том же году была основана **Open Source Initiative **(OSI), которая сформулировала Определение открытого исходного кода (Open Source Definition, OSD) — набор критериев, которым должна соответствовать лицензия, чтобы программное обеспечение считалось open-source.

Таким образом, open-source стал не просто синонимом свободного ПО, а альтернативной парадигмой, делающей акцент не столько на моральных и этических правах пользователя, сколько на эффективности, качестве и гибкости разработки через открытую коллаборацию.


Принципы открытости: бесплатность, лицензирование и авторские права

Открытость не тождественна бесплатности, хотя большинство open-source-проектов действительно распространяются без платы. Ключевое отличие заключается в том, что открытость регулируется лицензионными условиями, а не отсутствием цены.

Открытое ПО защищено авторским правом (copyright), как и любое другое интеллектуальное произведение. Однако вместо того чтобы ограничивать использование, авторы open-source-проектов предоставляют лицензию, которая расширяет права пользователя. Такая лицензия позволяет:

  • использовать ПО в любых целях,
  • изучать и модифицировать его,
  • распространять оригинальные и изменённые версии.

Лицензии open-source подразделяются на две основные категории:

  1. **Разрешительные **(permissive) — например, MIT, BSD, Apache. Они минимально ограничивают использование и позволяют включать open-source-код даже в проприетарные продукты.
  2. **Копилефт **(copyleft) — например, GNU GPL. Они требуют, чтобы любые производные работы также распространялись под той же лицензией, сохраняя открытость.

Каждая лицензия должна соответствовать десяти критериям OSD:

  • Свободное распространение.
  • Доступность исходного кода.
  • Возможность модификации.
  • Отсутствие дискриминации по лицам, группам или областям применения.
  • Лицензия применима ко всем, без дополнительных соглашений.
  • Независимость от конкретного продукта.
  • Независимость от других программ.
  • Технологическая нейтральность (например, не требует принятия лицензии через GUI).
  • Возможность распространения производных работ.
  • Целостность авторского исходного кода (если требуется, могут использоваться патчи).

Важно понимать: авторские права не отменяются, а передаются в рамках лицензии. Это делает open-source легитимной и юридически защищённой формой распространения программного обеспечения.


Экономическая модель открытого программного обеспечения

Многие ошибочно полагают, что open-source не может быть коммерческим. На деле открытость и прибыль совместимы, и существует множество устойчивых бизнес-моделей:

a) Услуги и поддержка

Компании предоставляют платную техническую поддержку, обучение, консалтинг и интеграцию. Пример — Red Hat, предлагающая корпоративную поддержку Linux; Canonical, поддерживающая Ubuntu.

b) Двойное лицензирование

Продукт распространяется как под open-source-лицензией (обычно GPL), так и под коммерческой лицензией. Это позволяет компаниям использовать ПО в проприетарных продуктах без раскрытия своего кода. Пример — MySQL до приобретения Oracle.

c) Freemium-модель

Базовая версия бесплатна и открыта, а расширенные функции (например, мониторинг, резервное копирование, SSO) доступны только в платной версии. Пример — GitLab, Elasticsearch (до смены лицензии), Mattermost.

d) Спонсорство и пожертвования

Разработчики получают финансирование через платформы вроде GitHub Sponsors, Patreon, Open Collective. Это особенно актуально для библиотек и утилит, востребованных в сообществе.

e) Партнёрские соглашения

Например, Mozilla Foundation получает значительную часть дохода от соглашений с поисковыми системами (Google, Bing) о предустановке в Firefox.

f) Встраивание в экосистему

Корпорации поддерживают open-source-проекты, чтобы привлечь разработчиков к своей платформе: Google — Android, Kubernetes; Microsoft — .NET, VS Code, TypeScript.


Свободное ПО, открытое ПО и открытый исходный код

Хотя термины free software, open-source software и FLOSS (Free/Libre and Open Source Software) часто используются как синонимы, между ними существуют философские различия.

КритерийСвободное ПО (FSF)Открытое ПО (OSI)
ОсноваЭтические права пользователяПрактическая эффективность разработки
ПриоритетСвобода как ценностьОткрытость как метод
ЛицензированиеДолжно обеспечивать 4 свободыДолжно соответствовать OSD
Отношение к проприетарному ПОНеприемлемоДопустимо как часть экосистемы

FLOSS объединяет оба подхода: программа должна соответствовать и критериям FSF, и критериям OSI. Большинство популярных лицензий (GPL, MIT, Apache) удовлетворяют обоим.

Важно подчеркнуть: открытый исходный код ≠ свободное ПО. Некоторые проекты публикуют код, но накладывают ограничения, делающие ПО недостаточно свободным. Например:

  • TrueCrypt: исходный код доступен, но запрещено вносить изменения.
  • UnRAR: код открыт, но нельзя создавать совместимые архиваторы.

Такие проекты не считаются ни free software, ни open-source в строгом смысле.


Открытое аппаратное обеспечение и расширение концепции

Концепция открытости вышла за пределы программного обеспечения. **Открытое аппаратное обеспечение **(open hardware) — это дизайн физических устройств (схемы, чертежи, спецификации), распространяемый под лицензиями, разрешающими:

  • изучение,
  • модификацию,
  • производство,
  • распространение.

Первые идеи open hardware появились в конце 1990-х. В 1997 году Reinoud Lamberts запустил проект «Open Cores» для микросхем с открытым дизайном. В 1999 году Sepehr Kiani, Ryan Vallance и Samir Nayfeh основали Open Design Foundation, распространив принципы копилефта на инженерные конструкции.

Сегодня open hardware представлен такими проектами, как:

  • Arduino — платформа для электроники с открытым дизайном.
  • RISC-V — открытая архитектура процессоров.
  • Open Compute Project — серверные и дата-центровые решения от Facebook/Meta.

Лицензирование open hardware осуществляется через:

  • CERN Open Hardware Licence,
  • TAPR Open Hardware License,
  • лицензии Creative Commons (например, CC BY-SA).

Эти лицензии аналогичны программным: они регулируют использование, модификацию и распространение, но применяются к физическому дизайну, а не к коду.