Open source: определение, суть, принципы и примеры

Фундамент, на котором держится весь современный IT

Open source: определение, суть, принципы и примеры

Сегодня на открытом коде работает буквально всё: от серверов, которые держат интернет, до вашего android-смартфона и даже вертолёта на Марсе. Но не стоит думать, что open source — это всегда «бесплатно» и «лампово». За этой философией стоят жёсткие лицензии, большие деньги и куча своих подводных камней.

Разбираемся, как устроен мир открытого ПО, почему корпорации делятся своими секретами и как на этом можно заработать.

Что такое open source

Open source (открытое ПО) — это софт, к которому прилагается его исходный код.

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

Проприетарное ПО — это условная «Кока-кола». Вы покупаете бутылку, пьёте, вам вкусно, но вы не знаете точный состав и пропорции. Вы не можете сварить такую же колу дома. А если вы попытаетесь продавать свою газировку под этим брендом, к вам придут юристы и засудят. Так работают Microsoft, Apple, Adobe, Rockstar Games.

Open source — это рецепт бабушкиного пирога, опубликованный в газете. Любой может взять его, испечь пирог, съесть. Более того, если вам не нравится изюм, вы можете его выкинуть, добавить орехи и напечатать новый рецепт: «Пирог улучшенный, версия 2.0». Так работают Linux, Android, Mozilla, PostgreSQL.

С технической точки зрения разница вот в чём: обычные программы распространяются в виде скомпилированных файлов, например .exe. Это набор нулей и единиц, который понимает процессор, но не человек. Разобраться, как работает такой файл, крайне сложно: это называется реверс-инжиниринг, и это часто незаконно.

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

Основные принципы и философия опенсорс

Всё началось не с желания спасти мир, а с личной потребности. В 1980-х программист Ричард Столлман работал в лаборатории MIT, где был лазерный принтер Xerox, который постоянно жевал бумагу. Столлман хотел поправить драйвер, чтобы тот сообщал о замятии на компьютер, но обнаружил, что исходный код закрыт.

Ричард Столлман и принтер
Источник: freeasinweekend.org. Ричард Столлман и принтер

Столлман так разозлился, что уволился, основал движение за свободное ПО и придумал лицензию GPL. Его философия проста: софт — это знание. А знание должно принадлежать всем.

В английском слово free означает и «бесплатно», и «свободно». Чтобы не путаться, в опенсорсе есть правило: «Think free as in free speech, not as in free beer» (Думайте об этом как о свободе слова, а не о бесплатном пиве).

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

4 свободы открытого программного обеспечения

Официально критерии «свободного софта», которые легли в основу open source, формулируются как четыре свободы, и нумерация у них начинается с нуля — мы ж программисты.

  • Свобода 0: запускать программу для любых целей. Хотите лечить котят? Пожалуйста. Хотите управлять ядерной ракетой? Лицензия не может вам это запретить, в отличие от проприетарного софта, где часто есть пункты «нельзя использовать военными» или «нельзя использовать для конкуренции с нами».
  • Свобода 1: изучать, как программа работает, и адаптировать её под свои нужды. Для этого нужен доступ к исходному коду.
  • Свобода 2: распространять копии, чтобы помочь соседу. Вы можете скачать Linux, записать на 100 флешек и раздать друзьям.
  • Свобода 3: улучшать программу и публиковать ваши улучшения, чтобы пользу получило всё общество.

Free software vs open source

Внимательный читатель спросит: «Если Столлман говорил про свободное ПО, откуда взялся термин open source?»

Это произошло в 1998 году. Идеи Столлмана были крутыми, но слово free (бесплатно) отпугивало большой бизнес. Корпорации боялись, что на таком софте нельзя заработать. Поэтому группа разработчиков провела маркетинговый ребрендинг: они заменили пугающее «Свободное ПО» на прагматичное open source (открытое ПО).

Они сместили акцент с философии про этичность на эффективность, что так код получается качественнее, потому что баги ищут все. В итоге это сработало, и гиганты вроде Netscape, IBM и Oracle перестали бояться и начали вкладывать деньги.

Роль сообщества в разработке open source

