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

Открытый исходный код

Открытый исходный код (англ. open source) — это подход к разработке и распространению программного обеспечения, при котором исходный код программы предоставляется в открытом доступе для просмотра, изучения, изменения и распространения любым пользователем. В отличие от проприетарного (закрытого) ПО, открытый исходный код базируется на принципах прозрачности, совместной работы и свободы использования, хотя конкретные условия регулируются лицензиями, которые могут накладывать определённые ограничения (например, требование распространять производные работы под той же лицензией).

История

Предыстория и ранние сообщества

Идея открытого доступа к исходному коду возникла задолго до появления термина «open source». В 1950–1960-х годах программное обеспечение часто распространялось вместе с исходным кодом, особенно в академической среде и среди пользователей мейнфреймов. Однако с коммерциализацией ПО в 1970-х годах (например, компания IBM начала лицензировать программы отдельно от аппаратного обеспечения) практика закрытого кода стала доминирующей.

В 1983 году Ричард Столлман, программист из Массачусетского технологического института (MIT), запустил проект GNU (GNU’s Not Unix), целью которого было создание полностью свободной операционной системы. В 1985 году он основал Фонд свободного программного обеспечения (FSF) и сформулировал четыре фундаментальные свободы: свобода запуска программы, изучения её кода, распространения копий и улучшения программы. Этот подход получил название «свободное программное обеспечение» (free software). Однако термин «free» в английском языке неоднозначен (означает как «свободный», так и «бесплатный»), что вызывало путаницу в деловых кругах.

Появление термина «open source»

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

Этот шаг позволил привлечь внимание бизнеса. В том же 1998 году компания Netscape выпустила исходный код своего браузера под открытой лицензией, что привело к созданию проекта Mozilla (впоследствии — Firefox). К началу 2000-х годов открытый исходный код стал массовым явлением: появились такие проекты, как Linux (ядро операционной системы, начатое Линусом Торвальдсом в 1991 году), Apache HTTP Server, MySQL, PHP и многие другие.

Определение и критерии

Open Source Initiative (OSI) определяет открытый исходный код через 10 обязательных условий:

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

Лицензии открытого исходного кода

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

Копилефтные (copyleft)

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

Разрешительные (permissive)

Позволяют использовать код в проприетарных проектах без обязательного раскрытия изменений. Примеры:

Модели разработки

Модель «базар» и «собор»

Эрик Рэймонд в эссе «Собор и базар» (1999) описал две модели разработки:

На практике большинство успешных проектов с открытым исходным кодом сочетают элементы обеих моделей: лидеры (например, Линус Торвальдс для ядра Linux) принимают окончательные решения, но вклад может делать любой желающий.

Инструменты совместной работы

Применение

Открытый исходный код используется в самых разных областях:

Операционные системы

Веб-серверы и базы данных

Языки программирования и инструменты

Прикладное ПО

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

Открытый исходный код создаёт новые бизнес-модели:

По данным отчётов, более 90% компаний используют открытый исходный код в своей IT-инфраструктуре. Однако существуют проблемы: уязвимости в популярных библиотеках (например, Heartbleed в OpenSSL), «выгорание» мейнтейнеров и конфликты вокруг лицензий (например, переход некоторых проектов на ограничительные лицензии, такие как SSPL от MongoDB).

Критика и ограничения

Влияние на законодательство и стандарты

В ряде стран принимаются законы, стимулирующие использование открытого исходного кода в государственном секторе. Например, в России в 2020 году была утверждена «Стратегия развития информационного общества», предусматривающая приоритетное использование отечественного ПО, в том числе с открытым кодом. В Евросоюзе действует программа «Open Source Software Strategy 2020–2023», направленная на внедрение открытых решений в госорганах.

Открытый исходный код также лежит в основе многих международных стандартов (например, OpenDocument Format для офисных документов) и протоколов (HTTP, TCP/IP).

Источники

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

На главную BFOmetr →