В чем смысл open source?
Хабр, привет! Я Юра, руководитель платформенной команды inDriver. В IT уже более 12 лет, на iOS пишу 7 лет. В этой статье обращусь к принципам и целям open source. Мы разберемся с его лицензиями, посмотрим на рынок и государственное участие в этом процессе. Добро пожаловать под кат!

Содержание
Минутка истории
Начну с определения того, что такое open source. Это открытое программное обеспечение, исходный код которого доступен для просмотра, изучения, изменения и позволяет убедиться в отсутствии уязвимостей.
Попробуем разобраться с корнями определения. Есть 2 термина: free software и open source. Термин open source был использован в качестве определения в 1998 году Эриком Реймондом и Брюсом Перенсом. Они утверждали, что термин free software (свободное программное обеспечение) в английском языке неоднозначен и смущает многих коммерческих предпринимателей.

Но откуда же пошли эти термины? В 1985 году появился Free Software Foundation. Он возник благодаря трудам разработчика Ричарда Столлмана, который присоединился к лаборатории искусственного интеллекта при Массачусетском технологическом институте. Столлман принимал участие в работе над свободным ПО (например, над Emacs — текстовым редактором для мини-компьютеров). Позднее редактор продали коммерческому дистрибьютору, и в 1984 году Столлман решил основать проект свободного ПО под названием GNU.

Если не знали, GNU — во-первых, рекурсивный акроним — GNU’s Not UNIX, во-вторых, ОС типа UNIX с набором свободных программ. В рамках проекта энтузиасты придумали термин «свободное ПО» и сформулировали его критерии: использование, изучение, шеринг и улучшение.

В 1985 году Столлман основал фонд Free Software Foundation для развития свободного ПО за счет пожертвований. Цель организации — способствовать свободе пользователей компьютеров во всем мире. Фонд взял на себя задачу защиты прав всех пользователей программного обеспечения.
Философия фонда строится на 4 основных свободах:
- Свобода запускать программу в любых целях (свобода 0).
- Свобода изучения работы программы и ее адаптация к вашим нуждам (свобода 1). Доступ к исходным текстам является необходимым условием.
- Свобода распространять копии, так что вы можете помочь вашему товарищу (свобода 2).
- Свобода улучшать программу и публиковать ваши улучшения, так что все общество выиграет от этого (свобода 3). Доступ к исходным текстам является необходимым условием.
Программа свободна, если у ее пользователей есть 4 вышеупомянутых пункта. Все достаточно прозрачно и позитивно. Но здесь накладываются взаимоотношения между разработчиками в юридическом плане и в рамках государства. Свободная программа часто не значит «некоммерческая», она может быть доступна для коммерческого применения и распространения. Это правило фундаментально важно, без этого свободные программы не могли бы достичь своих целей.
В англоязычных текстах free означает не только «свободное», но и «бесплатное». Оно нередко употребляется к бесплатному программному обеспечению, которое распространяется без взимания платы, но недоступно для изменения. Получается, такое ПО не является свободным.
Чтобы устранить недоразумения, как раз и был придуман термин open source. Его сформулировала некоммерческая организация Open Source Initiative, которая была основана вышеупомянутыми Реймондом и Перенсом.

