...

Программа с открытым кодом что это

Что такое открытый исходный код?

image

Открытый исходный код (от англ. Open Source Software, OSS) — это термин, обозначающий программное обеспечение, предназначенное для публичного доступа, где любой желающий может просматривать, изменять и использовать его код по своему усмотрению.

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

Интернет — один из первых проектов по модели открытого исходного кода

В 50-х и 60-х годах исследователи, разрабатывающие ранние интернет-технологии и телекоммуникационные протоколы, полагались на открытую исследовательскую среду. Сеть агентств перспективных исследовательских проектов (Advanced Research Projects Agency Network, ARPANET), которая позже стала основой современного Интернета, поощряла открытый процесс обратной связи и свежий взгляд на разрабатываемый продукт. Группы разработчиков совместно использовали и дорабатывали код друг друга. Позже различные форумы помогли облегчить коммуникацию и разработать единые стандарты коллективной разработки. В основу Интернета как технологии были заложены такие ценности, как совместное сотрудничество, экспертная оценка, коммуникация и открытость.

Как работает модель разработки открытого исходного кода?

Модель разработки открытого исходного кода существует благодаря сообществу разработчиков. Продукты на основе открытого исходного года выпускаются с соответствующей открытой лицензией, поэтому любой разработчик может просматривать или изменять их исходный код. Многие проекты с открытым исходным кодом размещены на GitHub, где можно получить доступ к репозиториям или принять участие в разработке. Linux®, Ansible и Kubernetes являются примерами популярных продуктов с открытым исходным кодом. Иногда к процессу разработки программного обеспечения с открытым исходным кодом подключаются крупные IT-компании. Они берут за основу уже написанный код, исправляют баги, уязвимости и добавляют новые функции. Все эти улучшения затем можно внести обратно в первоначальный проект, на благо сообщества разработчиков.

Linux и открытый исходный код

Linux — это бесплатная операционная система с открытым исходным кодом, выпущенная по стандартной общественной лицензии (General Public License, GPL). А ещё это крупнейший в мире проект программного обеспечения на основе открытого исходного кода. Операционная система Linux была в своё время создана как бесплатная альтернатива операционной системы MINIX, основанной на принципах и дизайне Unix. Создатели так хотели подчеркнуть заложенные при разработке принципы свободного программного обеспечения, что даже первоначально назвали своё детище «GNU» (от англ. «GNU’s Not UNIX» — «GNU — не Unix»), хотя система всё равно была построена на основе Unix. Поскольку Linux до сих пор выпускается по открытой лицензии, любой желающий может запускать, изучать, изменять и распространять исходный код. Даже продавать копии своего измененного кода, если это делается в соответствии с лицензией.

В чем разница между свободным, закрытым и открытым программным обеспечением?

Под программным обеспечение с открытым исходным кодом долгое время понималось «свободное программное обеспечение». Движение за свободное программное обеспечение было основано Ричардом Столменом в 1983 году как раз в рамках проекта GNU. Это движение организовалось вокруг идеи пользовательских свобод: свободы видеть исходный код, изменять и распространять его по своему усмотрению. Свободное программное обеспечение появилось в ответ на проприетарное или закрытое программное обеспечение. Софт с закрытым исходный кодом недоступен для просмотра, изменения или использования в разработке других продуктов. Только владельцы закрытого исходного кода имеют законное право доступа к нему. А рядовые пользователи, купившие лицензионную копию, платят лишь за использование программы по назначению. Само название «свободное программное обеспечение» вызвало много путаницы, ведь оно не означало бесплатность продукта, а только свободное использование на усмотрение пользователя. Кристин Петерсон попыталась решить эту проблему в 1998 году, когда предложила термин «открытый исходный код». Он лучше фокусировался на сути и не сбивал с толку тех, кто плохо знаком с концепцией движения за свободное программное обеспечение. Петерсон предложила термин «открытый исходный код» взамен использовавшегося ранее «свободное программное обеспечение» на одном из совещаний рабочей группы, которая занималась распространением практики свободного программного обеспечения на более широкий рынок. Цель этой группы была в том, чтобы мир узнал, что программное обеспечение лучше, когда оно общедоступно и его можно свободно модифицировать. Эрик Рэймонд был одним из членов вышеупомянутой группы. В 1997 году он опубликовал некоторые из ключевых положений, касающихся открытого кода, в своем чрезвычайно влиятельном эссе «Собор и базар». В 1998 году, отчасти в ответ на это эссе, корпорация Netscape Communications открыла исходный код своего проекта Mozilla, выпустив его в виде бесплатного программного обеспечения. Позже этот код стал основой для Mozilla Firefox и Thunderbird. Поддержка Netscape Communications программного обеспечения с открытым исходным кодом заставила сообщество задуматься о том, как подчеркнуть практические аспекты этого движения для бизнеса. Разница между «открытым исходным кодом» и «свободным программным обеспечением» позже была закреплена документально. «Открытый исходный код» служит термином, защищающим методологические, производственные и бизнес-аспекты свободного программного обеспечения. «Свободное программное обеспечение» остаётся ярлыком для обсуждений, в которых подчеркиваются философские аспекты тех же вопросов, поскольку они связаны с концепцией свобод пользователя. В 1998 году была основана организация Open Source Initiative, формализовавшая термин «открытый исходный код» и установившая его общеизвестное определение. Хотя с конца 90-х до начала 2000-х к движению за открытый исходный код относились с осторожностью, оно неуклонно шло к тому, чтобы стать отраслевым стандартом, коим и является сегодня.

