Программное обеспечение open source. Использование по с открытым исходным кодом для создания успешных коммерческих продуктов. Вопросы получения компенсаций

Как создаются компьютерные программы

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

Решение этой проблемы заключается в создании промежуточного языка, понятного как людям, так и компьютерам. Это так называемые языки программирования. Программисты создают список инструкций для компьютера на языке программирования, таком как C, Pascal или Fortran. Этот список инструкций известен как исходный код. Он носит текстовый характер и доступен для чтения людям - тем, кто говорит на языке. Программисты выполняют всю свою работу в этом исходном коде, изменяя инструкции для исправления ошибок, добавления функций или изменения внешнего вида программы.

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

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

Что же такое Open Source?

Программное обеспечение, которое доступно только в двоичном исполняемом формате, является проприетарным.

Программное обеспечение с открытым исходным кодом - это защищенное авторским правом программное обеспечение, которое распространяется в виде исходного кода в соответствии с лицензионным соглашением, которое предоставляет специальные права пользователям программного обеспечения, права, которые обычно сохраняются за автором. Такая лицензия позволяет всем пользователям создавать и распространять копии двоичных файлов программного обеспечения и исходного кода без специального разрешения автора. Кроме того, он позволяет пользователям изменять исходный код и распространять измененные копии.

Что это означает

Вам интересно, почему же Open Source важен.Важность эта заключена в том, что любой программист в любой точке мира может просматривать исходный код, исправлять ошибки, добавлять новые функции и настраивать систему без ограничений. Именно так Linux разрабатывался с самого начала, и именно поэтому Linux является очень стабильной системой с небольшим количеством ошибок, широкой аппаратной поддержкой и набором функций, растущим настолько быстро, что поставщики проприетарных операционных систем завидуют. Тот факт, что исходный код открыт для просмотра экспертами во всем мире, гарантирует, что любые проблемы будут найдены и решены быстро, а исправления могут распространяться без ограничений. Это гораздо более эффективно и действенно, чем полагаться на то, что корпорация втиснет «пакет обновления» где-то в свой плотный график выпуска. В конце концов, им не платят за пакеты обновлений.

Что действительно важно, так это то, что программное обеспечение с открытым исходным кодом принадлежит сообществу . Это программное обеспечение, которое поддерживается сообществом людей (или компаний), которые его используют. Он свободно доступен в Интернете, и любой может его использовать. Что еще более важно, пользователям предлагается улучшить его. Обмениваясь нашими усовершенствованиями и идеями, объединяя наши ресурсы с тысячами и даже миллионами людей по всему миру через Интернет, сообщество открытого исходного кода может создавать мощное, стабильное и надежное программное обеспечение с очень небольшими затратами.

Но сообщество open source намного больше, чем просто люди, которые пишут программное обеспечение. Каждый, кто использует программное обеспечение, участвует в реальном сообществе и имеет право голоса. Вам не нужно быть программистом. Просто сообщив об ошибке автору программы или написав простую статью с практическими рекомендациями, вы вносите свой вклад в сообщество и помогаете улучшить программное обеспечение. Программное обеспечение с открытым исходным кодом написано, задокументировано, распространяется и поддерживается людьми, которые его используют. Это означает, что он чувствителен к вашим потребностям, а не потребностям корпорации, пытающейся продать ее вам.

Конечно, многие компании также вносят свой вклад в разработку программного обеспечения с открытым исходным кодом, делая свою работу доступной всему сообществу, потому что они знают преимущества Open Source. Программное обеспечение, которое поддерживается целым сообществом, по своей природе лучше и стабильнее, и все больше и больше компаний начинают ценить этот факт.

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

Ресурсы

«Open Source» - это фраза торговой марки, описывающая лицензии на программное обеспечение, которые соответствуют определению Open Source. Торговая марка управляется Инициативой Open Source , организацией, основанной на принципах сотрудничества, которая запустила Linux и движение за свободное программное обеспечение. Только программное обеспечение, которое соответствует критериям, описанным в определении открытого источника, может называть себя открытым исходным кодом.

Задолго до того, как термин «открытый исходный код» вошел в употребление, существовало сообщество людей, приверженных идее «Свободное программное обеспечение», фразе, которая относится не к стоимости, а к свободе ее использования и модификации (думать о свободе как о в «свободе слова», а не «свободном пиве»). Это сообщество по-прежнему активно продвигает идеалы свободного программного обеспечения. Чтобы узнать больше об этом, Вы можете посетить The Free Software Foundation https://www.fsf.org/ .

Для подробного изучения того, как и почему разрабатывается программное обеспечение с открытым исходным кодом, прочитайте превосходное эссе Эрика С. Раймонда "The Cathedral and the Bazaar" .

