Более того, вредоносное ПО часто маскируется под программы с открытым исходным кодом, и его трудно отличить от настоящего безопасного программного обеспечения.
Что такое Open Source, и с чем его едят в наше время
В 2021 году российские власти переориентировали свое внимание на открытый исходный код. Этот вопрос обсуждался на ПМЭФ, и в настоящее время готовится стратегия работы с открытым исходным кодом. Одним словом, что-то движется, находится в движении и в движении. Чтобы понять, где и почему, нужно хорошо понимать, что такое открытый исходный код и что это такое. В данной статье автор постарался дать наиболее подробный, информативный и обоснованный ответ на этот сложный и актуальный вопрос.
Давайте начнем с определений, а не с хронологии, чтобы лучше понять суть вопроса.
Существуют две близкие, но разные концепции — программное обеспечение с открытым исходным кодом (OSS) и свободное программное обеспечение (FOS), которые иногда объединяют под термином FOSS (Free Software and Open Source Software) или FLOSS (с добавлением слова «libre», чтобы подчеркнуть, что «свободное» — это не свободное, а бесплатное программное обеспечение). За этими двумя терминами стоят две разные неправительственные организации — Фонд свободного программного обеспечения (FSF) и Инициатива открытого исходного кода (OSI). В русских текстах OSS иногда переводят как OPO (Open Source Software), но в данной статье мы избегаем этого неудобного перевода.
Ричард Столлман, известный разработчик и идеолог OSS, основал FSF в 1985 году и определил OSS как предоставление 4 наиболее важных «свобод», современную версию 1 из которых можно найти на сайте FSF. Рузвельта (1941) о четырех свободах (свобода слова, свобода религии, свобода потребностей, свобода от страха), которые впоследствии легли в основу Всеобщей декларации прав человека, принятой ООН в 1948 году. Программное обеспечение, которое не является свободным, FSF называет проприетарным.
В России определение ФСС официально дано в ГОСТ Р 54593-2011.2 Это перевод на русский язык четырех основных свобод Столлмана, а именно (далее цитата из ГОСТа): ..:
- . использовать компьютерное программное обеспечение в целях, не запрещенных законом,
- иметь доступ к исходному коду программы как для целей изучения и адаптации, так и для доработки программы для ЭВМ; распространять программу (бесплатно или за плату, в зависимости от обстоятельств),
- модифицировать (пересматривать) Программу для ЭВМ и распространять копии модифицированной (пересмотренной) Программы с учетом любых требований Лицензии на наследование
- в определенных случаях распространять модифицированную компьютерную программу пользователем на тех же условиях, на которых была предоставлена оригинальная программа.
Было разработано несколько десятков общественных лицензий, наиболее известными из которых являются GPL, LGPL, BSD, MIT, Apache 3.
Новое слово — лицензии SSPL 4, которые являются ответом на распространение модели доступа к программному обеспечению в облаке.
Open Source Initiative — это неправительственная организация, основанная в 1991 году Эриком Раймондом, известным программистом и автором знаменитой статьи «Собор и базар «5, которая положила конец сотрудничеству с очень авторитарным и радикальным Столлманом.
Справедливости ради следует отметить, что основатели движения FOSS/OSS часто придерживались радикальных политических взглядов — анархизм, отрицание собственности и т.д. — и попытались воплотить их взгляды в концепцию распространения программного обеспечения и работы над ним. Сегодня, однако, FOSS вступил в эпоху прагматизма, и рвение социальных и политических радикалов сменилось экономическими расчетами и оценками эффективности бизнеса.
Как возник Open Source?
В начале компьютерной эры невозможно было продавать программное обеспечение и скрывать исходный код. В 1950-х и 60-х годах компьютеры создавались крупными компаниями, такими как IBM, а пользователями были в основном научные учреждения, правительственные агентства и крупные корпорации. Пользователи компьютеров разрабатывали свои собственные программы и делились исходным кодом. Культура обмена свободным программным обеспечением существует столько же, сколько существуют компьютеры.
В 1969 году IBM начала продавать программное обеспечение отдельно от компьютеров. Во второй половине 1970-х и начале 1980-х годов в США программное обеспечение было признано интеллектуальной собственностью. Было создано соответствующее законодательство и прецедентное право, а также введена концепция лицензий на программное обеспечение, которые можно продавать и покупать.
В то же время было разработано программное обеспечение с открытым исходным кодом. В 1969 году Кен Томпсон и Деннис Ричи из Bell Labs разработали первую версию свободной операционной системы UNICS. Они сделали это для себя и своих коллег. В 1973 году операционная система была выпущена под названием UNIX и распространялась добровольными организациями, в основном в академических кругах. В это время появился и первый свободный дистрибутив операционной системы — BSD (Berkeley Software Distribution), содержащий сам UNIX и ряд полезных утилит. Затем Bell Labs прекратила выпуск кода UNIX и подняла цены. Появились клоны операционной системы. Ученым нравился свободный обмен кодом, и вокруг них продолжала жить и развиваться идея открытого кода, хотя она никак не была оформлена.
В 1988 году MIT и Berkeley опубликовали свои лицензии на открытый исходный код. В 1989 году FSF Ричарда Столлмана опубликовала заразительную GPL.
На рубеже 1980-х и 1990-х годов появился Интернет, радикально расширивший возможности обмена информацией, включая программный код. Кроме того, резко возросла потребность в новом программном обеспечении, что расширило сферу применения компьютеров. В 1991 году Линус Торвальдс, финский студент, разработал первую версию новой операционной системы Linux, которая изменила мир и стала символом свободного программного обеспечения и открытого исходного кода. 1990-е годы были временем роста OSS, вызванного появлением Интернета. В 1991 году Ларри Уолл выпустил четвертую версию языка Perl, популярность которого резко возросла как универсального инструмента программирования. FreeBSD, свободная операционная система, была выпущена в 1993 году. В 1995 году Майкл Стоунбрейкер обнаружил код базы данных Postgres.
В 1990-х и начале 2000-х годов OSS разрабатывался в основном учеными и интернет-компаниями (такими как Yahoo, Rambler, Google и т.д.). Для программистов 1960-х годов программное обеспечение было побочным продуктом, который помогал им решать их основные задачи. Возникла ситуация, когда несколько компаний, включая конкурентов, были заинтересованы в разработке этого программного обеспечения, но ни одна из них не была заинтересована в его продаже.
По этой причине в начале 2000-х годов OSS заняла серверы интернет-компаний и университетов, в то время как Microsoft Windows доминировала на компьютерах.
Но уже в 1998 году Microsoft почувствовала, что ее рынку угрожает OSS. Так называемые «Хэллоуинские документы 8», ставшие достоянием общественности благодаря утечкам, ясно дают это понять. С 2003 по 2007 год Microsoft проводила рекламную кампанию под названием «Get The Facts», в которой искажала факты и цифры, утверждая, что Linux хуже Windows во всех отношениях. Глава этой компании, Стив Балмер, открыто назвал OSS «раковой опухолью».
Тем временем Apple отказалась от ядра собственной операционной системы и начала разработку операционной системы на базе BSD для своих компьютеров. Google начал разработку мобильной операционной системы нового поколения, Android, основанной на Linux (выпущена в 2008 году). В том же году сообщество Postgres начало заявлять о том, что PostgreSQL готов к использованию в корпоративном секторе, поскольку продукт был в целом зрелым, имел возможности репликации и отказоустойчивой кластеризации, и, конечно же, обладал полной функциональностью Windows.
История заканчивается, и начинается наше время
К 2021 году ландшафт изменился интересным образом:
- Открытое программное обеспечение и коммерческое программное обеспечение — это уже не два разных, враждующих лагеря, а две формы развития, которые дополняют друг друга и занимают свое собственное положение, определяемое пригодностью этих форм для решения задач разных категорий.
- Разработка OSS больше не является чем-то для отдельных энтузиастов, а в основном для крупных компаний, преследующих свои собственные интересы. Например, основными игроками в Linux сейчас являются Microsoft (как бы странно это ни звучало), Red Hat, Google, Huawei и другие гиганты. Это связано с тем, что корпорации и правительства также стали потребителями OSS, и их потребности могут быть удовлетворены только разработчиками соответствующего масштаба. Второе десятилетие двадцать первого века стало парадом компаний-«камикадзе», объявивших, что они используют OSS в значительных масштабах.
- Сложность крупных продуктов OSS достигла такого уровня, что простая публикация исходного кода уже не означает полной прозрачности. Чтобы разработать что-то на основе этого исходного кода, требуется огромное количество времени и усилий. Совсем не просто разобраться в десятках миллионов строк без какой-либо документации проекта (которая не только не публикуется, но и не требуется в соответствии с принципами открытого кода). Иногда это практически невозможно, учитывая, что продукт находится в стадии разработки и код меняется. Концепция открытого дизайна в отношении программного кода — когда не только код открыт, но и документы, объясняющие внутреннюю работу системы, присутствуют и открыты — еще не родилась.
То, как идеалистически настроенные основатели Столлман, Раймонд и другие видели OSS и программное обеспечение с открытым исходным кодом, сегодня уже не совсем актуально.
Более того, возникла новая облачная модель использования программного обеспечения. В этом случае программное обеспечение не копируется (пользователи не получают копии), поэтому у них нет возможности изучать и изменять исходный код (это основа разработки OSS, хотя процент пользователей, использующих эти возможности, невелик).
Классическая модель с открытым исходным кодом, когда часть пользователей платит за продукт, внося свой вклад в его разработку, не работает в облаке. Многие активисты открытого кода увидели угрозу в облаках, поэтому была создана лицензия SSPL-5, по которой Mongo DB будет распространяться с 2018 года, а Elasticsearch — с 2021 года. SSPL более «заразительна», чем GPL, потому что она требует, чтобы каждый, кто использует продукт для предоставления услуги, сделал все программное обеспечение, используемое в услуге, полностью открытым. Он «заражает» всю службу. В некотором смысле это логическое продолжение GPL в случае облаков, но все же OSI и FSF не признают эту лицензию. Он кажется с открытым исходным кодом, но это не открытый исходный код. И он не является открытым исходным кодом.