Каковы основные достоинства открытого исходного кода?

Есть множество причин, по которым люди предпочитают открытый исходный код проприетарному программному обеспечению, но наиболее распространенными из них являются: Экспертная оценка. Поскольку открытый исходный код находится в свободном доступе, а сообщество разработчиков очень активно — код активно проверяется и постоянно улучшается разными программистами. Прозрачность. Если необходимо точно знать обо всех изменениях, которые произошли в коде, и на каком этапе разработки находится проект — открытый исходный код как нельзя лучше решит этот вопрос. Ведь проверять и отслеживать изменения может кто угодно, в реальном времени. Надежность. Запатентованный код зависит от одного автора или компании, контролирующей и развивающей его. Открытый исходный код живёт в полной независимости от своих первоначальных авторов. Ведь он постоянно обновляется активными сообществами разработчиков. Множество заинтересованных программистов регулярно тестируют и обновляют код, чтобы сделать его лучше. Гибкость. Открытый исходный код можно использовать для решения огромного спектра разных задач. При этом, нет никакой зависимости от навыков специалистов, которые запустили проект. Ведь на помощь, так или иначе, придут другие разработчики и дадут свою экспертную оценку при внедрении новых решений. Более низкая стоимость. Разработка программного обеспечения с открытым исходным кодом обычно держится на чистом энтузиазме. А за готовые продукты, даже если и просят какую-то обязательную плату, взамен предлагают поддержку и помощь в настройке. Нет привязки к поставщику. Свобода для пользователя означает, что в любой момент можно взять открытый исходный код и применить его, как угодно, на своё усмотрение. Открытое сотрудничество. Наличие активных сообществ разработчиков означает, что можно легко и быстро найти помощь, ресурсы и различные видения решения задачи, выходящие за рамки интересов определённой группы разработчиков или компании.

Что такое опенсорс-проекты и почему открытый исходный код — это хорошо

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

Начало официальному распространению свободного ПО положил Ричард Столлман. В 1985 году он основал фонд Free Software Foundation, главной миссией которого стала поддержка free software. Незадолго до этого он начал разработку GNU — свободной операционной системы. К 1991 году разработчикам удалось создать независимую работоспособную ОС, а Линус Торвальдс выпустил ядро Linux с открытым кодом.

Ричард Столлман провозгласил четыре основных принципа free software:

  • свободное использование;
  • свободное изучение;
  • свободное распространение;
  • свободное улучшение программ.

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

В 1998 году разработчики придумали альтернативу термину «свободное ПО» и внедрили понятие open source, чтобы сменить парадигму с бесплатности на доступность. В том же году возникла организация Open Source Initiative (OSI), которая занимается популяризацией открытого кода.

Одна из первых известных программ, код которой стал опенсорсным, — браузер Navigator от компании Netscape. Он был одним из самых популярных браузеров в 90-е годы. Исходный код Navigator стал основой для браузера Mozilla Firefox.

Опенсорс и бесплатность — не одно и то же. Термин «опенсорс» указывает на то, что код программы открыт, но готовое решение может не быть бесплатным. Да, зачастую оно бесплатно, потому что по открытому коду другие разработчики тоже могут собрать продукт. Но бывает, что код открыт, а сама программа продаётся, например, в App Store.

Сергей Бережной, директор по взаимодействию с разработчиками в Яндексе

Какие есть лицензии у опенсорс-проектов

Продукты с открытым кодом могут распространяться по разным лицензиям — как придумает разработчик. Но их делят на две категории: копилефтные и пермиссивные.

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

Пермиссивные лицензии, напротив, позволяют делать в том числе и закрытые программы. Известный представитель этого типа лицензий — MIT. Согласно ей, при использовании нужно сохранять авторские права и уведомлять о лицензиях готовых продуктов, основанных на открытом коде.

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

Наши сервера в основном тоже работают на опенсорсных решениях. Многие средства разработки на Java, C++, Phyton, которые мы используем, — тоже опенсорс, и они компилируются в production-код.

Сергей Бережной, директор по взаимодействию с разработчиками в Яндексе

Зачем опенсорс начинающим айтишникам:

  1. Не нужно платить за софт для работы, потому что есть опенсорс-решения практически для любой задачи. Некоторые из них можно использовать для коммерческой деятельности — то есть создания платных программ.
  2. Можно изучать открытый код различных проектов, смотреть, как решение устроено внутри. Это неплохой метод совершенствования навыков программирования.
  3. Можно взаимодействовать с серьёзными специалистами без устройства на работу к ним в компанию. Опенсорс позволяет не только смотреть, как устроен продукт, но и пытаться что-то создавать для его развития.

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

Сергей Бережной, директор по взаимодействию с разработчиками в Яндексе

Почему Яндекс выкладывает свои продукты в опенсорс

Есть немало продуктов, которые компания выложила в открытый доступ. Из крупных решений можно назвать следующие:

  • CatBost — продвинутая библиотека градиентного бустинга на деревьях решений.
  • ClickHouse — колоночная аналитическая СУБД, позволяющая выполнять аналитические запросы в режиме реального времени на структурированных больших данных.
  • YTsaurus — одна из основных инфраструктурных BigData-систем, разработанных в Яндексе.
  • YDB — распределённая отказоустойчивая реляционная система управления базами данных.

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

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

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

Сергей Бережной, директор по взаимодействию с разработчиками в Яндексе

Открытый исходный код 101: Что это такое?

Sam B.

Sam B. Last updated Jun 17, 2014

Read Time: 4 min

Проекты с открытым исходным кодом доступны везде, в Интернете, на вашем компьютере и на вашем мобильном телефоне. В этой статье мы рассмотрим:

  • Определение открытого исходного кода
  • Популярные примеры проектов с открытым исходным кодом
  • И как принять участие в проекте с открытым исходным кодом

1. Что такое ПО с открытым исходным кодом?

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

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

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

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

2. Популярные примеры

Доступны миллионы проектов с открытым исходным кодом. Ниже приведен список некоторых очень популярных и примечательных примеров.

  • WordPress, одна из самых популярных систем управления контентом в Интернете, используется миллионами людей.
  • PHP — самый популярный язык веб-программирования в Интернете, включающий Facebook и более 80% Интернета.
  • Audacity — это бесплатный, простой в использовании многодорожечный аудиоредактор и рекордер.
  • OpenOffice — это бесплатная альтернатива Microsoft Office.
  • Проект Android Open Source является официальной мобильной операционной системой в качестве проекта с открытым исходным кодом.
  • Операционная система Firefox — это мобильная операционная система, разработанная и поддерживаемая Mozilla.

3. Как это работает

Проект с открытым исходным кодом обычно включает три этапа. Давайте быстро рассмотрим каждый этап.

Этап 1. Содействие

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

Раньше, когда я работал над проектами с открытым исходным кодом, мне приходилось ждать недели (и в одном случае, два месяца), прежде чем я получил ответ, но вы должны сидеть там и ждать, пока получите все важные электронные письма с подтверждением.

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

Если вы ищете вдохновение в проекте, над которым нужно начать работать, всегда есть много интересных проектов, особенно если вы смотрите на сайтах, таких как GitHub, SourceForge и Google Code.

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

Этап 2: фиксация

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

Это можно сделать с помощью GitHub или на платформе SourceForge. Обычно ваши изменения получают ответ от организации или команды, отвечающей за проект: да или нет, указывая, будут ли ваши изменения включены в проект. Если да, то настало время для стадии распространения. Если нет, то возвращаемся на первую стадию.

Этап 3. Распространение

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

В итоге

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

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

При подготовке материала использовались источники:
https://www.securitylab.ru/analytics/535677.php
https://academy.yandex.ru/journal/opensource
https://code.tutsplus.com/ru/—101——cms-21278t

Оцените статью