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 подразделяются на две основные категории:
- **Разрешительные **(permissive) — например, MIT, BSD, Apache. Они минимально ограничивают использование и позволяют включать open-source-код даже в проприетарные продукты.
- **Копилефт **(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).
Эти лицензии аналогичны программным: они регулируют использование, модификацию и распространение, но применяются к физическому дизайну, а не к коду.