Если вы рассматриваете программное обеспечение с открытым исходным кодом для своего бизнеса, вы должны посетить The Open Source Initiative чтобы узнать больше. Взгляните в любом случае и узнайте, как сообщество открытого исходного кода может повысить стабильность, масштабируемость и мощность вашего бизнеса, в то же время фактически сократив расходы.

М ногие покупают различное программное обеспечение или же пользуются их взломанными пиратскими версиями. Пользователи видят графический интерфейс программы, но код этого продукта обычно скрыт. В связи с этим изменить софт практически невозможно, что гарантирует автору защиту от тех, кто захочет скопировать код программы и присвоить его себе. Но, не смотря на это, так называемых «Open Source» программ вс е больше в современном мире. Давайте разберемся в том, что такое программы с открытым исходным кодом и каковы их положительные и отрицательные стороны.

Что можно считать открытым кодом?

Практически весь софт до конечного пользователя доходит уже как готовое программное обеспечение. Это вполне работоспособные программы с приятным интерфейсом и удобные в использовании. Если код этого продукта открыт, то любой может его изменить, предложить свои варианты исправления найденных ошибок или внести какое-то новшество. Таким образом, качество этого продукта со временем улучшается. Примерами операционных систем с открытым кодом являются Linux , Unix , Ubuntu .

Все знакомы с Microsoft Office , аналогом которого, но уже с открытым кодом, является Open Office . Браузеры Mozilla Firefox и Google Chrome также являются программным обеспечением с открытым исходным кодом. Подобных продуктов очень много, многие используют большое количество софта и не подозревают, что что-то из этого может быть Open Source программой.

Особенности Open Source

Чтобы софт можно было назвать программой, недостаточно лишь того, что его код открыт для всех. Подобная программа должна быть абсолютно бесплатной . Кроме того, при дальнейшем использовании и попытке изменить код пользователь также не должен ничего платить. Любой имеет право свободно распространять данный продукт, и, как было сказано выше, изменять его. Подобные программы не имеют ограничений по сфере применения и срокам использования. Их можно использовать для ведения бизнеса, научных исследований, обучения, использования в своих целях неограниченное количество времени.

Лицензия Open Source программ

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

Плюсы и минусы Open Source программ

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

Вторым важным плюсом является то, что мы можем модернизировать данные программы . Хороший программист, разобравшись в коде, может добавить в программу новые опции или улучшить работу уже имеющихся функций. Например, пользователь MacOS не может изменить свою операционную систему, в отличие от Linux , которую каждый может не только настроить по своему усмотрению, но и добавить какие-либо индивидуальные функции. В итоге у него получится совершенно новый продукт, которым очень удобно пользоваться. Если получившаяся программа действительно хороша, то ее можно запатентовать и даже продать (!)

Еще одним неоспоримым плюсом программ является их защищенность от вирусов. Практически все вирусы пишутся под приложения Windows , а вредоносных программ на тот же Linux ничтожно малое количество. Таким образом, вероятность получить вирус, используя операционную систему с открытым кодом, очень мала.

Сегодня многие организации переходят на использование программ именно с открытым исходным кодом. Это позволяет снизить расходы и минимизировать вероятность взлома системы.

Но у любой медали, как известно, имеется две стороны, расскажем о минусах Open Source программ.

При возникновении каких-либо проблем с программным обеспечением обычно обращаются в техническую поддержку. Программы с открытым кодом таковой не имеют. Эта проблема возникает вследствие того, что программа изменялась разными программистами со всей страны или даже мира. Так что искать решение проблемы придется на просторах сети Internet или разбираться самому.

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

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

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

Рынок программных продуктов предлагает большой выбор программного обеспечения (ПО). Наряду с приложениями, приобрести которые можно за определенную плату, существует возможность воспользоваться бесплатными программами.

Бесплатное программное обеспечение (Freeware)

Впервые термин «freeware» появился в 1982 году, его зарегистрировал в качестве товарного знака американский программист Андрю Флеглеман (Andrew Flegleman) для разработанной им коммуникационной программы.

Бесплатно можно скачать:

  • бета-версии программ
  • упрощенные аналоги полноценных пакетов
  • драйверы
  • программы, использование которых подтолкнет к приобретению дополнительных ресурсов.

Достоинство freeware одно - не надо платить деньги, недостатков немного больше:

Практически любая коммерческая программа под Windows имеет свои бесплатные аналоги:

  • Архиваторы (7-Zip)
  • ПО для работы с FTP (FileZilla)
  • Антивирусы (CureIt, Avast!, AVZ)
  • Текстовые редакторы (Notepad++)
  • Браузеры (Mozilla, Firefox, Opera, GoogleChrome)
  • Аудиоплееры (WinAmp)
  • Видеоплееры (VLC, Miro, Media Player Classic)
  • Транскодеры (MediaCoder)
  • Графические редакторы (GIMPshop)
  • Офисное ПО (Apache OpenOffice, LibreOffice)