В середине 1990-х годов в open source пришла первая крупная компания — Netscape. Ее браузер Netscape Navigator был одним из самых популярных в мире, но с появлением Internet Explorer стал вытесняться с рынка.
В 1998 году в Netscape решили открыть исходный код своего браузера. Год спустя компании не стало, но исходный код Navigator лег в основу одного из самых популярных современных браузеров — Mozilla Firefox. В том же 1998 году возникла Open Source Initiative, которая и начала заниматься популяризацией открытого исходного кода.
Основатели Open Source Initiative придумали альтернативу free software и сделали больший упор на open source. То есть это не свободное ПО, а ПО с открытым исходным кодом. Разработчики написали определение, описали более подробно, что такое open source и на чем он зиждется.
По их мнению, открытый исходный код — не просто доступ к исходному коду, но и условия распространения программного обеспечения с открытым исходным кодом. Также Реймонд и Перенс задекларировали 3 важных критерия:
- Лицензия не должна ограничивать любую сторону от продажи или раздачи программного обеспечения как компонента совокупного распространения.
- Лицензия не требует лицензионных или иных сборов за такую продажу.
- Программа должна включать исходный код и допускать распространение в исходном коде, а также в скомпилированном формате.
Эти постулаты были частично взяты из Debian Free Software Guidelines. Я не буду их раскрывать по части дискриминации и лицензий, но после этого начинается постепенное развитие open source от одной некоммерческой организации к другой.
Кстати, еще одно достоинство Open Source Initiative — репозиторий SourceForge для программ с открытым исходным кодом. Помню его с домобильной эпохи по скачиванию архиваторов на Windows, но сейчас он уже не столь популярен.
Лицензии
Расскажу немного о взаимоотношениях разработчиков открытого исходного кода, а также под какими лицензиями этот исходный код распространяется сейчас. Выделяют 4 категории:
1. Public Domain. Категория лицензий, которые относятся к творческим материалам. Они не защищены законами об интеллектуальной собственности или авторском праве, о товарных знаках или патентах. Эти работы принадлежат публике, а не отдельному автору или художнику. Кто угодно может использовать произведение, являющееся общественным достоянием, без получения разрешения.
Пример такой лицензии — СС0 от Creative Commons
2. Permissive. Это лицензии на программное обеспечение, которые практически не ограничивают свободу действий пользователей ПО и разработчиков, работающих с исходным кодом. В отличие от других лицензий, они не являются копилефтными. По духу похожи на Public Domain, но не требуют отказа от авторского права.
3. Copyleft. Это лицензии, которые требуют, чтобы распространение продукта подчинялось той же лицензии, что и оригинал. То есть нельзя делать проприетарным этот софт.
4. Proprietary. Это вид лицензий, который является частной собственностью авторов или правообладателей и не удовлетворяет критериям свободного ПО. Правообладатель сохраняет за собой монополию на его использование, копирование, модификацию.
Рынок
Теперь о многообразии open source-проектов. Open source участвует практически во всех сферах, начиная от мобилок и заканчивая блокчейном и искусственным интеллектом.
Простой пример. Android, операционная система, 2,5 миллиарда активных устройств, огромнейший рынок, который построен на open source. В вебе это WordPress, на котором крутится более 40% сайтов в интернете. В бэкэнде, инфраструктуре — NGINX и Kubernetes, используются для оркестрации нагрузки, контейнеров, являются стандартами индустрии. В AI это TensorFlow — платформа, которая используется для машинного обучения. Для блокчейна это Ethereum — платформа, которая лежит в основе многих криптовалют.
Многие индивидуальные разработчики делают вклад в open source не менее значимый, чем корпорации. Благодаря Линусу Торвальдсу появился Linux. Микаэль Видениус создал, наверное, самую популярную у веб-разработчиков базу данных — MySQL, а Майкл Стоунбрейкер с командой из Беркли — PostgreSQL.
Если переходить к корпорациям, все крупные IT-игроки понимают важность open source-проектов. Как пример приведу исследования компании Red Hat. Она ежегодно опрашивает более 1 000 компаний и делает обзор рынка, куда IT двигается и как меняется. Согласно последнему исследованию, 90% опрошенных респондентов считают, что open source играет важную роль в технологиях корпораций. Наиболее распространенные пути использования open source в корпоративном секторе: IT-инфраструктура, разработка приложений, цифровая трансформация. За 2 года эти показатели увеличились на 11%.
Почему корпорации идут в open source? В первую очередь, участие в открытых проектах позволяет привлечь внимание не только к этому проекту, но и к другим своим программам. Вовлечение открытого сообщества в проекты компаний делает проще найм сотрудников и позволяет удерживать таланты внутри компании. Мотивационная часть также важна — поддержка проектов извне мотивирует разработчиков активнее их развивать.
Но есть и минусы. Открытый код может использоваться в тех проектах, о которых его авторы даже не подозревают. Если проект многокомпонентный и собран из большого числа подмодулей, в цепочке зависимостей легко может возникнуть дыра в безопасности, которую долго могут не замечать.
Russia Open Source
Перейдем к российским реалиям. 1 октября 2021 года Министерство цифрового развития России и крупные IT-компании обсудили стратегию работы с открытым кодом до 2024 года.
Целями развития программного обеспечения с открытым кодом в России являются:
- Развитие стека продуктов для госсектора. Обеспечение безопасного использования в нем компонентов с открытым кодом.
- Повышение эффективности цифровизации государственных органов благодаря повторному использованию программного кода, разработанного за бюджетные средства.
Также при создании стратегии идут отсылки к опыту других стран. В США, согласно политике, принятой в 2016 году, публикуют не менее 20% исходного кода правительственного ПО под открытыми лицензиями.
В Евросоюзе тоже есть стратегия развития открытого ПО с упоминанием технологического суверенитета. Китай способствует созданию независимой экосистемы. В частности, реализует свои варианты открытых операционных систем: например, HarmonyOS. Есть аналоги Java, PostgreSQL, GitHub.
В России создается некоммерческая организация, которая будет поддерживать репозиторий, куда будут выкладываться лицензии. Создается аналог открытой лицензии, под которой все будет выкладываться. Более подробно можно прочитать в проекте стратегии.
Hacktoberfest
Hacktoberfest — это фестиваль поддержки open source-комьюнити с целью мотивации разработчиков улучшать проекты с открытым исходным кодом. Он ежегодно проводится в октябре. Open source-проекты — вариант устроиться на работу, развивать личный бренд или просто отразить свои знания в коде.
Участники должны сделать 4 пул-реквеста на GitHub или GitLab. Предварительно, конечно же, зарегистрироваться на сайте.

