Будущее за свободным софтом, и вот почему
30 июня 2020
Будущее за свободным софтом, и вот почему
Алексей Подболотов
Программное обеспечение с открытым исходным кодом — вещь для 21 века вполне обыденная. Организация под названием Open Source Initiative была основана еще в 1998 году, хотя примеры разработок с открытым кодом были неоднократно и до этого. Как становится понятно из названия, основное отличие подобных разработок от закрытого (проприетарного) софта состоит в том, что код первых доступен публично и любой разработчик может его как проинспектировать, так и изменять по своему усмотрению. Все мы хорошо знакомы как минимум с одной опенсорсной разработкой — ОС Android от Google.
Да-да, система, установленная на 70–80 процентах (по разным оценкам) смартфонов в мире, является полностью открытой, и любой желающий может изменять её исходный код, как ему заблагорассудится. Доказательство тому — огромное множество ответвлений (форков) Android, на которых базируются кастомные прошивки для смартфонов. Здесь, правда, есть один важнейший нюанс: по сути, вся ОС Android теряет немалую часть своей функциональности без сервисов от той самой Google. Ну, а последние, само собой, являются закрытым и полностью контролируемым корпорацией ПО. Эпопея последних лет, в которую была замешана Huawei, является лишним тому доказательством.
- Какие потери несет Google от запрета Huawei — риски лидера рынка
Однако, несмотря на некоторые оговорки, ПО с открытым кодом потихоньку завоевывает мир, и на то есть несколько очень весомых причин.
Свободное ПО подстраивается под нужды пользователей, а не наоборот
В отличие от проприетарного ПО, софт с открытым кодом в большинстве своем очень гибок. Этому есть простая причина — один из основных «принципов опенсорса» состоит в том, что «пользователь должен восприниматься как соразработчик». Этот принцип, наряду с другими, был описан Эриком Рэймондом в эссе «Собор и Базар» в 1997 году. Согласно ему, пользователю должен быть гарантирован доступ к исходному коду, и более того — активное участие пользователя в разработке только поощряется. Проявляться это может в разных формах: от непосредственных правок кода или документации к нему до простого сбора баг-репортов (отчетов об ошибках).
Ну, а раз пользователь отчасти является разработчиком, то вполне очевидно, что конечный продукт будет больше подходить под его нужды, чем изначально закрытый софт. Для внесения изменений в последний потребителю необходимо связаться с компанией-разработчиком (что уже не всегда легко сделать), донести свое видение до неё и ждать. Ждать, пока она (возможно) эти изменения внесет. Все кажется логичным — вы купили готовый продукт в том виде, в котором он продается, и согласились его использовать именно так, как это предусмотрено разработчиком. Можно взять пример из другой области: когда вы покупаете автомобиль, вы не пытаетесь связаться с автозаводом и заставить его использовать в этой модели двигатель помощнее, а выхлопную систему погромче. Ровно так же, как вы не станете обращаться к нему, чтобы он сделал на базе этой машины яхту, например. Возможно, будь вы очень крупным оптовым клиентом, производитель и пошел бы вам навстречу в каких-то моментах, но перекраивать весь производственный процесс ради вас он точно не станет. И уж тем более допускать вас в него.
Такая же ситуация и в софте. Когда вы покупаете закрытую ОС, например, Windows для настольного ПК, вы соглашаетесь с тем, что будете пользоваться ею так, как это предусмотрел производитель. То есть установите её (или приобретете предустановленной) на обычный ПК с поддерживаемой архитектурой и «железом», не будете «вырезать» оттуда какие-либо критические компоненты и не будете пытаться использовать её в других целях. К примеру, в качестве серверной ОС или в качестве ОС для смартфона. Вы либо не сможете это сделать вообще, либо столкнетесь с множественными трудностями и ограничениями.
Другое дело — открытые ОС. Если рассматривать Linux в качестве общности всех его дистрибутивов, то найти цель или «железную» архитектуру, для которых нет Linux, будет очень сложно. Здесь и ОС для Большого адронного коллайдера, и автомобильное ПО, и всяческие «умные» вещи, и крупнейшие магистральные сервера, и банальные домашние компьютеры. И многие из этих дистрибутивов также остаются программой с открытым исходным кодом. Это означает, что каждый пользователь подобного продукта может активно участвовать в его создании, дополняя его соответственно своим нуждам. Та же система для БАК является видоизмененной версией Scientific Linux, которую совместно разработали ученые со всего мира. В свою очередь, эта версия Linux базируется на дистрибутиве Red Hat, который тоже был «допилен» для научного использования. Таким образом, ученые из ЦЕРНа получили инструмент, максимально соответствующий выполнению конкретных целей, не создавая при этом всю программную архитектуру с нуля.
Но несколько лет назад ЦЕРН объявил о переходе на другой дистрибутив — CentOS. Scientific Linux будет поддерживаться до 2024 года, но новых версий уже не получит
Софт с открытым кодом легче контролировать
Общедоступный исходный код позволяет соблюсти так называемый «закон Линуса», который гласит: «При достаточном количестве наблюдателей ошибки выплывают на поверхность». Проще говоря, если все разработчики могут просматривать исходный код, то велика вероятность, что какой-то баг будет устранен гораздо раньше. Этот же принцип работает и на безопасность софта: если исходный код открыт, то в нем быстрее найдутся как случайные, так и нарочно занесенные уязвимости и лазейки. В случае же с проприетарными решениями поиск ошибок может занимать гораздо большее время, а уязвимости и вовсе могут быть надежно спрятаны в исходном коде.
Многие помнят скандал 2013 года, когда Эдвард Сноуден обнародовал секретные данные по программе PRISM американского Агентства Национальной Безопасности. Согласно опубликованным документам, данные всех интернет-гигантов, так или иначе, попадали в АНБ, а сами компании либо содействовали этому либо не оказывали активного сопротивления. Конечно, дело тут не только в том, что все эти компании используют и производят софт с закрытым кодом. Помимо этого, здесь как политические, так и чисто человеческие факторы. Но лишь одна возможность стороннего наблюдателя изучить механизмы движения персональных данных могла бы обеспечить гораздо большую защиту, чем любое шифрование. Ведь шифрование — это, по сути, замОк, закрывающий информацию на ключ. И каким бы он ни был защищенным от взлома, он не спасет от тех ситуаций, когда у злоумышленника есть копия ключа.
Крупные организации переходят на ПО с открытым кодом
Вышеуказанные принципы могут быть не так важны для рядового пользователя (по крайней мере, пока), но очень важны для так называемых «энтерпрайзов» — больших организаций, в которых сбои и утечки крайне нежелательны, а то и вовсе недопустимы. То же можно сказать и про некоммерческие организации — те же научные проекты, а также государственные и муниципальные учреждения. Яркий тому пример — администрация немецкого города Мюнхен, которая приняла решение по возможности переводить ИТ-инфраструктуру городской власти на решения с открытым исходным кодом. Несколько других немецких городов также планируют переход на «опенсорс», но пример Мюнхена особо примечателен. Дело в том, что местный муниципалитет был мировым пионером в этом вопросе — первый переход на открытое ПО был начат еще в 2003 году. Он предполагал отказ как от отдельных проприетарных программ вроде продуктов Adobe, SAP, и Microsoft, так и от закрытой ОС упомянутой компании из Редмонда.
Был даже разработан собственный дистрибутив под названием LiMux (Linux + Munchen), а план перехода предусматривал увеличение количества ПК, работающих на этой ОС, до 80 процентов к 2013 году. Но множество факторов привели к тому, что сотрудники держали на своих рабочих станциях параллельно две системы: условно «основную» LiMux и условно «дополнительную» Windows. Так произошло из-за того, что некоторый специализированный софт не имел версии для Linux, а если и имел, зачастую работал на нем нестабильно. В 2017 году администрация объявила возврат к продуктам Microsoft, но уже в текущем году произошел новый поворот. Новое правительство провозгласило лозунг «Публичные деньги, публичный код» и приняло соглашение о переходе городской ИТ-инфраструктуры на открытое ПО. Все, что не связано с конфиденциальными данными, будет постепенно (по мере истечения текущих контрактов) переходить на ПО с публично доступным кодом — так правительство хочет обеспечить максимальную прозрачность своей работы.
Даже техногиганты осознают необходимость участия в развитии опенсорса
Казалось бы, зачем крупнейшим компаниям информационного мира, которые зарабатывают деньги на своих проприетарных продуктах, влезать в «опенсорс»? Ведь это практически напрямую противоречит логике и здравому смыслу.
В пресловутой Microsoft придерживались именно такого подхода достаточно долгое время. Апогеем его стал период руководства Стива Балмера, который заявил в 2001 году: «Линукс — это раковая опухоль, которая поглощает любую интеллектуальную собственность, которой он касается». Но с тех пор все сильно поменялось. Мало того, что теперь корпорация владеет важнейшим оплотом мирового опенсорса — Github, так еще и с каждым годом понемногу сближает свои продукты с миром открытого кода. Например, в 2015 она открыла для разработчиков свой фреймворк .NET, а в 2018 корпорация опубликовала некоторые части исходного кода игры Minecraft, используемые разработчиками.
А в 2019 и вовсе пошла на необычный шаг — добавила ядро Linux в Windows 10 для работы подсистемы с названием Windows Subsystem Linux (WSL). До этого во всех версиях ОС от компании из Редмонда можно было только эмулировать Linux, теперь же это абсолютно полноценная подсистема, которая очевидно направлена на разработчиков, предпочитающих эту среду. Для этой же цели был создан Windows Terminal, с помощью которого можно получить доступ и к привычной PowerShell/CMD, и к ядру Linux.
Все эти изменения происходят в огромной корпорации неспроста. Её новое руководство стало осознавать, что для разработчиков идеи открытости исходного кода с каждым годом становятся все более важными и что со временем опенсорс подомнет под себя значительную часть сообщества. И тут вступает в дело старый добрый принцип «не можешь бороться — возглавь». Именно задел на лидерство в мире опенсорса и побудил Microsoft к покупке такого не самого прибыльного актива, как Github. Эту ситуацию видят и в других крупнейших компаниях: многие подобные проекты пользуются облачными вычислительными мощностями AWS от Amazon, Apple в начале этого года начала массово нанимать ключевых сотрудников непосредственно из мира облачных вычислений (в т.ч. из AWS), а Google и вовсе является этаким эталоном «опенсорсности» среди коммерческих организаций. Весь исходный код открыт не только у их мобильной ОС Android, но и у браузерного движка Chromium, и даже у настольной Chromium OS.
При этом калифорнийская компания делает успешные коммерческие продукты на их основе, используя код с минимальными отличиями. Грубо говоря, если вы хотите сделать свой форк (ответвление) Android и используете последние исходники, то отличать его от оригинальной ОС будет только отсутствие сервисов Google. Да, в современном мире эти самые сервисы играют чуть ли не ключевую роль (снова возвращаемся к ситуации с Huawei). Но факт остается фактом — вы можете создать свою собственную мобильную ОС, идущую наравне с таковыми у мировых техногигантов, абсолютно легально и стопроцентно бесплатно. Если, конечно, у вас хватит знаний и умений.
Открытый исходный код вовсе не означает «бесплатность»
И тут мы приходим к тому, что восприятие продуктов с открытым исходным кодом как бесплатных тоже потихоньку отходит в сторону. Да, принципы сообщества опенсорса тесно завязаны на свободном распространении кода, однако они и не исключают его коммерциализации. В качестве примера подхода, при котором сочетаются две эти, на первый взгляд, несовместимые вещи, можно привести компанию RedHat. Fedora — это дистрибутив Linux, который она разрабатывает, и его исходный код полностью открыт. Однако компания все равно является коммерческой — она зарабатывает деньги на сервисной подписке для коммерческих клиентов и на техподдержке. В прошлом году компанию выкупил еще один некогда крупнейший техногигант — IBM, но на бизнес-модель RedHat это не повлияло. Дистрибутив как был, так и будет оставаться открытым, а деньги компания планирует зарабатывать теперь не только на подписках, но и на облачных вычислениях. К слову, в 2018 году компания заработала почти полмиллиарда долларов, что кажется весьма немалым показателем для компании, основной продукт которой можно скачать абсолютно бесплатно.
Еще один популярный дистрибутив Linux, Ubuntu, тоже разрабатывается в коммерческой компании. Несмотря на открытость исходного кода Ubuntu, ее компания-разработчик Canonical заработала в 2019 году около 11 миллионов долларов. Не самый огромный показатель, но все же это стабильная прибыль, и ни о каком «некоммерческом объединении» здесь уже речи быть и не может. Бизнес-модель здесь та же самая, что и у RedHat, — продажа сервисных подписок.
Заключение
Что особенно занятно, опенсорс бывает не только в ПО, но и в «железе» тоже. Например, не все знают, что платформа Arduino имеет открытый исходный код и любой желающий может абсолютно легально сделать свою копию этого микрокомпьютера. Этим, кстати, успешно пользуются китайские компании. Однако само наименование Arduino является зарегистрированным торговым знаком, и компания-производитель зарабатывает деньги не только на производстве непосредственно плат, но и на лицензировании бренда.
Можно быть уверенным, что опенсорс продолжит свое победное шествие по планете и даже вне ее пределов. Например, всемирно известная компания Илона Маска SpaceX недавно заявила, что уже выпустила на орбиту Земли 32 тысячи микроспутников для обеспечения сети Starlink, при этом их ОС базируется все на том же Linux. А управление капсулой Crew Dragon отчасти возложено на систему из сенсорных мониторов, интерфейс которых основан на исходном коде браузерного движка Chromium.
Ну, а пройдет ли смещение в сторону полной открытости кода безболезненно или мы все же станем свидетелями конфликтов на этой почве, покажет время. Я подозреваю, что открытый код довольно скоро станет стандартом для всех разработчиков, а проприетарные решения займут довольно узкую, пускай и все равно очень заметную нишу. Этот процесс ускорит не только само сообщество разработчиков, но и пользователи, и особенно — правительства стран. Тенденция к прозрачности всего и вся нарастает с каждым годом, и ПО не будет исключением. А что вы думаете по этому поводу?
Читайте также
Пятничная колонка
№167
Посиделки по вторникам
№178
Новостной дайджест
№114
На правах оффтопа
На правах оффтопа. телевидение или интернетБеседка
Что такое работа и совещания по-илонмасковски?
iOS vs Android
Анатомия подделки. airpods 2РоботоСофт
10 приложений для android 10Аксессуары
Что там с зарядом аккумулятора?Полный текст статьи читайте на mobile-review