Бесплатные приложения под Windows доступны в Интернете на сайтах разработчиков. После скачивания архива и установки ПО на компьютере автоматически формируются все необходимые для нормальной работы приложения каталоги и файлы в них. Бесплатные приложения для Android и iOS можно скачать при помощи маркетплейсов PlayStore и AppStore.

Скачивая бесплатные программы, вы рискуете столкнуться с эффектом «троянского коня»: разработчик включает в бесплатно распространяемый пакет другие программы, которые автоматически размещаются на компьютере при установке пакета. Не всегда это ПО безопасно!

Особое место в категории бесплатных программ занимают проекты open source. Часть из вышеперечисленного ПО (Mozilla Firefox, 7-Zip, FileZilla, Notepad++, Miro, VLC, Apache OpenOffice, LibreOffice, Media Player Classic, GIMPshop, Google Chrome) относится именно к этой категории.

Open Source ПО

Программное обеспечение может распространяться с закрытым исходным кодом (Microsoft Windows, MS Office – проприетарное ПО), и с открытым кодом (open source). Появившийся в 1984 году термин «free software» (свободное программное обеспечение) относится к ПО, которое можно бесплатно получить, модифицировать, используя доступные исходные тексты программ, и распространять дальше.

Программы распространяются по лицензии GNU GPL и должны удовлетворять следующим требованиям:

  1. Нет ограничений на использование ПО в определенных областях деятельности.
  2. Исходный код распространяется вместе с исполняемым модулем или его можно получить из доступного источника бесплатно/по умеренной цене. Код должен быть читаемым.
  3. Модифицированная версия распространяется на общих условиях. Допускается изменение названия или номера версии.
  4. Программа доступна всем желающим.

В 1998 году было введено понятие «open source software» – ПО с открытым кодом. Формально, все свободное программное обеспечение можно считать ПО с открытым кодом. Принято относить программы open source к бесплатным, хотя не запрещено их использовать в коммерческих целях. Обычно, оно распространяется по лицензии Apache 2.0. Но есть и другие варианты (подробнее о лицензиях в мире open source см. ).

Преимущества работы с проектами open source:

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

Недостатки:

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

Концепция Open Source основана на повышении надежности и качества ПО за счет обнаружения и исправления ошибок многими пользователями. Находящийся в открытом доступе open source проект постоянно тестируется огромным количеством программистов.

Давно широко внедряет технологию «открытого кода» компания Google. Все ее проекты такого типа, их примерно 200 (изначально и Kubernetes был разработан здесь, а затем передан под управление Cloud Native Computing Foundation), доступны на портале компании GOOGLE OPEN SOURCE. На ресурсе лежат не только коды программ, но и документация по их использованию и поддержке. Насколько широко можно использовать открыто предоставляемый код - указано в лицензии, обычно непосредственно размещаемой в тексте программы.

Компания Apple, открыв исходные коды языка Swift, пытается увеличить количество доступных приложений для Apple. Текущая версия языка на настоящий момент имеет ограничения: чтобы загрузить свою разработку на AppStore, придется приобрести лицензированный Swift. Вся необходимая по языку информация размещена на сайте swift.org и в облачном хранилище GitHub. Выпущен релиз Swift под Linux.

Условно-бесплатное программное обеспечение

Некоторые программы, распространяемые бесплатно, имеют ограничения:

  • по сроку работы
  • по количеству запусков
  • по функциональности

Для ограничения срока работы и числа запусков используется trial-защита – специальные счетчики. В качестве ограниченного по функционалу ПО предоставляют демо-версию или версию с ограниченным сервисом. Иногда разработчик вставляет в код программы рекламу, затрудняющую работу с пакетом. Чтобы избавиться от рекламного баннера, придется заплатить.

Примеры программ с лицензией shareware:

  • Архиватор WinRAR (30 дней)
  • Антивирус Nod32 (30 дней)

AcrobatReader – пример программы, ограниченной по функционалу. Эта программа, нижний сегмент пакета AdobeAcrobat, разрешает только просмотр PDF-файлов. Для полноценной работы с файлами таких типов необходимо купить более полную версию Acrobat’a.

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

Например, компания Oracle бесплатно позволяет скачивать дистрибутив СУБД и утилиты для работы с ней. При этом накладываются ограничения на объем массива обрабатываемых данных. Но для изучения принципов работы с базой данных и отработки навыка написания процедур этот вариант работы с ПО подходит.

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