Из нюансов — вы можете контрибьютить в свои собственные репозитории, необязательно развивать сторонний проект. Неважно и то, на каком языке вы программируете. Можно выбрать ваш любимый продукт или open source-проект, посмотреть issues, которые можно закрыть, и даже поправить документацию. Вариантов много, выбор остается за вами.
Из личных примеров: когда устраивался в inDriver сделал open source-проект под «Роскачество». В свое время в маркете было приложение «Роскачество», где российская лаборатория тестировала и проверяла продукты, но визуальная реализация оставляла желать лучшего. Заодно попробовал новую архитектуру, новые технологии, которые появлялись в iOS (например, Swift UI с однонаправленной архитектурой). Это стало долгосрочным полезным вкладом.

Наконец, приглашаю всех поучаствовать в развитии open source-проекта inDriver. Мы опубликовали iOS-архитектуру c Redux-парадигмой. Конечно, это не первая реализация однонаправленной архитектуры, но у нее есть ряд преимуществ: адаптация под UI Kit, модуляризируемая, с апробацией в крупном проекте. Подробнее про UDF можно прочитать в статьях моего коллеги Антона Гончарова на Хабре (часть 1 и часть 2).
У меня все. Спасибо, что читали. Задавайте ваши вопросы в комментариях.
Больше чем софт: что такое код open source и для чего он нужен

Согласно определению на Open Source Initiative, Open Source Software или программное обеспечение с открытым исходным кодом — это ПО, «исходники» которого доступны для просмотра и изменения. Исходный код можно использовать, чтобы создавать свои модификации софта, а также свободно распространять и даже продавать их. Принцип открытости со временем охватил не только сферу программирования, но и другие области. Дизайнеры могут размещать в открытом доступе бесплатные шрифты и шаблоны, программисты — коды мобильных приложений и онлайн-игры, ученые — исследования. В последние годы потребителями открытого ПО становятся целые страны. Французская жандармерия использует на своих компьютерах свободное ПО Ubuntu, а другие министерства переходят с Microsoft Office на бесплатный LibreOffice. Этот офисный пакет также используют министерства обороны Нидерландов и Италии, муниципалитеты Албании и Испании. А правительство Великобритании перешло с формата PDF в документации на опенсорс-формат Open Document Format for Office Applications (ODF) по умолчанию. РБК Тренды разобрались, в чем плюсы и минусы открытого софта.
С чего начиналось свободное ПО
С 1952 по 1955 год компания IBM начала выпускать IBM 701, первый коммерчески доступный компьютер. ЭВМ не продавали конечным потребителям, а сдавали в аренду научным институтам, военным компаниям и госпредприятиям. Машины поставлялись без операционной системы и программ. Ученые и инженеры начали писать софт сами и делились им с коллегами из других компаний, у которых были аналогичные ЭВМ. Со временем коммерческих моделей компьютеров становилось больше, и они стали доступны обычным пользователям. Однако под каждую из этих моделей придумывали отдельное ПО. Компании-производители создавали каждый свою операционную систему: BESYS, Compatible Time-Sharing System или CP/CMS. Эти ОС начинали продавать вместе с ПК, и иногда они стоили дороже самого компьютера. Разработчик Ричард Столлман присоединился к лаборатории искусственного интеллекта при Массачусетском технологическом институте (MIT). Он принимал участие в работе над свободным ПО, например, над EMACS — текстовым редактором для мини-компьютеров семейства PDP. Позднее редактор продали коммерческому дистрибьютору. В 1984 году Столлман решил основать проект свободного ПО под названием GNU (рекурсивный акроним от англ. GNU’s Not UNIX).

Ричард Столлман в МГУ (Фото: Wikipedia)
В рамках этого проекта энтузиасты придумали термин «свободное ПО» и сформулировали его критерии: использование, изучение, шеринг и улучшение. Они опубликовали манифест GNU. В 1985 году Столлман основал фонд Free Software Foundation (FSF) для развития свободного ПО за счет пожертвований. В 1989 году появилась первая версия лицензии GPL — General Public License («Универсальная общественная лицензия GNU»). Она должна защитить свободу всех пользователей программ, давать права на копирование, модификацию и распространение софта. Столлман добавил в лицензию понятие «авторское лево» в противовес «авторскому праву», по которому пользователи всех производных программ получают все оригинальные права создателя. Позднее появились другие лицензии, которые позволяют использовать свободное ПО, например, лицензия MIT от Массачусетского технологического института или лицензия BSD от Калифорнийского университета в Беркли. К 1991 году разработчикам удалось создать независимую работоспособную ОС, но ей не хватало ядра. Тогда Линус Торвальдс выпустил ядро Linux с открытым кодом, а в 1992 году лицензировал его по GPL.