У некоторых до сих пор есть заблуждение, что опенсорс пишут энтузиасты-альтруисты по ночам, но реальность сложнее.

Сегодня большую долю кода в Linux, Kubernetes или React пишут сотрудники Google, Intel, Red Hat и Microsoft за зарплату. Им это выгодно: они улучшают инструмент, которым сами же пользуются. А кроме них, есть и те самые ребята, которые пишут код по фану, и часто именно они создают инновации, которые потом покупают корпорации.

Есть легендарный комикс xkcd «Зависимость» (Dependency):

легендарный комикс xkcd «Зависимость» (Dependency)

Здесь нарисована сложная инфраструктура всего современного цифрового мира, и вся эта махина держится на одной маленькой палочке с подписью: «Проект, который пилит какой-то чел из Небраски с 2003 года и которому никто не платит».

В опенсорсе часто бывает так, что библиотека, которую используют все банки мира, держится на одном уставшем человеке. Сообщество — это сила, но иногда это сила инерции: все пользуются, но никто не хочет чинить.

Преимущества открытого исходного кода

Почему сегодня 99% суперкомпьютеров мира работают на Linux, а не на Windows? И почему веб-разработка почти полностью переехала на опенсорс-инструменты? Дело не только в экономии, но и в выживаемости.

Безопасность и надёжность: «больше глаз — меньше ошибок»

В мире закрытого софта работает принцип Security through obscurity («Безопасность через неясность»). Разработчик надеется, что хакеры не найдут дыру в коде, потому что кода никто не видит. Но если дыру находят, вы сидите и ждёте патч от вендора неделями.

В опенсорсе работает Закон Линуса: «При достаточном количестве наблюдателей ошибки выплывают на поверхность». Например, исходный код ядра Linux или библиотеки React читают тысячи разработчиков ежедневно, и если там появляется уязвимость, сообщество находит её быстрее, чем любые штатные тестировщики.

Вы и сами можете провести аудит кода перед тем, как ставить библиотеку в свой банковский проект. В проприетарном софте вы вынуждены верить компании на слово, что она не следит за вами и не сливает данные.

Гибкость и свобода от вендор-локина

Vendor Lock-in, то есть зависимость от поставщика, — это страшный сон любого бизнеса. Представьте, что вы построили работу студии дизайна на Adobe Lightroom, а в один прекрасный день Adobe говорит: «Теперь мы продаём только подписку, цены ×2, а старые версии не работают». И всё — вы в ловушке, деваться некуда.

А с open source вы владеете инструментом. Допустим, вместо Lightroom у вас стоит фоторедактор Darktable и никто не может отключить вам доступ к нему, ввести санкции или удалённо деинсталлировать программу.

Или, например, вы используйте базу данных PostgreSQL. Если завтра компания-разработчик решит закрыть проект, как это бывало с другими, сообщество просто сделает форк и продолжит разработку под новым именем. Вы не зависите от прихоти совета директоров корпорации.

Нулевая стоимость лицензии и снижение затрат

Тут всё просто: чтобы запустить стартап на стеке Microsoft (Windows Server + MSSQL), вам нужно сразу выложить тысячи долларов за лицензии. Чтобы запустить тот же стартап на Linux + PostgreSQL — вам нужно ноль рублей за софт.

Это снижает порог входа. Студенты, инди-разработчики и стартапы могут использовать инструменты энтерпрайз-уровня типа Kubernetes или Apache Kafka бесплатно. Но тут есть нюанс, о котором мы поговорим дальше: лицензия бесплатная, а вот внедрение и поддержка стоят денег.

Полезный блок со скидкой

Если вам интересно разбираться со смартфонами, компьютерами и прочими гаджетами и вы хотите научиться создавать софт под них с нуля или тестировать то, что сделали другие, — держите промокод Практикума на любой платный курс: KOD (можно просто на него нажать). Он даст скидку при покупке и позволит сэкономить на обучении.

Бесплатные курсы в Практикуме тоже есть — по всем специальностям и направлениям, начать можно в любой момент, карту привязывать не нужно, если что.

Недостатки и риски open source