Выводы

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

Устанавливая бесплатное программное обеспечение, обращайте внимание на дату его создания/обновления и обязательно проверяйте ПО на наличие вирусов. Такими программами пользуются как IT-специалисты, так и пользователи ПК разного уровня.

Проекты с открытым программным кодом представляют интерес для лиц, увлекающихся программированием, и профессионалов. Обычно тексты этих программ можно скачать бесплатно. Компиляция исполняемого модуля и создание для него нужной рабочей среды требует определенных навыков IT-специалиста.

Несомненным достоинством open source проектов является их независимость от вендора, крупные компании предпочитают на их основе создавать корпоративное ПО. Особенно это становится актуальным для госкорпораций в связи с возможными сложностями в приобретении проприетарных продуктов из-за экономических санкций. Сдерживающим фактором при внедрении open source является некоторая неопределенность, связанная с информационной безопасностью: возможны проблемы при прохождении сертификации в ФСТЭК.

Питер Ван Валькенбург, глава отдела исследований Coin Center, член совета директоров Zcash Foundation, объясняет, почему развитие программного обеспечения с открытым исходным кодом важно для построения доверительных отношений и обеспечения безопасности в блокчейн-сетях.

Компьютерный код, лежащий в основе всех крупных криптовалют и проектов открытого блокчейна, разрабатывается как ПО с открытым исходным кодом. Регуляторы и директивные органы, пытающиеся понять, что такое криптовалюты, но не знакомые с таким ПО, могут заблуждаться, считая, что эти системы разрабатываются (и должны разрабатываться) одной или несколькими коммерческими компаниями. Хотя многое известное программное обеспечение действительно разрабатывается подобным образом (например, Windows корпорации Microsoft или RDBMS компании Oracle), с проектами с открытым исходным кодом дела обстоят иначе, и это отличие может и должно формировать общественное мнение. ПО с открытым исходным кодом создаётся в сотрудничестве, бесплатно распространяется, публикуется открыто и развивается в качестве продукта сообщества, а не собственности одной компании или лица. В этом случае нет монополии, нет одной компании или индивидуума, которые бы создавали и продавали ПО, владели бы им. Точно так же, как нет единственной компании, владеющей сетью биткоина, не существует одной-единственной компании, производящей ПО, которое, функционируя на связанных в интернете компьютерах, образует эту сеть. Подобная децентрализация несёт некоторые фундаментальные блага, которые может быть тяжело понять людям, не знакомым с разработкой ПО. Чтобы лучше осознать мощь и характер открытого исходного кода, будет полезно получить некоторое представление об одном особенно успешном образце ПО с открытым исходным кодом. Речь идёт об операционной системе Linux.

Открытый исходный код повсюду

Трудно подсчитать, сколько раз за день вы пользуетесь Linux, ведь именно эта операционная система лежит в основе работы большинства серверов в интернете. Всякий раз, когда вы посещаете Facebook, Google, Pinterest, Википедию и тысячи других крупных сайтов, сервисы, которые предоставляют вам эти (такие разные) сайты, вы имеете дело с компьютерами, которые, скорее всего, работают на операционной системе Linux. Linux можно найти и гораздо ближе; скорее всего, он у вас под рукой. Скажем, операционная система Android-смартфонов основана на Linux. Если у вас есть Chromebook, то вы пользуетесь ноутбуком на основе Linux. Эта операционная система всё чаще используется в телевизорах, термостатах, мультимедийных системах в самолётах, автомобилях и т.д.

Почему это интересно? Потому что Linux - это не продукт одного программиста или даже группы программистов; в отличие от MacOS или Windows, его не разрабатывала одна или даже дюжина корпораций. У Linux есть тысячи соавторов. Как сообщила в 2015 году Linux Foundation (некоммерческая организация, способствующая открытому развитию операционной системы), приблизительно 14 000 разработчиков из более чем 1300 различных компаний внесли вклад в виде фрагментов программного кода. В одном лишь 2015 году в усовершенствовании кода впервые поучаствовали 2355 разработчиков. Таким образом, путём экстраполяции можно подсчитать, что к 2017-му свою лепту внесли приблизительно 18 000 человек, и это число будет расти.

Кто бы мог подумать даже пять лет назад (в 1991 году), что операционная система мирового класса может, словно по волшебству, быть слеплена в единое целое из фрагментов внештатной работы нескольких тысяч разработчиков, разбросанных по всему земному шару и связанных только призрачными нитями интернета?

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

В своей книге Рэймонд рассказывает о том, что открытый исходный код представляет собой революционный метод создания технологий. Linux с тысячами независимых разработчиков, работающих в режиме публичного сотрудничества, служит примером модели открытого исходного кода. Криптовалюты следуют той же модели, но об этом мы поговорим ниже.

Рэймонд выделил несколько преимуществ модели открытого исходного кода. Ключевые в контексте нашей дискуссии - следующие:

  • Каждый достойный образец ПО начинается с удовлетворения личного желания разработчика. Мотивацией большинства разработчиков проектов с открытым исходным кодом служит желание лично использовать создаваемые продукты. Они не связаны контрактом, обязывающим их создать что-то для другого; у них есть личная потребность, которую они удовлетворяют. Таким образом, возникает качественно иная мотивация, порождающая детальное знание проблемы.
  • Хорошие программисты знают, что писать. Великие знают, что переписывать (и использовать повторно). Когда разработка осуществляется открыто, можно избежать избыточности, и проблематичные, усложнённые или излишние коды можно идентифицировать и упростить.
  • Когда вы теряете интерес к программе, то ваш последний долг по отношению к ней состоит в том, чтобы передать её в руки компетентного преемника. Люди приходят в проект с открытым исходным кодом и покидают его в зависимости от своих интересов и компетенции. Никто не застревает в работе над проектами, которые больше не интересны. Появляются свежие головы, предлагающие различные точки зрения на давние проблемы или новые перспективы развития.
  • Восприятие пользователей в качестве коллег-разработчиков - самый лёгкий путь к улучшению кода и эффективной отладке ПО. Многие пользователи открытого исходного кода помогают выявлять проблемы и даже предлагают решения. Грань между потребителем и производителем программ с открытым исходным кодом размыта: работа над ПО прозрачна, она ведётся на глазах у публики, и участие в процессе создания доступно всем.
  • При наличии достаточно большой базы бета-тестеров и разработчиков практически любая проблема будет быстро квалифицироваться, а её решение наверняка окажется для кого-то очевидным. Этот постулат назван Законом Линуса в честь Линуса Торвальдса, создателя ядра Linux, который долгое время оставался главным разработчиком этой операционной системы. Когда процесс разработки кода носит закрытый характер, разработчики рискуют пропустить слабое место или не заметить определённую ошибку. Разработка в среде опытных пользователей с уникальным видением повышает вероятность выявления и устранения багов, что делает ПО с открытым исходным кодом более безопасным и отказоустойчивым.

Результатом такой разработки становится очень надёжный программный код, созданный пользователями для пользователей. Цель состоит не в том, чтобы создать нечто, обогащающее компанию, которая производит и продаёт продукты, а, скорее, в том, чтобы решить проблему, достаточно распространённую, чтобы большое сообщество талантливых программистов с радостью вносило свой вклад. Люди, лишённые навыков программирования, получают от такой модели огромное благо. Бесплатное ПО словно материализуется из воздуха, им может свободно воспользоваться каждый, и оно получает обновления до тех пор, пока пользователи экспертного уровня тоже заинтересованы в его эксплуатации.

Закон и свободное ПО

Действующее законодательство поддерживает и в некоторых случаях стимулирует разработку программного обеспечения с открытым исходным кодом. Оно, как и всё ПО, защищено авторским правом, но его авторы выпускают код с лицензией, позволяющей каждому использовать и модифицировать его без специфического разрешения или любых выплат авторам (то есть с лицензией, разработанной Массачусетским технологическим институтом - MIT).

Некоторые лицензии включают требования, что производные программного обеспечения должны выпускаться на таких же условиях. Благодаря подобной схеме база открытого исходного кода растёт и распространяется. Это явление известно как лицензия свободного программного обеспечения, или LGPL-3 - меньшая стандартная общественная лицензия.

Открытый исходный код в криптовалютах и токен-проектах

Возможно, Linux - крупнейший и самый важный пример модели открытого исходного кода, но есть и другие. В их число входят все крупные криптовалютные и блокчейн-проекты. Все они создают компьютерные сети, позволяющие участникам достигать согласия относительно совместно используемых данных (блокчейна криптовалюты).

Программное обеспечение, дающее любому участнику возможность соединяться с сетью, называется клиентом, и это ПО с открытым исходным кодом. Зачастую клиентское ПО разрабатывают несколько не связанных между собой участников в качестве простейшей версии сетевого ПО (то есть так называемого reference client), на основе которого можно выстроить программное обеспечение для майнинга, кошелька, биржи или другое совместимое с сетью ПО.

Клиент Bitcoin Core - результат работы более чем 450 независимых разработчиков, которые в общей сложности внесли свой вклад в развитие кода более 15 000 раз. ПО доступно для свободного использования и модификации в соответствии с лицензией свободного программного обеспечения MIT, а вся история разработки доступна для обозрения в публичном репозитории на Github - облачном сервисе, позволяющем любому создать аккаунт, загрузить новый код и отслеживать изменения. Если созданный вами репозиторий открыт для всеобщего обозрения, комментариев и предложений об изменениях, то вам даже не нужно платить за аккаунт Github.

Публичный репозиторий также отслеживает так называемые форки оригинального клиента. Форк создаёт клон изначального ПО, который затем можно модифицировать с той или иной целью, не изменяя изначальное хранилище. Разработчики без ограничений совершают форки для репозитория Bitcoin Core на Github, чтобы создать либо специфические приложения, совместимые с биткоином (например, кошелёк для смартфонов), либо новую криптовалюту, которая перестаёт быть совместимой с сетью биткоина и подразумевает создание новой криптовалютной сети (например, так было с лайткоином или Zcash). На сегодняшний день оригинальный клиент Bitcoin Core пережил форк более 10 000 раз, и появляющиеся новые репозитории демонстрируют, что создание производных продуктов продолжается.

На эфириум сейчас приходится как минимум 121 репозиторий, каждый из которых фокусируется на определённом аспекте проекта (например, языках программирования для написания смарт-контрактов, графических браузерах для взаимодействия конечного пользователя с сетью эфириума, совместимых клиентах для участия в работе сети и т.д.). Есть не менее восьми проектов, направленных на разработку совместимых с эфириумом клиентов, а над наиболее популярными клиентами (go-ethereum и Parity) трудятся сотни независимых разработчиков. Код эфириума и его полная история, как и код, а также история биткоина, доступны для публичного обозрения на Github и в других сетевых хранилищах, и все коды выпускаются в соответствии с лицензией LGPL-3, требующей выпускать все будущие производные разработки с такой же лицензией.

Даже недавние проекты, реализованные по инициативе коммерческих стартапов, демонстрируют приверженность кредо открытого исходного кода. Zcash Company разрабатывает протокол Zcash посредством публичного репозитория. Несколько ведущих разработчиков не работают на компанию, а специально созданная некоммерческая организация призвана следить за тем, чтобы постепенно произошёл переход от разработки, осуществляемой компанией, к разработке силами сообщества. База исходного кода Zcash выпускается с лицензией Массачусетского технологического института. Protocol labs, разработчик Filecoin, намерен создать аналогичную открытую модель и уже протестировал её в своём проекте IPFS, работая с кодом в открытых репозиториях и выпуская его с лицензией MIT.

Почему открытый исходный код важен

Криптовалюты и открытые блокчейны способны обеспечить функционал, который был бы регулируемым, если бы его источником была одна-единственная корпорация. Централизованные эмитенты цифровой валюты, такие как Liberty Reserve или E-gold, представляли собой финансовые сервисы и должны были регистрироваться в Управлении Министерства финансов США по борьбе с финансовыми преступлениями, а также получать лицензию, позволяющую переводить деньги, в каждом штате. Если такие токены будут продвигаться на рынке для привлечения инвесторов, они могут быть приравнены к ценным бумагам, и в таком случае потребуется регистрация в Комиссии по ценным бумагам и биржам США. Эти ограничения имеют смысл, поскольку централизованные сервисы связаны с риском того, что сторона, находящаяся в центре всей схемы, не сможет выполнить свои обещания, адекватно протестировав продукт и сделав его безопасным.

Однако технологии вроде биткоина способны предложить аналогичный функционал, будучи открытыми и никому не принадлежащими сетями. Здесь нет никакой корпорации. К этим сетям присоединяются пользователи, а открытое программное обеспечение стимулирует их стремление к сотрудничеству. В конечном счёте все участники приходят к согласию относительно каждого фрагмента данных, необходимых для создания валюты. Децентрализация держится на двух столпах: открытых механизмах консенсуса и программном обеспечении с открытым исходным кодом. Если бы код не был открытым, то как бы участники (не знакомые друг с другом люди в интернете) сумели бы понять систему, к которой они присоединяются, и довериться ей?

На самом деле токен-проекты, основанные на патентованном коде, могут оказаться просто централизованными сервисами, которые прячутся за профессиональным сленгом и «абракадаброй блокчейна». Однако у «истинных» проектов код, создающий децентрализованную сеть, позволяющий участникам доверять друг другу, иметь общую мотивацию и наказывать мошенников, и сам по себе децентрализован. Его разрабатывают у всех на глазах сотни энтузиастов, он доступен всем в мире для использования и модификации и совершенно независим от корпоративных интересов.

Успех программного обеспечения с открытым кодом весьма заметен. Оно не обошло стороной даже крупных производителей коммерческих программ. Компании IBM, Hewlett-Packard, Oracle и Microsoft признают его влияние и в некоторых случаях перенимают его методы. Похоже, что большинству компаний, в структуре которых имеется ИТ-служба, уже достаточно хорошо знакомы продукты с открытым кодом, а зачастую они и активно используют их.

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