Линус Торвальдс (Фото: YouTube)
В середине 1990-х годов в open source пришла первая крупная компания Netscape. Ее браузер Navigator был одним из самых популярных в мире, но с появлением Internet Explorer он стал вытесняться с рынка. В 1998 году в Netscape решили открыть исходный код своего браузера. Год спустя компании не стало, но исходный код Navigator стал основой для одного из самых популярных браузеров — Mozilla Firefox. В 1998 году возникла организация Open Source Initiative (OSI), которая занимается популяризацией открытого кода. В том же году разработчики придумали альтернативу термину «свободное ПО». Они решили внедрить понятие open source, чтобы сменить парадигму бесплатности на доступность. Впоследствии разработчики Эрик Реймонд и Брюс Перенс написали «Определение Open Source». В 2014 году представители фонда поддержки открытых проектов Linux Foundation заявили, что в будущем 80% стоимости технологий будет приходиться на открытый код и только 20% — на платные программы.
Плюсы открытого кода
Обсуждения плюсов и минусов и активны по сей день. Однако многие разработчики сходятся в общем понимании позитивных и негативных сторон опенсорс-проектов.
Для пользователей
- Долгосрочная поддержка — в интересах опенсорс-сообщества развивать проект как можно дольше, в то время как корпорации постоянно обновляют версии и выпускают новые продукты на смену старым, чтобы брать с потребителей деньги.
- Экономия денег — за продукт и его новые версии не нужно платить.
- Конфиденциальность — корпорации зачастую собирают личные данные потребителей для таргетинга и прочих целей. К примеру, Microsoft уличили в том, что она собирала персональные данные 300 тыс. госслужащих Нидерландов через Office ProPlus без разрешения и документации.
- Простая обратная связь — индивидуальные разработчики и небольшие группы программистов реагируют на баги и ошибки гораздо быстрее, чем крупные компании.
Для разработчиков:
- Возможность находить любое ПО для работы, обучения и развития собственных проектов.
- Уверенность в том, что софт постоянно поддерживается разработчиком, часто обновляется и получает необходимые функции.
- Возможность адаптировать ПО к своим потребностям.
- Экономия денег, которые можно дополнительно вложить в нужный коммерческий софт.
Для корпораций:
- Участие в открытых проектах позволяет привлечь внимание к другим своим программам, а также развивать собственную экосистему за счет усилий сторонних разработчиков.
- Вовлеченность открытого сообщества в проекты компании делает проще поиск и найм новых сотрудников.
- Покупка опенсорс-компаний позволяет удерживать таланты внутри компании; поддержка проектов извне мотивирует разработчиков активнее развивать их.
Минусы open source
Плагиат. Коммерческие структуры могут использовать открытый код для своих продуктов без указания его авторства. Иногда они вносят минимальные изменения в код, чтобы выдавать его за собственный. Подобное случилось с участниками проекта Leela, которые разработали бесплатный шахматный движок Chess Zero с настраиваемой нейронной сетью. Его использовала компания ChessBase, которая выпустила шахматную программу Fat Fritz. Пакет программ ChessBase Fritz компании стоит от €79 до €99. При этом она отрицает, что каким-либо образом задействовала открытый код.
Аналогичная история была и с Amazon Web Services, которая запустила CloudWatch Synthetics Recorder, расширение Chrome для записи взаимодействий с браузером. Однако данный сервис оказался полностью скопирован с проекта Headless Recorder, созданного разработчиком Тимом Нолетом. В AWS факт плагиата не признавали.
Отсутствие поддержки. Открытый код может использоваться в тех проектах, о которых его авторы даже не подозревают. Таким образом, они не могут оказывать должную поддержку. Кроме того, существует риск, что разработчик небольшого проекта отойдет от дел, а продолжать его дело будет некому, и код начнет устаревать. Проект Libraries.io обнаружил более 2 400 библиотек с открытым кодом, используемых минимум в 1 тыс. других программ, не получавших должного внимания со стороны опенсорс-сообщества. Для потребителя такой программы это может стать проблемой. К примеру, когда программист Азер Кочулу удалил свою библиотеку Leftpad из интернета, проблемы возникли у Facebook, Netflix и других проектов.
Незамеченные уязвимости. Каждый открытый проект зависит от более мелких. В этой цепочке зависимостей легко может возникнуть дыра в безопасности, которую могут долго не замечать. В 2014 году такая уязвимость в безопасности Heartbleed была обнаружена в OpenSSL — программе с исходным кодом, используемой практически всеми веб-сайтами, обрабатывающими платежи с банковских карт. Она делала все эти ресурсы уязвимыми для атак хакеров и кражи данных. По данным GitHub, 17% всех уязвимостей создаются со злонамеренными целями. Исследователи отмечают, что они могут просуществовать до четырех лет, прежде чем будут устранены.
Проекты с открытым кодом
Проекты GNU и Linux послужили основой для многих продуктов. А приход компании Netscape позволил привлечь внимание ИТ-гигантов, которые со временем начали активно вкладываться в open source.
Проект Debian, одной из старейших операционных систем, основанных на ядре Linux, с момента своего основания разрабатывался открыто. Фонд свободного программного обеспечения спонсировал проект с 1994 по 1995 год, а затем создатели организовали некоммерческую организацию «Программное обеспечение в общественных интересах» для финансирования Debian. Проект включает популярные бесплатные программы, такие как LibreOffice, браузер Firefox, почту Evolution, устройство записи дисков K3b, медиаплеер VLC, редактор изображений GIMP и программу просмотра документов Evince.
Организация Apache Software Foundation тоже начиналась как открытый проект по развитию одноименного программного обеспечения, в том числе веб-сервера Apache. Данный сервер считается одним из наиболее популярных. Он позволяет запускать сайты небольших проектов и малого бизнеса на WordPress. В наше время разработчики поддерживают множество софтверных проектов, которые имеют открытую лицензию Apache Software License. Спонсорами ASF выступают такие гиганты как Microsoft, Huawei и Amazon Web Sevices.
Компания Red Hat, производитель программного обеспечения на основе операционной системы Linux, возникла в 1995 году. Она не только выпускала софт, но и занималась технической поддержкой и обучением системных администраторов и разработчиков. В 2018 году компанию купила IBM.
Google развивалась благодаря Linux и открытому ПО. Компания сама поддерживает такие проекты как библиотека машинного обучения TensorFlow, язык программирования Go, ПО для автоматизации развертывания приложений Kubernetes и другие. В 2017 году Google открыла портал для 2 тыс. своих open source проектов. Компания делится своими наработками в области открытого кода, а также рассказывает о поддержке новых инициатив.
Microsoft, которая изначально была против open source, в последние годы также изменила отношение к свободному ПО. В 2018 году компания передала 60 из 90 тыс. своих патентов на разработки Open Invention Network (OIN) — организации, которая владеет патентами на программное обеспечение открытой экосистемы GNU/Linux и предоставляет право на их бесплатное использование. Чуть позже корпорация приобрела портал репозиториев открытого года GitHub, а также активно принимает участие в развитии открытых проектов, в том числе, Linux.

