Открытое программное обеспечение
Открытое программное обеспечение (англ. open-source software, OSS) — это программное обеспечение, исходный код которого доступен для всеобщего просмотра, использования, изменения и распространения любым лицом или организацией. Открытое программное обеспечение создаётся и распространяется на основе лицензий, соответствующих определению «открытого исходного кода» (Open Source Definition, OSD), и, как правило, не требует выплаты лицензионных отчислений правообладателю. В отличие от проприетарного (закрытого) ПО, OSS предполагает коллективное развитие и прозрачность процесса разработки, хотя может иметь как коммерческих спонсоров, так и полностью волонтёрские сообщества.
История
Предыстория и ранние годы
Концепция свободного обмена программным кодом возникла ещё в 1950–1960-х годах, когда программное обеспечение распространялось вместе с исходным кодом как часть оборудования (например, в среде пользователей мейнфреймов IBM). В 1970-х годах, с коммерциализацией ПО, код начали закрывать. Реакцией на это стало движение за свободное программное обеспечение, основанное Ричардом Столлманом в 1983 году с запуском проекта GNU. Столлман сформулировал четыре фундаментальные свободы: запускать программу, изучать и изменять её код, распространять копии и улучшать программу с передачей изменений сообществу.
Появление термина «открытое ПО»
Термин «открытое программное обеспечение» (open-source software) был предложен в 1998 году группой активистов, включая Эрика Реймонда и Брюса Перенса, как более прагматичная и деловая альтернатива термину «свободное ПО» (free software). В том же году была основана организация Open Source Initiative (OSI), которая разработала и поддерживает определение открытого исходного кода (OSD). Основное различие между подходами заключается в акцентах: движение свободного ПО делает упор на этические и социальные аспекты (права пользователя), а движение открытого ПО — на практические преимущества открытой разработки (качество, скорость, надёжность).
Развитие в 2000–2020-х годах
С начала 2000-х годов открытое ПО стало массовым явлением. Ключевые проекты, такие как Linux (ядро операционной системы), Apache HTTP Server, Firefox, MySQL, Python, стали основой интернет-инфраструктуры и корпоративных IT-систем. Крупные компании (Google, Microsoft, IBM, Red Hat) начали активно участвовать в разработке OSS, создавать собственные открытые проекты (например, Android, Kubernetes, Visual Studio Code) и нанимать разработчиков для работы над ними. К 2020-м годам открытое ПО стало доминирующей моделью для многих категорий программного обеспечения, особенно в области облачных технологий, искусственного интеллекта и инструментов разработки.
Определение открытого исходного кода (OSD)
Open Source Initiative установила десять критериев, которым должна соответствовать лицензия, чтобы ПО считалось открытым:
- Свободное распространение — лицензия не должна ограничивать продажу или бесплатную передачу ПО.
- Исходный код — программа должна включать исходный код или обеспечивать его доступность.
- Производные работы — лицензия должна разрешать модификацию и создание производных работ.
- Целостность исходного кода автора — может требоваться, чтобы модифицированные версии имели другое имя или номер версии.
- Отсутствие дискриминации лиц или групп — лицензия не должна ограничивать использование определёнными категориями людей.
- Отсутствие дискриминации областей деятельности — лицензия не должна запрещать использование в коммерции, науке и т. д.
- Распространение лицензии — права должны применяться ко всем, кто получает программу.
- Лицензия не должна быть привязана к продукту — права не должны зависеть от того, является ли программа частью определённого дистрибутива.
- Лицензия не должна ограничивать другое ПО — она не может требовать, чтобы всё остальное ПО, распространяемое вместе с данным, также было открытым.
- Лицензия должна быть технологически нейтральной — не должна требовать согласия на определённый интерфейс или стиль.
Основные лицензии
Все открытые лицензии делятся на два основных типа: копилефтные (copyleft) и разрешительные (permissive).
Копилефтные лицензии
Требуют, чтобы производные работы (модифицированные версии) распространялись под той же лицензией. Это гарантирует, что код остаётся открытым для всех последующих пользователей.
- GNU General Public License (GPL) — самая известная копилефтная лицензия. Используется для ядра Linux, многих программ GNU. Версия 2 (GPLv2) и версия 3 (GPLv3) имеют различия в отношении патентов и DRM.
- GNU Lesser General Public License (LGPL) — «ослабленный» копилефт, допускает связывание с проприетарным кодом через библиотеки (используется, например, для библиотеки glibc).
- Mozilla Public License (MPL) — файловый копилефт: изменения в одном файле должны быть открыты, но весь проект в целом может быть закрытым.
Разрешительные лицензии
Позволяют использовать код в проприетарных (закрытых) проектах без обязательного раскрытия исходного кода производной работы.
- MIT License — крайне простая и короткая, разрешает всё при условии сохранения уведомления об авторских правах. Одна из самых популярных лицензий для небольших библиотек и фреймворков.
- BSD Licenses (2-, 3- и 4-пунктные) — похожи на MIT, но 3-пунктная BSD содержит запрет на использование имени автора для рекламы без разрешения.
- Apache License 2.0 — предоставляет явную лицензию на патенты, которые могут быть задействованы в коде, и содержит положения о защите от патентных исков.
Преимущества и недостатки
Преимущества
- Прозрачность и безопасность — любой желающий может проверить код на наличие уязвимостей, шпионских функций или «закладок».
- Скорость разработки — сообщество может быстро находить и исправлять ошибки, добавлять новые функции.
- Экономия средств — отсутствие лицензионных отчислений снижает затраты на ПО для организаций.
- Независимость от вендора — пользователь не привязан к конкретному разработчику; при необходимости можно нанять сторонних специалистов для доработки кода.
- Гибкость и кастомизация — возможность адаптировать программу под специфические нужды.
Недостатки
- Сложность использования для неподготовленных пользователей — многие открытые программы требуют навыков настройки и администрирования.
- Отсутствие формальной поддержки — помощь сообщества может быть нерегулярной или некачественной (хотя существуют коммерческие компании, предоставляющие поддержку для OSS).
- Фрагментация — наличие множества форков (ответвлений) может запутывать пользователей.
- Проблемы с безопасностью при низкой активности — малоиспользуемые проекты могут содержать неисправленные уязвимости.
- Лицензионные риски — неправильное использование копилефтных лицензий может привести к судебным искам и необходимости раскрытия собственного кода.
Применение
Открытое ПО охватывает практически все сферы информационных технологий:
- Операционные системы: Linux (дистрибутивы Ubuntu, Debian, Fedora, Astra Linux в России), FreeBSD, Android (ядро на основе Linux).
- Веб-серверы и инфраструктура: Apache, Nginx, PostgreSQL, MySQL, MariaDB, Redis, RabbitMQ.
- Инструменты разработки: Git, GCC, LLVM, Python, Node.js, Docker, Kubernetes, VS Code (основан на открытом коде).
- Офисные пакеты: LibreOffice, OnlyOffice, OpenOffice.
- Графика и мультимедиа: Blender (3D-моделирование), GIMP (растровая графика), Inkscape (векторная графика), FFmpeg (обработка видео).
- Научные вычисления и ИИ: R, Octave, TensorFlow, PyTorch, Jupyter Notebook.
- Системы управления контентом (CMS): WordPress, Joomla, Drupal.
Открытое ПО в России
В России открытое ПО получило значительное распространение в государственном секторе и образовании после 2014 года, в рамках политики импортозамещения. В реестр отечественного программного обеспечения включено множество продуктов на основе открытого кода, в том числе операционные системы семейства «Альт» (на базе Linux), Astra Linux, РЕД ОС, а также офисные пакеты «МойОфис» (частично на открытых компонентах) и LibreOffice. В 2023 году приняты поправки к законодательству, стимулирующие использование открытого ПО в государственных и муниципальных органах. Российские разработчики активно участвуют в международных открытых проектах (например, в ядре Linux, PostgreSQL, Python).
Критика
Основные направления критики открытого ПО включают:
- «Открытость» без реального контроля — в некоторых проектах решения принимаются узкой группой разработчиков, а сообщество лишь формально участвует.
- Проблема «трагедии антиобщин» — из-за множества лицензий и форков ресурсы распыляются, а совместимость снижается.
- Коммерциализация — некоторые компании используют открытые проекты для сбора данных о пользователях или навязывания платных услуг (например, модель «open core» с проприетарными расширениями).
- Безопасность цепочки поставок — атаки на репозитории (например, внедрение вредоносного кода в популярные библиотеки) становятся всё более частыми.
Интересные факты
- По данным GitHub (2023), более 90% всех современных программных проектов используют хотя бы одну открытую библиотеку.
- Ядро Linux содержит более 30 миллионов строк кода, написанных тысячами разработчиков по всему миру.
- Самый известный форк — LibreOffice, созданный после того, как Oracle купила Sun Microsystems и изменила политику лицензирования OpenOffice.org.
- В 2021 году Microsoft стала крупнейшим контрибьютором в открытые проекты на GitHub (по числу коммитов), несмотря на историческую враждебность к открытому ПО.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →