Open Source – это программное обеспечение, которое распространяется по лицензии, соответствующей стандартам открытого ПО.
Принцип открытости охватывает не только сферу разработки софта. Например, дизайнеры предоставляют доступ к бесплатным шаблонам и шрифтам.
В некоторых странах государственные учреждения переходят на открытое ПО. В Германии власти города Мюнхен приняли решение перейти на операционную систему LiMux, которая является кастомизированной версией Ubuntu.
В Гамбурге чиновники решили использовать офисный пакет Phoenix, вместо Microsoft Office. Руководство Великобритании перешло с использования формата документов PDF на ODF.
Во Франции жандармерия использует ОС Ubuntu и бесплатный LibreOffice.
- Требования к открытому программному обеспечению
- Open Source проекты — в чем их особенность
- История появления свободного ПО
- Лицензии Open Source
- Примеры проектов с открытым кодом
- Как принять участие в работе над Open Source проектом
- Использование Open Source при разработке торговых роботов
- GEKKO bot
- Zenbot
- OsEngine
Требования к открытому программному обеспечению
Перечислим основные требования, которым должно отвечать приложение, распространяющееся по лицензии Open Source:
- программы распространяются бесплатно;
- ПО поставляется с исходным кодом, если его нет в базовом комплекте, то его можно свободно скачать или получить другим способом;
- код можно изменять и использовать части кода в других проектах, при этом распространять модифицированные приложения следует на условиях лицензии Open Source;
- не допускается дискриминация любых групп людей, например, в США существуют ограничения на экспорт программ, но свободная лицензия не может устанавливать свои запреты;
- лицензия Open Source разрешает все способы использования приложений, таким образом личные моральные убеждения разработчика не мешают распространению, например, пункты типа: «запрещается использовать для генетических исследований» недопустимы;
- все правила, связанные с Open Source лицензией, одинаковы для всех пользователей, дополнительные соглашения, такие как о неразглашении, запрещены;
- лицензия не может быть привязана к программе, разработчик, использующий только часть кода, имеет те права, которые дал полный продукт;
- пользователь может сам выбирать чем он будет пользоваться, например, запрещается требовать, чтобы ПО, поставляемое вместе с Open Source, было обязательно открытым.
Open Source проекты — в чем их особенность
Большинство приложений, распространяемые по лицензии Open Source, имеют следующие отличия:
- программы пишутся теми, кто их использует, поэтому, разработчики следят за кодом, быстро исправляют ошибки и обнаруженные уязвимости;
- большая часть продуктов совместима с несколькими операционными системами;
- сообщество Open Source разработчиков открыто для связи с пользователями, которые могут вносить свои предложения;
- обычно обновления для свободного ПО выходят чаще, чем для коммерческих, поэтому, ошибки устраняются быстрее;
- пользователи, при желании, могут поддержать понравившееся приложение деньгами;
- риск заразить компьютер или смартфон, при установке Open Source программы, минимальный, так как они поставляются с исходным кодом.
История появления свободного ПО
Основателем движения свободного ПО считается Ричард Столлман. Во время работы в лаборатории искусственного интеллекта, работающей при Массачусетском технологическом институте, он участвовал в разработке свободного программного обеспечения. Например, в написании текстового редактора EMACS для PDP компьютеров.
В 1984 году Столлман ушел с работы в МТИ и основал проект GNU. Его энтузиасты придумали термин «свободное программное обеспечение» и разработали манифест GNU.
В 1985 году Столлман создал фонд Free Software Foundation (FSF), который использовался для развития свободного программного обеспечения за счет добровольных пожертвований.
В 1989 году была представлена первая лицензия General Public License (GPL), которая защищала пользователей, давала права на копирование, изменение и распространение приложений. Позже появились лицензия Массачусетского технологического института и BSD, разработанная в Калифорнийском университете.
К 1991 году была разработана независимая операционная система, но у нее не было ядра. В том же году Линус Торвальдс представил ядро Linux, которое в 1992 году получило лицензию GPL.
В середине 90-х годов прошлого века рынком Open Source начали интересоваться крупные компании. Первой была компания Netscape. Выпущенный ею браузер в то время считался одним из наиболее популярных. В 1998 году она открыла его исходники. После того, как компания прекратила свое существование, на основании кода Navigator был создан браузер Mozilla Firefox.
Сейчас развитием и продвижением открытого программного обеспечения занимается компания Open Source Initiative, которая была основана в 1998 году.
В чем смысл open source:
Лицензии Open Source
Существует несколько отличающихся друг от друга Open Source лицензий. Чтобы было проще в них разобраться предоставляем следующий рисунок, на котором показано чем они отличаются друг от друга.
Теперь расскажем про наиболее популярные из них.
- Лицензия MIT была разработана в одном из ведущих учебных заведений США – Массачусетском технологическом институте. Она практически полностью совпадает с трехпунктной версией BSD лицензии, в ней только добавлен один пункт, в котором запрещается использование имени автора в рекламе. Под ней вышли: XFree86, Expat, PuTTY и другие продукты.
- Лицензия BSD впервые появилась в начале 80-х годов прошлого века для распространения одноименной операционной системы. Существуют следующие варианты этой лицензии:
- Original BSD license первая оригинальная лицензия, ее еще называют четырехпунктной.
- Modified BSD license трехпунктная лицензия, в ней исключен один пункт, который обязывает в рекламе указывать что данное приложение использует ПО разработанное в Калифорнийском университете.
- Лицензия Intel, которая была разработана для приложений, защищенных патентами. Она не поддерживается организацией Open Source Initiative.
- GNU General Public License – это самая популярная лицензия. Она появилась в 1988 году. В 1991 году появилась улучшенная версия GPL v2, которая до сих пор не потеряла актуальности. В 2006 году была принята лицензия GPL v2.
- GNU Lesser General Public License или сокращенно GNU LGPL создавалась для компоновки библиотек с ПО распространяемым по другим лицензиям.
- Лицензия Apache разрешает изменять и распространять программы как в исходных кодах, так и в двоичных. Кроме прав на продукт предусматривается также передача патентов.
- Guile похожа на GNU GPL, но в ней добавлен пункт, который разрешает объединять открытое ПО с несвободным, поэтому его нельзя считать строгим «авторским левом», но, тем не менее, она совместима с GNU GPL.
- Лицензия Common Public License была разработана IBM для своих разработок. Она позволяет менять код и применять его в коммерческих программах. Эту лицензию использовала Microsoft для Windows Installer XML.
- Mozilla Public License (MPL) – это сложная лицензия, не соответствующая строгому авторскому леву.
- Лицензия Sun Public License аналогична MPL, но есть мелкие изменения, например вместо компании Netscape значится Sun Microsystems.
Существуют также другие, менее распространенные лицензии, например, Guile, Common Public License, Mozilla Public License и другие.
Примеры проектов с открытым кодом
Разработка ядра Linux и приложений GNU стали основой для других приложений Open Source. Приход Netscape заинтересовал крупные IT-компании. С тех пор было разработано много различных продуктов.
Вначале упомянем Debian, который с 1994 по 1995 годы поддерживал фонд свободного ПО, а позже была создана некоммерческая организация «Программное обеспечение в общественных интересах», которая продолжила финансирование проекта.
В рамках этого проекта была создана не только операционная система, но и офисный пакет LibreOffice, браузер Firefox, почтовый клиент Evolution, приложение для записи CD дисков K3b, видеоплеер VCL, редактор для работы с изображениями GIMP, и другие продукты.
Некоммерческая компания Apache Software Foundation появилась как Open Source проект, который занимался поддержкой ПО. Самый популярный продукт этой организации – это одноименный веб-сервер. Сейчас компания поддерживает большое количество проектов, распространяющихся по лицензии Apache. Среди спонсоров ASF назовем Microsoft, Amazon и Huawei.
Еще одна компания, занимающаяся Open Source проектами — Red Hat. Главной разработкой которой является операционная система на ядре Linux. Она занимается не только софтом, но и технической поддержкой, и обучением специалистов. В 2018 году ее приобрела IBM.
Корпорация Google также развивает свободное ПО. Она разрабатывает и поддерживает следующие проекты: библиотека TensorFlow для разработки систем машинного обучения, язык Go, программу Kubernetes, предназначенную для автоматизации развертывания ПО и другие продукты.
В науке Open Source касается не только программного обеспечения, но и публикации работ, рецензирования и поддержки образовательных ресурсов.
В 1991 году Пол Гинспарг организовал при Лос-Аламосской лаборатории электронный архив arXiv, в котором можно найти труды не только по физике, но и по медицине, математике и другим наукам. В ЦЕРН также имеется портал с открытыми научными трудами.
Как принять участие в работе над Open Source проектом
Если хотите попрактиковаться в программировании и пополнить свое резюме, то участие в разработке Open Source продукта – это именно то, что нужно. Расскажем поэтапно что для этого нужно.
В первую очередь требуется зарегистрироваться на GitHub и выбрать проект в котором вы будете участвовать. Он должен быть интересен вам. Хорошо если в нем будет много заданий, которые вам по силам. Также следует обратить внимание на популярность проекта, ее можно определить по количеству звезд.
Важно также определить насколько активно идет разработка и когда были внесены последние изменения. После выбора интересного проекта требуется найти куратора и наладить с ним взаимодействие.
На следующем этапе нужно выбрать задачу. Для начала рекомендуется выбирать самое простое задание. Главное, чтобы вы смогли его решить. После этого перенесите проект к себе и установите все необходимые инструменты.
После того, как вы решили задачу, внесите предложения по изменению кода в репозитории. Для этого нужно загрузить свой код на GitHub и нажать кнопку «Pull request». После этого потребуется ввести название своего реквеста и описание. После этого нужно ждать, когда куратор примет или отклонит предложенные изменения.
Если после того, как вы взялись за выполнение задачи, появились другие срочные дела, или вы поняли, что не справитесь, то можно отказаться от задачи. Это нормально, но нужно сообщить о своем решении кураторам.
Использование Open Source при разработке торговых роботов
Торговый советник или робот – это программа, которая совершает сделки на бирже по заранее заданному алгоритму. Они могут торговать как полностью самостоятельно, так и в полуавтоматическом режиме. Во втором случае они просто отправляют сигналы о сделке, а трейдер принимает окончательное решение.
Перечислим преимущества торговых роботов:
- Трейдеру не нужно самому следить за ценами.
- Советники действуют строго по заданному алгоритму, у них отсутствуют эмоции.
- Роботы реагируют намного быстрее чем человек.
Но кроме плюсов у автоматических советников есть также и минусы:
- в нестандартной ситуации, например, при резком скачке курса, советник может среагировать неадекватно, и трейдер потеряет деньги;
- за использование некоторых профессиональных советников нужно платить абонентскую плату.
Далее рассмотрим несколько Open Source торговых советников. Их можно загрузить с сайта GitHub, установить и использовать для торговли. Можно также улучшить исходный код и создать робота под себя.
GEKKO bot
Это проверенный советник, который появился много лет назад. Многие трейдеры начинали торговать с помощью этого робота.
В данный момент его уже не поддерживают создатели, но он доступен для свободного скачивания с GitHub.
Его можно использовать на криптобиржах, он может собирать рыночную информацию и выставлять ордера.
GEKKO bot имеет множество настроек, с помощью которых можно протестировать торговый алгоритм, а также корректировать и оптимизировать систему заключения сделок. Он имеет набор готовых стратегий, который можно настраивать.
Также имеется возможность создать свою торговую систему. Он поддерживает 23 биржи среди которых: Bitfinex, EXMO, Bittrex, Bitstamp.
Zenbot
Торговый криптовалютный советник Zenbot использует для торговли искусственный интеллект. Есть возможность настраивать его в соответствии с вашими пожеланиями. Он совместим с большинством операционных систем.
Может совершать высокочастотные сделки, торговать несколькими активами одновременно. Кроме этого этот бот может зарабатывать деньги на арбитраже криптовалют. Но у него нет графического пользовательского интерфейса. Способен торговать на следующих биржах: Bittrex, Quadria, GDAX, Pollniex и Gemini.
OsEngine
OsEngine – это набор приложений для торговли на бирже. В него входят:
- Data – используется для загрузки исторических данных из различных источников.
- Optimizer – применяется для тестирования одной стратегии.
- Tester – для проверки нескольких торговых алгоритмов, но без изменения параметров. Может работать одновременно на нескольких таймфреймах и инструментах.
- Miner – ищет прибыльные паттерны на графике. Найденные формы можно использовать в реальной торговле.
- Trader – модуль для торговли.
OsEngine использует более тридцати встроенных торговых систем, среди которых есть трендовые (например, стратегии Била Вильямса или Джесси Ливермора), контртрендовые (например с использованием линий балласта, Боллинжера) и арбитражные.
Может использоваться на некоторых международных биржах (доступные подключения LMAX, InteractivBrokers и ниндзя-торговля), на МОЕХ (Транзак, Quik, Мост Астс, Plaza 2, SmartCom) и криптовалютных биржах (Bitstamp, Bitfinex, Кракен, LiveCoin, ExMo, Binance, ZB, Bitmex, BitMax). Также совместим с одной форекс биржей Oanda.
Есть и другие популярные Open Source торговые советники, например, TradingBot, для торговли на Московской бирже через брокера Atentis или простой робот TradingBot.
Если вам понравилась статья, то подписывайтесь на мой телеграм канал.