Microsoft покупает GitHub (Фото: Блог GitHub)
Организация Open Source Design объединяет дизайнеров, которые разрабатывают проекты с открытым кодом. Она существует более пяти лет. В работе организации принимают участие UX-дизайнеры Mozilla, GNOME, Fedora, Canonical (Ubuntu), WordPress, Drupal, Libre Office, «википедии» для дизайнеров XWiki и других компаний.
В науке опенсорс-подход распространяется не только на открытое ПО, но и на публикации работ исследователей, открытое рецензирование и развитие открытых образовательных ресурсов. Еще в 1991 году физик Пол Гинспарг основал электронный архив arXiv при Лос-Аламосской национальной лаборатории для публикации в открытом доступе препринтов. Теперь там публикуются работы не только по физике, но и по медицине, математике и еще ряду направлений. Европейская организация по ядерным исследованиям (ЦЕРН) поддерживает не только выпуск оборудования с открытым исходным кодом и открытой лицензией, но и собственный портал открытых данных. Ученые применяют инструменты с открытым кодом также для того. чтобы раскрывать методологию своих исследований. К примеру, они используют Open Notebooks для документирования рабочих процессов.
Продукты с открытым кодом используют не только специалисты, но и обычные пользователи, причем иногда они даже не подозревают об этом. LibreOffice, OpenOffice и NeoOffice позволяют бесплатно работать с текстовыми документами, таблицами, графиками, рисовать и делать презентации. 7-Zip, файловый архиватор с высокой степенью сжатия, помогает экономить место на ПК и передавать большие файлы. Графический редактор GIMP способен заменить Photoshop, так как включает инструменты цветокоррекции, фильтры, рисующие инструменты, маски и слои.
Примеру опенсорс-проектов следуют и корпорации, которые открывают свои программы для улучшения. Так, Microsoft решила поделиться кодом приложения «Калькулятор» для Windows, чтобы открытое сообщество предлагало для него исправления и новые функции.
Открытый исходный код в наши дни помогает поддерживать технологии искусственного интеллекта, блокчейна и сложных вычислений. Согласно отчету Red Hat, который опросил 1 250 ИТ-лидеров по всему миру, 90% этих предприятий используют открытый исходный код: 64% компаний задействуют такое ПО для модернизации инфраструктуры, 54% — для разработки приложений, 53% — для цифровой трансформации. За последние два года эти показатели увеличились на 11%, и в будущем открытый код, вероятно, поможет заменять ручные процессы автоматизированным управлением на программном обеспечении, способствуя инновациям.
Что такое Open Source. Объясняем простыми словами
Open Source (OS, открытый код) — исходный код программного обеспечения, который доступен для всех пользователей.
Его можно просматривать, изучать, при необходимости дорабатывать и изменять под свои задачи без нарушения авторских прав. Разработчики также могут разрешать свободное распространение и использование в коммерческих целях.
Примеры популярных проектов с открытыми кодами: MySQL, Linux, OpenOffice, Telegram.
Среди крупных российских проектов — Nginx, FAR Manager, 7-Zip, DriverPack Solution.
Пример употребления на «Секрете»
«Оpen source — это гигантский сегмент и несомненный тренд в развитии мировой IT-индустрии. К 2024 году доля открытого ПО в общем объёме разработки составит 50–70%. Российские программисты вносят огромный вклад в его развитие, только на платформе GitHub — крупнейшей в этом сегменте — зарегистрировано 2,5 млн россиян, русскоговорящих разработчиков там в 1,5 раза больше».
(Из новости о том, что грант на разработку IT-продукта можно будет получить через «Госуслуги».)
Практика
Корпорации используют тренд открытых кодов. Они открывают свои программы для улучшения внешними разработчиками. Например, Microsoft решила поделиться кодом приложения «Калькулятор» для Windows, чтобы открытое сообщество предлагало для него исправления и новые функции.
Также они покупают и поддерживают проекты open source. Так, Microsoft приобрела портал репозиториев открытого кода GitHub, а также активно принимает участие в развитии открытых проектов, в том числе Linux.
Плюсы открытого кода для корпораций могут заключаться в следующем:
- участие в открытых проектах позволяет привлечь внимание к другим своим программам, а также развивать собственную экосистему за счёт усилий сторонних разработчиков;
- вовлечённость открытого сообщества в проекты компании делает проще поиск и найм новых сотрудников;
- покупка опенсорс-компаний позволяет удерживать таланты внутри компании; поддержка проектов извне мотивирует разработчиков активнее развивать их.
Статью проверил:
Михаил Хачатурян, к. э. н., доцент департамента менеджмента и инноваций Финансового университета при Правительстве РФ
Open source
Open Source — это программное обеспечение, распространяемое с открытым исходным кодом. Такое приложение можно доработать (изменить, дополнить) под свои задачи без нарушения авторских прав разработчиков, а также изучить на наличие уязвимостей, использовать для разработки других программ и т.д.