Что представляет собой программное обеспечение с открытым кодом?

Вернемся назад в 1997 год. Талантливый разработчик операционной системы Linux Брюс Перенс составляет документ, связанный с подготовкой и распространением дистрибутива версии Debian Linux. Позднее он удалил все упоминания о Debian и представил концепцию, известную сегодня под названием The Open Source Definition. Помимо всего прочего в документе Definition говорилось, что программное обеспечение с открытым кодом должно распространяться без каких-либо отчислений разработчикам, распространители обязаны обеспечить всем желающим бесплатный доступ к исходному коду программ и все дальнейшие доработки и модернизированные варианты программ тоже должны поставляться на этих же условиях.

По сути движение сторонников программного обеспечения с открытым кодом является близким родственником инициативы Free Software Movement, предложенной в 1983 году Ричардом Столлманом. Главной ее целью являлось бесплатное распространение программного обеспечения, освобождение его от стандартных ограничений коммерческих программ. Правила распространения бесплатного ПО регламентируются лицензией General Public License (GPL), которая в октябре 2006 года была утверждена в своей третьей редакции.

Сегодня в мире применяются десятки различных лицензий Open Source Initiative, для каждой из которых разработаны свои собственные специфические правила, требующие изучения со стороны компаний, рассматривающих возможность использования ПО с открытым кодом. Обычно эти правила не накладывают жестких ограничений на желающих обратиться к программам с открытым кодом. Что же касается требований к распространению, им необходимо уделять более серьезное внимание, чтобы избежать потенциальных проблем, связанных с нарушением правил лицензирования.

Почему именно программы с открытым кодом?

Первая причина, по которой компании обращают внимание на программное обеспечение с открытым кодом, очень проста - это цена. И показатели окупаемости инвестиций в модель с открытым кодом наглядно это демонстрируют. ПО с открытым кодом можно загружать, устанавливать и использовать совершенно бесплатно. Поначалу низкие затраты привлекали разработчиков, желающих опробовать новые инструментальные средства или заняться проектированием новых приложений, не вкладывая в это никаких средств. Открывающаяся свобода способствовала тому, что многие из них стали поддерживать движение сторонников ПО с открытым кодом. В результате наряду с тысячами других проектов в мире стало появляться ПО с открытым кодом промышленного уровня, например, операционная система Linux, Web-сервер Apache, сервер приложений Java JBoss и среда разработки Eclipse.

В конце 1990-х годов на программы с открытым кодом наконец обратило внимание и руководство предприятий. В условиях постоянного сокращения бюджетов ИТ-служб разработчики хвастались качеством и экономией, достигаемой при использовании ПО с открытым кодом, и во многих компаниях стали всерьез задумываться о применении программных компонентов с открытым кодом при реализации корпоративных проектов. Первыми крупными предприятиями, которые стали внедрять у себя программное обеспечение с открытым кодом, были компании The Weather Channel, Cendant Travel, Employease и Sabre.

В период глобального роста Internet программное обеспечение с открытым кодом позволяет компаниям быстро наращивать объем своих электронных операций без постоянной закупки новых лицензий на коммерческое ПО. Соответствующие преимущества распространяются также на разработку и тестирование. Таким образом, компании могут опробовать новые вещи без дополнительных расходов, характерных для коммерческого ПО, и обязательного в таких случаях процесса выбивания бюджета.

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

Причины отказа от ПО с открытым кодом

Аргументы против программного обеспечения с открытым кодом, как правило, легко пересчитать по пальцам.

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

    Организация технической поддержки представляет сложность. В начале становления движения сторонников ПО с открытым исходным кодом, когда разработка и поддержка осуществлялись главным образом группами добровольцев или «сообществами», этот вопрос действительно был актуален. Но хотя во многих организациях и пришли к выводу, что поддержки сообщества вполне достаточно для удовлетворения их потребностей, сегодня перед ними открывается множество других возможностей, в том числе и поддержка крупных проектов с открытым кодом компаниями Hewlett-Packard и IBM. В результате утверждение, что «для удушения достаточно перекрыть одно горло» теряет свою актуальность.

    Разработка нового функционала занимает больше времени по сравнению с коммерческим программным обеспечением. На самом деле это во многом зависит от конкретного вида используемого вами ПО. Web-браузер Firefox является лучшим примером того, насколько быстро программное обеспечение с открытым кодом можно приспособить к нуждам пользователей. Можно вспомнить и о том, насколько оперативно разработчики Linux организовывали поддержку новых технологий, в частности портов USB. В этом отношении Linux практически не отставала от Windows. Но что касается корпоративного ПО, встраивание механизмов поддержки новейшей видеоплаты или аудиочипа играет здесь гораздо менее важную роль по сравнению с обеспечением высокой устойчивости и производительности.

    Неопределенность дальнейшего развития и ветвления. Большое разнообразие лицензий на ПО с открытым кодом, а также возможность активного вмешательства конечных пользователей в программный код удерживают корпоративных клиентов от внедрения подобных программ. Но внимательное изучение лицензий на приложения с открытым кодом юристами развеивает большинство из этих страхов. Некоторые поставщики ПО с открытым кодом и независимые компании даже предлагают компенсацию ущерба, поэтому используемые вами приложения с открытым кодом вполне могут стать предметом судебного иска.