У опенсорса есть неофициальный девиз: It's free as in free puppy («Это бесплатно, как бесплатный щенок»). То есть вам не нужно платить за то, чтобы забрать щенка домой, но придётся тратить деньги на корм и ветеринара и время на дрессировку. Если вы не готовы к этому — щенок разнесёт вам квартиру.

Проблемы с поддержкой и ответственностью

Главный страх бизнеса: «Кому звонить, если всё сломалось?». В проприетарном ПО у вас есть договор, техподдержка и гарантия, что вам ответят за 4 часа. В опенсорсе вы скачиваете софт с лицензией, где капслоком написано: «AS IS (КАК ЕСТЬ). АВТОР НЕ НЕСЁТ ОТВЕТСТВЕННОСТИ НИ ЗА ЧТО».

Если библиотека, на которой держится ваш банк, перестанет обновляться, потому что единственный разработчик выгорел и ушёл выращивать рассаду, — это ваша проблема. Вам придётся либо срочно искать замену, либо самим становиться мейнтейнерами и копаться в чужом коде.

Сложность для неопытных пользователей

Опенсорс часто пишут программисты для программистов. Им плевать на UX/UI — красивый интерфейс и удобство, — главное, чтобы работало быстро и было функционально.

Например, графические редакторы GIMP или Darktable. Они очень мощные и бесплатные, но интерфейсы там такие, что дизайнер, привыкший к продуктам Adobe, впадёт в депрессию через пять минут.

Сложность для неопытных пользователей

Или Linux: чтобы настроить звук или драйверы, иногда нужно открывать терминал и писать конфиги руками. Для профи это свобода, для новичка — взрыв мозга.

Возможные уязвимости и необходимость мониторинга

Мы говорили, что «открытый код видят тысячи глаз», но проблема в том, что иногда эти глаза принадлежат злоумышленникам. В современном IT это называется атакой на цепочку поставок. Хакеру не нужно ломать защиту какого-то банка, ему достаточно внедрить вирус в маленькую безобидную библиотеку, которую этот банк и ещё тысячи компаний, использует в своём приложении.

Кейс XZ Utils — это самый громкий пример последнего времени, о котором мы подробно писали в статье про социальную инженерию.

Напомним: в популярный архиватор Linux, который стоит на миллионах серверов, внедрили бэкдор. Хакер годами втирался в доверие к уставшему автору проекта: помогал с кодом и чинил баги. А когда получил права администратора, то добавил уязвимость.

Катастрофу предотвратили чудом, но это показало главную слабость: человеческий фактор. Мейнтейнеры перегружены и готовы принять помощь от кого угодно, даже от троянского коня.

Как работает open source: модели разработки и лицензии

Open source — это не просто «вот вам код, делайте что хотите». Это юридическая модель и лицензия, которая говорит: «Я, автор, разрешаю вам использовать мой труд, но на определённых условиях». Разберём основные типы лицензий.

Основные типы лицензий: GPL, MIT, Apache 2.0

В мире есть более сотни открытых лицензий, но 90% всего софта используют «большую тройку». Различия между ними определяют, как именно вы можете или не можете использовать чужой код в своём бизнесе.

1. MIT (максимальная свобода)

Самая либеральная и популярная лицензия, которую выбирают создатели библиотек и фреймворков (React, Vue, Node.js).

Условия очень простые: вы можете делать с кодом всё что угодно. Хотите — встраивайте в платный продукт, хотите — модифицируйте и закрывайте исходники, хотите — продавайте. Единственное требование — сохранить в файле лицензии имя оригинального автора и не подавать на него в суд, если программа сломается.

Лицензия MIT идеальна, когда цель автора — максимальное распространение технологии без лишних бюрократических преград.

2. GNU GPL («авторское лево» и «вирусный» эффект)

Лицензия Ричарда Столлмана защищает свободу кода, а не свободу разработчика. Она работает по принципу «авторского лева» (вместо copyright — copyleft): если вы используете GPL-код в своей программе, то ваша программа автоматически должна стать открытой под той же лицензией.

Это создаёт так называемый вирусный эффект. Именно поэтому юристы крупных корпораций проверяют каждую библиотеку: если хотя бы кусочек GPL-кода попадёт в закрытое банковское приложение, по закону банк будет обязан выложить исходный код всего приложения в открытый доступ.