«IT-специалист с нуля» наш лучший курс для старта в IT
Концепция ПО с открытым исходным кодом является альтернативой проприетарному программному обеспечению, которое распространяется коммерческими компаниями, с ограниченным или полностью закрытым кодом. Сам термин был предложен в 1998 году как более корректный, хотя и близкий по значению, синоним free-software (свободного ПО). Большинство программ с открытым исходным кодом одновременно являются свободно распространяемыми.
Отличие open source от free-software
Термин free-software (свободное программное обеспечение) появился в 1985 году благодаря разработчику Ричарду Столлману, сотруднику Массачусетского технологического института. В то время он работал над несколькими свободно распространяемыми программами, в том числе над текстовым редактором для мини-компьютеров. После того как эту программу продали коммерческой компании, он в 1983 году основал проект, названный GNU. Это была полностью свободная UNIX-совместимая операционная система с набором таких же свободных прикладных программ.
Развитием этого проекта стал созданный Столлманом и его командой энтузиастов некоммерческий фонд Free Software Foundation. Его деятельность основывалась на следующих принципах:
- свободное использование — возможность запускать программу в любых целях;
- свободное изучение — возможность исследовать программу и адаптировать ее под потребности пользователя, для чего обязательно необходимы открытый исходный код и документация;
- свободное распространение — право владельца делиться программой с другими пользователями по своему усмотрению;
- свободное улучшение — возможность совершенствовать программное обеспечение и тем самым приносить пользу всему сообществу пользователей.
Профессия / 8 месяцев
IT-специалист с нуля
Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