С чего начать?

Сегодня в виде продуктов с открытым кодом представлены почти все разновидности ПО делового назначения, начиная с серверов электронной почты и заканчивая системами VoIP. Многие компании в первую очередь обращают внимание на Web-приложения, где есть продукты, существующие на протяжении достаточно длительного времени и уже успевшие доказать свою состоятельность. Обычно упоминают о стеке LAMP (Linux, Apache, MySQL и PHP, Perl или Python в зависимости от конкретной ситуации). Широкое распространение получила Unix-подобная операционная система Linux. Одним из наиболее популярных Web-серверов сегодня является Apache. Система управления базами данных MySQL успешно конкурирует с дорогостоящими коммерческими продуктами. А языки программирования и сценариев PHP, Perl и Python находят широкое применение в качестве средств разработки Web-приложений с открытым кодом. Web-сайты с открытым кодом на основе Java часто опираются на сервер приложений JBoss. Познакомившись поближе с инструментальными средствами с открытым кодом, выявив сходство и различия между ними и коммерческими продуктами, вы откроете для себя и другие возможности. Возможно, удивит и то, что ваши разработчики время от времени на свой страх и риск обращаются к тем или иным продуктам с открытым кодом.

Серверы приложений, конечно, хорошо, но что можно сказать о ПО с открытым кодом для настольных компьютеров?

Конечные пользователи довольно часто применяют различные инструментальные средства с открытым кодом, предназначенные для настольных компьютеров. Ярким примером такого решения является Web-браузер Mozilla Firefox. Офисному пакету Sun OpenOffice отдельные государственные и коммерческие организации отдают предпочтение перед Microsoft Office. Но хотя некоторые игроки и отваживаются погрузиться в неизведанное, устанавливая на своих настоль ных компьютерах операционную систему Linux, Windows продолжает сохранять безусловно доминирующее положение. Дружественные по отношению к конечному пользователю версии Linux (например, LinSpire) не могут нарушить сложившееся положение, потому что обучение пользователей требует времени и денег. Кроме того, большинство коммерческих программных пакетов - от которых зависят многие компании - разрабатываются в первую очередь для Windows и только потом для Linux (если, конечно, версия для Linux вообще выходит в свет).

Можно ли продать продукты с открытым кодом?

Да, конечно, но правила Open Source Initiative запрещают чинить препятствия в продаже вашего кода и всем остальным. И все же многие компании находят способы зарабатывать на продуктах с открытым кодом. Многие, помимо собственно кода, предлагают услуги корпоративной поддержки, которые весьма охотно покупаются компаниями. Другие поставляют два варианта программного кода: один в открытой и бесплатной форме, а другой, включающий в себя дополнительные полезные функции, содержит закрытые компоненты и должен оплачиваться клиентами. Подобная смешанная модель становится все более популярной. Ее активно используют такие компании, как SourceFire, SugarCRM, Alfresco и ряд других.

Другие ресурсы с открытым кодом

Множество программ с открытым кодом можно найти в Internet:

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

    SourceForge. Гигантский сайт для разработчиков программного обеспечения с открытым кодом, объединяющий тысячи проектов с открытым кодом. Часть из них продолжает развиваться, а другие уже прекратили свое существование.

Ресурсы с открытым кодом - официальные и неофициальные

    Open Source Initiative. Некоммерческая организация, считающая основной своей задачей дальнейшее развитие программного обеспечения с открытым кодом и финансируемая рядом игроков, которые уже давно действуют на этом поле.

    Open Source Technology Group. Пожалуй, ведущий в мире проводник технологий с открытым кодом. Именно этому объединению принадлежит сайт новостей Slashdot, а также ресурсы SourceForge и FreshMeat.

    Open Source Risk Management. Предлагает механизмы, обеспечивающие соответствие нормативным требованиям.

    Open Source Development Labs. Организация, главной целью которой является продвижение операционной системы Linux в среде корпоративных клиентов.