3. Apache 2.0 (корпоративный стандарт)

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

В Apache 2.0 включена патентная оговорка. Это значит, что автор кода официально даёт вам право использовать не только сам текст программы, но и любые патенты, которые в нём реализованы. Это защищает компании от «патентных троллей»: автор не может сначала дать вам код, а потом засудить за то, что вы его используете. Именно поэтому Apache 2.0 — это стандарт для продуктов Google, Android и Kubernetes.

Где смотреть лицензию

Прежде чем копировать код к себе в проект, вы обязаны проверить, можно ли это делать. Обычно эта информация лежит в трёх местах:

  • Файл LICENSE или COPYING: лежит в корне репозитория на GitHub. Это юридический документ.
Open source: определение, суть, принципы и примеры
Open source: определение, суть, принципы и примеры
  • Файл README.md: часто там тоже есть бейдж с названием лицензии (MIT, Apache 2.0).
  • Файл манифеста (package.json в JS, go.mod в Go): там есть поле license, которое сканируют автоматические инструменты аудита.

Если лицензии нигде нет — это не значит, что код «ничей». Это значит, что он защищён копирайтом по умолчанию и использовать его нельзя.

Модели монетизации open-source-проектов

Главный вопрос: «Откуда деньги, если код лежит бесплатно на „Гитхабе“?». Секрет в том, что опенсорс — это не отказ от денег, а продажа другого товара. Компании продают не «коробку с диском», а сервис и гарантии.

Дальше рассмотрим четыре схемы, на которых держится индустрия.

1. Платная поддержка и страховка (Модель Red Hat) 

Сам Linux, например RHEL, можно скачать бесплатно. Но представьте крупный банк: он не может поставить бесплатную ОС с торрента на сервер, где крутятся миллиарды. Ему нужно, чтобы кто-то гарантировал работу, выпускал патчи безопасности за два часа и брал трубку в три часа ночи, если сервер упал.

Поэтому такому условному банку продают подписку на саппорт и SLA (Service Level Agreement — соглашение об уровне сервиса). В итоге клиент платит за спокойный сон своего сисадмина.

2. Open Core (открытое ядро)

Самая популярная модель сейчас. У продукта есть бесплатная версия (Community Edition), которой хватает для 90% разработчиков. Но если вы крупная корпорация и вам нужны «взрослые» функции — интеграция со сторонними сервисами, аудит безопасности, красивый дашборд для менеджеров, — покупайте enterprise-версию.

Клиенту продают расширенную enterprise-версию: то есть, движок бесплатно, «обвес» для бизнеса — за деньги.

Например, Elasticsearch. Проект в своё время начался с того, что парень хотел сделать базу рецептов для жены, а вырос в гиганта, которым пользуются Netflix и Uber. Базовый поиск открыт, а крутые плагины безопасности были платными (сейчас модель меняется, но суть та же).

3. SaaS и хостинг (модель WordPress)

SaaS расшифровывается как Software as a Service («Программное обеспечение как услуга»). Суть в том, что сам код продукта бесплатен, но инфраструктура для его работы стоит денег и нервов.

Поэтому у вас всегда есть выбор:

  • Путь самурая: вы скачиваете бесплатный движок WordPress (или базу данных MongoDB), арендуете сервер, настраиваете Linux, защиту от хакеров, бэкапы и обновляете это всё руками по ночам. Вы платите только за железо, но тратите кучу времени.
  • Путь бизнеса (SaaS): вы идёте на WordPress.com или MongoDB Atlas, привязываете карту, и магия происходит сама. Серверы работают, бэкапы делаются, админы спят спокойно. В этой модели вы платите не за право использовать программу, поскольку она открыта, а за управляемую услугу. 

Кроме WordPress, по такой модели работают Docker, MongoDB Atlas, n8n и т. д.

4. Двойное лицензирование

Такая модель — это юридический трюк. Компания говорит: «Наш код доступен под вирусной лицензией GPL». Это значит, что если вы пишете открытое приложение, то берите бесплатно. А вот если вы пишете закрытый коммерческий софт и не хотите открывать свой код (а GPL этого требует) — то должны купить коммерческую лицензию, которая разрешает закрытость.