В соответствии с философией Free Software Foundation программное обеспечение считалось свободным, если удовлетворяло всем четырем пунктам. Однако здесь возникали определенные коллизии:
- Свободное ПО не обязательно должно быть некоммерческим, его можно распространять и использовать на платной основе.
- Термин “free” в англоязычной среде часто означает не только «свободный», но и «бесплатный» — то есть программа могла распространяться бесплатно, но при этом быть недоступной для изучения и/или изменения, что противоречит принципам Free Software Foundation.
Чтобы устранить эту неоднозначность, в 1998 году программисты и идеологи свободного ПО Эрик Реймонд и Брюс Перенс предложили термин open source (ПО с открытым исходным кодом). Для развития концепции в том же году они основали некоммерческий фонд Open Source Initiative.
Первым продуктом, реализованным на принципах открытого исходного кода, стал браузер Netscape Communicator — на тот момент главный конкурент Internet Explorer. Основатели OSI разработали определение открытого исходного кода и его критерии, взяв за основу Руководство по свободному программному обеспечению Debian (DFSG). Они выделили 10 требований, которым должна соответствовать лицензия open source. Мы остановимся на ключевых из них:
- Не должно быть ограничения сторон по части продажи и/или раздачи программы как составной части совокупного ПО, включающего программы из других источников.
- Продажа программного обеспечения с открытым исходным кодом не подразумевает выплат роялти или иных сборов в пользу разработчика.
- Распространение программного обеспечения должно осуществляться в исходном коде (предпочтительно) или в скомпилированной форме. Если программа распространяется не в исходном коде, она должна сопровождаться широкой рекламой способов его получения (предпочтительно бесплатного скачивания в сети).
- Не допускается намеренное запутывание исходного кода программы с целью усложнения его исследования, воспроизведения, редактирования или использования.
- Не допускается никакая форма дискриминации при распространении ПО с открытым исходным кодом в отношении каких-либо отдельных лиц, групп людей или областей деятельности.
- Разрешается модифицировать программное обеспечение или создавать на его основе производные продукты, при этом они подчиняются той же лицензии, что и исходная программа.
Если обобщить все различия между концепциями открытого и свободного программного обеспечения, то они сводятся к следующему:
- Free-software ставит в приоритет право человека (пользователя) свободно распространять, использовать и изучать программное обеспечение.
- В концепции open source акцент сделан на удобстве открытого исходного кода в плане разработки, модернизации и поддержки ПО.
Но на практике эти различия зачастую нивелируются и «в народе» оба понятия используются если не как тождественные, то как близкие синонимы.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить
Виды лицензии open source
На первый взгляд, концепции open source/free-software и лицензии не совместимы друг с другом. И первое время энтузиасты открытого исходного кода действительно не использовали лицензионные соглашения. Однако опыт одного из основоположников Open Source Initiative показал, что даже максимальная свобода должна быть регламентирована, особенно если речь идет о продукте интеллектуального труда.
Лицензия — это не обязательно ограничения и выплаты лицензиату. Это любое соглашение между сторонами, в котором обговариваются принципы их взаимоотношений друг с другом. Сейчас программы с открытым исходным кодом распространяются под лицензиями нескольких видов.
- Public Domain (общественное достояние). Такие лицензии относятся чаще всего к творческим материалам. Эти работы являются общественным достоянием и принадлежат всему обществу, а не отдельным авторам и разработчикам. Ими можно пользоваться как угодно, не спрашивая разрешения. Соответственно, на них не распространяется авторское право, интеллектуальная собственность, законы о товарных знаках и патентах. Примером подобной лицензии является СС0 от Creative Commons.
- Permissive (разрешительные). По своему характеру они похожи на public domain, но не требуют отказа от авторского права. Такие лицензии практически не ограничивают использование программного продукта пользователями и разработчиками. Они также не ограничивают применение других лицензий к продуктам, производным от исходного, то есть не являются копилефтными. Примерами таких лицензионных соглашений являются BSD, MIT, Apache, WTFPL.
- Copyleft. Название категории — производный антоним от copyright, то есть такие лицензии дают право распространять копии и производные от исходного продукта без разрешения автора или владельца авторских прав. Однако распространение должно подчиняться той же лицензии, что и исходный продукт. То есть нельзя делать проприетарным софт, являющийся производным от свободного. Примерами copyleft-лицензии являются Creative Commons Attribution ShareAlike и GPL.
В противовес этим категориям лицензий для ПО с открытым исходным кодом используются проприетарные лицензии. Такие соглашения признают программу частной собственностью ее автора и его монопольное право на ее распространение, использование, копирование и изменение. То есть проприетарное программное обеспечение по всем пунктам не может быть свободным. При этом, однако, сам исходный код в таких программах может быть открытым.
Преимущества ПО с открытым исходным кодом
Для пользователей:
- экономия — подавляющее большинство продуктов с открытым исходным кодом, а также их модификаций и копий распространяются бесплатно;
- поддержка — вокруг проектов с открытым исходным кодом быстро образуются сообщества энтузиастов, которые постоянно разрабатывают мануалы, ищут и исправляют ошибки, создают плагины, расширяющие функционал основного софта, и т.д.;
- быстрая обратная связь — так как многие программы с открытым исходным кодом создаются небольшими коллективами, пользователь быстрее получает от них ответ на интересующие его вопросы;
- конфиденциальность — в отличие от проприетарного ПО, программы с открытым исходным кодом, как правило, не требуют от пользователя указания его личных данных, которые могут быть потом использованы в рекламных или иных целях;
- совместимость — большинство продуктов с открытым исходным кодом разрабатываются сразу для нескольких платформ, облегчая жизнь пользователям различных операционных систем.
Для индивидуальных разработчиков:
- доступность — разработчик может найти любую программу для обучения и развития, создания собственных проектов, причем абсолютно бесплатно;
- возможность адаптации — разработчик может доработать «открытую» программу под свои конкретные задачи;
- поддержка — наличие развитого сообщества экспертов позволяет разработчику получить любую помощь по софту, а также быть уверенным в том, что нужные ему программы постоянно дорабатываются и улучшаются.
Для корпораций:
- привлечение клиентов — участвуя в проектах с открытым исходным кодом, корпорации привлекают внимание пользователей к другим своим продуктам (в том числе платным), а также развивают вокруг них экосистему за счет сторонних разработчиков, экономя свои собственные ресурсы;
- привлечение сотрудников — постоянно взаимодействуя с сообществом энтузиастов открытого кода, компания может найти среди них ценные кадры для работы над своими проектами;
- стимулирование развития — покупая компанию — разработчика открытого ПО, корпорация удерживает ее сотрудников и дает им стимул развивать свои проекты дальше;
- конкуренция — наличие программ с открытым исходным кодом заставляет корпорации постоянно совершенствовать свои коммерческие продукты аналогичного назначения.
Недостатки открытого программного обеспечения
Плагиат. Коммерческие разработчики могут наживаться на «открытом» продукте, используя его исходный код для своих проектов практически без изменений без указания авторства. Тем самым фактически чужое ПО выдается за свое и продается по ощутимым ценам.
Сокращение поддержки. Разработчик программы с открытым исходным кодом зачастую не знает, что та используется в других проектах, — соответственно, не может оказать адекватную поддержку ее развития. Также многие создатели open source быстро утрачивают интерес к работе, не получая материального стимула.
Уязвимости. Многие проекты с открытым исходным кодом основаны на продуктах других производителей. Часто разработчики не взаимодействуют друг с другом, что в итоге приводит к появлению уязвимостей, которыми могут воспользоваться злоумышленники — например, для кражи личных данных.
Примеры ПО с открытым исходным кодом
Исторически первым программным продуктом, официально признанным open source, стал браузер Netscape Communicator. Изначально созданный на коммерческих началах, он стал проигрывать в конкурентной борьбе Internet Explorer от Microsoft, что вынудило его разработчиков открыть исходный код программы. Впоследствии на основе этого браузера был разработан также открытый Mozilla Firefox.
Другими известными примерами свободного ПО являются:
- OpenOffice — текстовый редактор, аналогичный по функциям и интерфейсу платному пакету Microsoft Office;
- графический редактор GIMP, возможности которого не уступают функционалу платного Adobe Photoshop;
- WordPress — система управления контентом, используемая в сайтах-блогах, новостных ресурсах;
- Android — мобильная операционная система для смартфонов и планшетов, которая сегодня установлена на более чем 2,5 миллиардах устройств;
- Linux (GNU/Linux) — десктопная операционная система, которая благодаря своей открытости популярна у разработчиков, системных администраторов и других IT-специалистов.
На сегодняшний день рынок ПО с открытым исходным кодом стабильно растет, успешно конкурируя с проприетарными программами. Open source дает пользователям законную возможность пользоваться качественными продуктами абсолютно бесплатно или за относительно небольшую плату. Особенно это актуально для стран со строгим законодательством в области интеллектуальной собственности и авторского права.
IT-специалист с нуля
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

Статьи по теме:
И почему идти на фриланс — не самое удачное решение
Где искать модели для машинного обучения, готовиться к собеседованиям и осваивать новые технологии на практике