По такой модели работает фреймворк Qt, на котором написаны интерфейсы в автомобилях Tesla и Mercedes:

Open source: определение, суть, принципы и примеры

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

Короткий ответ: везде.

Если в 2001 году глава Microsoft Стив Балмер называл Linux «раковой опухолью», то сегодня Microsoft — один из главных контрибьюторов в open source, а сам Windows внутри себя содержит ядро Linux.

Примеры популярного open-source-ПО: Linux, Apache, WordPress

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

1. Фундамент и инфраструктура 

Здесь царит Linux. На нём работает весь интернет, все суперкомпьютеры мира, миллиарды телефонов на Android, который построен на модифицированном ядре Linux, и даже вертолёт Ingenuity на Марсе.

Ingenuity работает на Linux
Источник: википедия. Ingenuity работает на Linux

А чтобы управлять приложениями, индустрия использует Kubernetes и Docker. Это открытые стандарты, которые позволяют запускать код одинаково и на ноутбуке разработчика, и в дата-центре Google.

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

Когда вы открываете сайт, скорее всего, его вам отдаёт Nginx или Apache — две главные рабочие лошадки интернета. А данные хранятся в PostgreSQL или Redis. Раньше считалось, что надёжные базы делает только Oracle за миллионы долларов, но сейчас опенсорсный Postgres — это золотой стандарт надёжности для финтеха и стартапов.

3. Управление контентом

Здесь есть два пути:

  1. Старый добрый WordPress. На нём работает более 40% всех сайтов в мире.
  2. Современный подход: Headless CMS, например Squidex. Это платформа, которая отдаёт контент через API. Она позволяет разработчикам использовать любые современные фреймворки на фронтенде, не привязываясь к движку сайта.

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

Open source как фундамент современного IT и бизнеса

Приведём такой показательный пример: в 2011 году на рынке баз данных царил Oracle. Казалось, новичкам там ловить нечего, но итальянский разработчик Сальваторе Санфилиппо написал для себя быструю базу данных Redis и выложил код.

Он не планировал заработать, ему просто нужен был инструмент. Но код оказался настолько крутым, что вокруг него выросли стартапы. Один из них (Redis Labs) начал продавать энтерпрайз-решения на базе этого кода, а потом нанял самого Сальваторе руководить разработкой.

И вот так опенсорс-проект стал стандартом для кэширования в любой высоконагруженной системе.

Часто задаваемые вопросы об open source

Закрепим базу.

Можно ли зарабатывать на open source?

Да, и очень много.

Но модель заработка здесь другая. Вы продаёте не коробку с диском или лицензионный ключ, а сервис и гарантии.

Red Hat, Elastic, GitLab зарабатывают миллиарды долларов, предлагая бизнесу платную техподдержку, расширенные enterprise-версии продукта и облачный хостинг. В мире опенсорса деньги платят не за возможность скачать программу, а за возможность спать спокойно, зная, что она будет работать стабильно.

Это точно бесплатно? В чём подвох?

Лицензия — да, в 99% случаев бесплатна. Вам не нужно платить отчисления за использование Linux или Python. Подвох в стоимости владения (Total cost of ownership, TCO).

В проприетарном софте вы платите деньги вендору и он всё настраивает.

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

Чем open source отличается от freeware?

Это самая частая путаница. Оба вида ПО бесплатны для скачивания, но на этом сходство заканчивается.

Freeware (бесплатное ПО) — это «чёрный ящик». Автор разрешает вам пользоваться программой бесплатно, но код закрыт. Вы не знаете, что внутри, не можете ничего исправить и не имеете права распространять изменённые версии. Пример: Telegram, WhatsApp, TeamViewer, старый Winamp. Вы пользуетесь ими, пока автор это разрешает.

Open source (открытое ПО) — это «прозрачный ящик». Код открыт, права на изменение и распространение закреплены лицензией.

Бонус для читателей

Если вам интересно погрузиться в мир ИТ и при этом немного сэкономить, держите наш промокод на курсы Практикума. Он даст вам скидку при оплате, поможет с льготной ипотекой и даст безлимит на маркетплейсах. Ладно, окей, это просто скидка, без остального, но хорошая.

Вам может быть интересно
easy