Сотня лучших полезных программ с открытым исходным кодом. Открытый исходный код

Все программное обеспечение на LiveCD и DVD является свободным программным обеспечением с открытым исходным кодом (свободное и открытое ПО), с некоторыми исключениями (Flash, Opera, Acrobat Reader и другие) расположенные в репозитории non-oss . Когда мы говорим о свободных программах , мы имеем в виду свободу, а не цену .

Что такое свободное программное обеспечение (free software)

Движение в поддержку свободного программного обеспечения было начато Ричардом М. Столлманом, основавшем проект GNU (рекурсивный акроним: GNU"s Not Unix) в 1984 году. Годом позднее им же был основан Фонд свободного программного обеспечения (Free Software Foundation, известный также как FSF).

Свободные программы можно разделить по 4 основным "степеням свободы":

  • Свобода использования программы любым способом.(свобода 0)
  • Свобода изучения принципов работы программы, а также адаптирования ее для своих нужд.(свобода 1) Для этого необходим доступ к исходному коду.
  • Свобода распространения копий программы. Вы можете поделится с соседом. (свобода 2)
  • Свобода улучшать программу и опубликовывать внесенные вами улучшения, для пользы всего сообщества (свобода 3). Для этого необходим доступ к исходному коду.

Несвободное программное обеспечение называется собственническим (проприетарным, от "proprietary"). Важно не путать условно-бесплатные и бесплатные(freeware) программы со свободными, это разные вещи.

Что такое Программное обеспечение с открытым исходным кодом (Open Source Software)

Движение в поддержку свободного программного обеспечения с открытым исходным кодом началось в начале 90-х годов людьми, придававшими особое значение технической и экономической выгоде от использования открытого кода и открытой модели разработки свободных программ. Тем не менее, есть небольшое количество программного кода, признанного обществом открытого кода свободным, поэтому часто применяется термин FOSS (бесплатное и свободное программное обеспечение с открытым кодом). Ибо, строго говоря, понятия "свободное программное обеспечение" (Free Software) и "программное обеспечение с открытым исходным кодом" (Open Source Software) вовсе не тождественны, как можно подумать. Например, лицензионный договор программного продукта может разрешать исследовать его исходный код, при этом запрещая вносить в него изменения и/или распространять его копии. В этом случае продукт является открытым (Open Source), но не является свободным (Free).

Выгоды от использования свободного программного обеспечения

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

Исправление ошибок

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

Совместное использование

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

Знать и контролировать то, что и как делает программа

В подавляющем большинстве случаев вы не можете знать, что именно делает собственническая программа. Таким образом, вы не можете быть уверенным в том, что программа делает только то, что вы от нее просите, ибо некоторые действия она может делать без вашего ведома (например, отсылать своим создателям информацию о вас как о пользователе, или обладать недокументированными возможностями различного характера). Разумеется, в случае использования свободной программы, вы полностью застрахованы от подобных неприятностей. Ведь в вашем распоряжении находится исходный код программы, что позволяет вам точно знать, что и как делает программа. Если же те или иные её возможности и/или особенности работы вас не устраивают, вы можете внести в код необходимые вам изменения.

Технические выгоды

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

Экономические выгоды

Свободное программное обеспечение предоставляет компаниям возможность разделить между собой стоимость разрабатываемого программного обеспечения. К примеру, компании Novell и RedHat соперничают в разработке одинаковых программ, но тем самым помогают друг другу. IBM и HP также являются конкурентами, но они тоже внесли свой серьёзный вклад в разработку ядра Linux, тем самым разделив затраты на разработку. Свободное программное обеспечение позволяет иметь конкурентоспособный рынок технической поддержки, и потому качество её, как правило, весьма высокое. С собственническим программным обеспечением ситуация прямо противоположная: только компания-разработчик имеет доступ к исходному коду и способна предложить соответствующую техническую поддержку, и в этом проявляется некоторая степень монополиста. Кроме того, к экономическим выгодам необходимо отнести вопрос стоимости приобретения программного продукта. В том случае, если он является свободным, вы можете один раз скачать его копию из Интернета (или приобрести на твёрдом носителе), установить его на любое число компьютеров и использовать его неограниченное время. Если же продукт собственнический, то условиями лицензионного договора использование продукта может быть весьма сильно ограничено (например, с ограничением числа установок и/или времени использования).

Я не программист. Почему меня должно волновать вышеизложенное?

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

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

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

Такое программное обеспечение предоставляется пользователям бесплатно, причем не только программы, но и операционные системы. Оно создается и разрабатывается самими пользователями, которые выкладывают свои создания в Интернет. Наиболее популярные программы регулярно обновляются, так как их использует множество людей. В качестве примера можно привести Mozilla Firefox или Thunderbird. Если программа не обновляется регулярно, возможно, для этого не хватает необходимых технических ресурсов – весь вопрос в том, сколько у программы пользователей. Высокая частота обновлений является определенным гарантом безопасности использования программы. Хотя, если после установки обновления выясняется, что программа не работает (например, в новой версии операционной системы не поддерживается Skype), есть два пути решения проблемы: попытаться найти помощь на форумах в Интернете или устранить проблему самостоятельно, что относительно трудно.

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

Некоторые разработчики ПО поддерживают общественные организации и предлагают им программы бесплатно или со скидкой через соответствующие некоммерческие организации, например, через широкую партнерскую сеть TechSoup, участники которой находятся в разных странах. В России программу осуществляет Теплица социальных технологий (ООО "Спиро"). Обратившись к программе инфоДонор вы можете выяснить может ли ваша организация участвовать в программе. Также следует помнить, что когда мы выбираем операционную систему, мы заодно выбираем и способ работы в нашей организации. Например, если мы выбрали Linux, мы не сможем использовать решения Adobe, а если мы выбрали Windows, нам придется приобрести лицензии по числу компьютеров. В каждом случае есть свои плюсы и минусы. Нужно тщательно продумать, что именно требуется нашей организации, каковы критерии эффективного использования оборудования, и принимать решение после основательного анализа.

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

Появление программ данного класса связано с идеей создания ПО, свободного от ограничений в обороте. В 1998 г. по предложению американских разработчиков Брюса Перенса и Эрика Рэймонда создана организация "Инициатива открытых кодов"

(Open Source Initiative, OSI). Это движение разработало и опубликовало "Определение программного обеспечения с открытым программным кодом".

Лицензия программ с открытым кодом предусматривает следующие правомочия:

  • 1) на доступ к исходному коду;
  • 2) на изменение программы для ЭВМ;
  • 3) на распространение измененной программы на тех же условиях, на основании которых данное программное обеспечение было получено лицензиатом;
  • 4) лицензиата на использование программы для ЭВМ по назначению;
  • 5) на дальнейшее распространение пользователем программы без уплаты отчислений и вознаграждений.

В качестве дополнительных правомочий лицензии программ с открытым кодом могут содержать:

  • 1) описание изменений, производимых каждым из лицензиатов;
  • 2) отказ от предоставления гарантий,
  • 3) отказ от ответственности за убытки;
  • 4) регулирование патентных вопросов;
  • 5) положения о совместимости данной лицензии с другими лицензиями;
  • 6) регулирование авторского права на текст открытой лицензии;
  • 7) указание на произведенные изменения в полученном открытом коде;
  • 8) положения о применимом праве и компетентном суде.

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

С января 2012 г. в Российской Федерации впервые введено понятие программы с открытым кодом, как программного обеспечения, распространяемого на условиях простой (неисключительной лицензии) или исключительной лицензии, которые предоставляют пользователю доступ к исходным кодам программы .

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

Концепция свободного программного обеспечения основывается на четырех основных свободах:

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

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

Существуют следующие виды лицензий с открытым программным кодом:

  • – General Public License (GPL);
  • – Apache Software License;
  • – лицензия Berkeley Software Distribution (BSD);
  • – лицензии Massachusetts Institute of Technology (MIT);
  • – Mozilla Public License (MPL) и др.

Общий смысл GPL, BSD, MIT заключается в расширении полномочий пользователя программы и одновременном возложении на него некоторых обязанностей, которые не свойственны лицензиям, предусмотренным законодательствами РФ и зарубежных стран. Но в настоящее время разработка такого программного обеспечения стала поддерживаться и в Российской Федерации. Кроме того, приняты Концепция об административной реформе в Российской Федерации и Федеральная целевая программа "Электронная Россия".

Перечислим главные характеристики открытого программного обеспечения .

1. Свободное распространение

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

2. Исходный код

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

  • 3. Вторичные продукты. Лицензионное соглашение должно давать право на модификацию и разработку собственных производных продуктов, на распространение программного обеспечения на тех же условиях, что и лицензия исходной программы.
  • 4. Сохранение авторского исходного кода. Лицензионное соглашение может ограничивать распространение продукта, исходный код которого был модифицирован третьими лицами. Соглашение может допускать распространение прикрепленных файлов с исходным кодом для модификации программы во время создания. Лицензия должна давать право на распространение собственной программы, созданной путем модификации исходного кода. Лицензионное соглашение может содержать требования об изменении названия программного обеспечения или номера версии производных продуктов.
  • 5. Никаких ограничений в отношении частных лиц или групп пользователей. Лицензионное соглашение должно быть доступно всем обратившимся.
  • 6. Никаких ограничений в отношении области применения. Лицензионное соглашение не должно содержать ограничения на использование программы в определенной области деятельности, например в коммерческой или в области других исследований.
  • 7. Распространение лицензии. Права, прилагающиеся к программе, должны распространяться на всех, кто ее использует. Дополнительная лицензия для этого не требуется.
  • 8. Лицензионное соглашение не должно быть специальным для части продукта. Права, получаемые с комплексом ПО, распространяются на каждый отдельно взятый элемент комплекса. Если программа взята из дистрибутива и используется вне его, на программу распространяются условия лицензионного соглашения дистрибутива.
  • 9. Лицензионное соглашение не должно содержать ограничений в отношении других ПО , т.е. программных средств, которые распространяются вместе с лицензионным ПО. В лицензии также не должно быть требований об открытости программных средств, не создающихся по данному лицензионному соглашению.
  • 10. Лицензия должна быть технологически нейтральной. Условия лицензионного соглашения не могут быть основаны на отдельных технологиях и стиле интерфейса.

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

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

В 2006 г. в Российской Федерации во исполнение приказа Мининформсвязи России от 29.06.2006 № 83 "О мероприятиях Мининформсвязи России на 2006 год по реализации основных положений Послания Президента Российской Федерации Федеральному Собранию Российской Федерации" был разработан план мероприятий по содействию разработке, а также использованию в органах государственной власти свободного ПО (с открытыми исходными кодами). План содержал следующие мероприятия:

  • 1) разработка требований и рекомендаций по использованию открытых стандартов и спецификаций при разработках программ для ЭВМ для государственных и муниципальных нужд;
  • 2) оценка экономической эффективности внедрения ИСО/МЭК 26300:2006 (формат открытого документа для офисных применений);
  • 3) организация участия представителей администрации связи Российской Федерации в международных организациях по стандартизации в сфере информационных технологий, а также содействие и координация участия представителей российских компаний в международных организациях по стандартизации (в случае если участие государственных органов в таких организациях не предусмотрено);
  • 4) разработка и внедрение порядка получения (включая определение объема и оценку) и схемы управления правами на программное обеспечение для ЭВМ, получаемыми заказчиками в результате выполнения работ для государственных и муниципальных нужд;
  • 5) совершенствование механизмов мониторинга условий конкурсов в целях контроля обеспечения разработчикам различного программного обеспечения равных рыночных условий;
  • 6) разработка концепции и плана мероприятий в целях повышения уровня профессионального образования и подготовки пользователей в сфере инфокоммуникационных технологий;
  • 7) разработка перечня типов (разновидностей) свободных программ для ЭВМ, целесообразность и обоснованность преимущественного использования которых доказана мировой практикой и (или) признается значительным количеством участников рынка, а также разработка для различных целей, в том числе для целей стандартизации, иных классификаторов;
  • 8) разработка концепции и плана мероприятий по развитию в Российской Федерации, в том числе для государственных и муниципальных нужд, сервис-ориентированной модели распространения программ для ЭВМ.
  • антикоррупционность;
  • безопасность;
  • защита национальных интересов;
  • дружественность к гражданам;
  • легкость адаптации;
  • экономическая выгода.

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

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

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

Постановлением Правительства РФ от 18.10.2007 № 1447-р закрепляется право использования в школах Российской Федерации любого ПО с открытым программным кодом. В 2009 г. Федеральная служба судебных приставов отчиталась о внедрении ПО с открытым кодом – Open Office, с целью реализации государственной политики в области использования свободного ПО. "В апреле – мае 2009 г. проведены сеансы видеоконференцсвязи с руководителями территориальных органов ФССП России с использованием свободного программного обеспечения.

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

Концепция развития свободного ПО в Российской Федерации предполагала создание до 2010 г. следующих продуктов:

  • 1) стандартных комплексных офисных решений для государственных гражданских служащих, а также работников бюджетной сферы;
  • 2) стандартных решений для обеспечения работы образовательных учреждений;
  • 3) ПО для пунктов коллективного доступа к сети Интернет;
  • 4) ПО для интернет-сайтов государственных услуг;
  • 5) интеграционной платформы для целей электронного правительства;
  • 6) защищенных решений для критически важных объектов;
  • 7) развитие сервис-ориентированной модели распространения программ для ЭВМ.

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

Использование программ с открытым кодом на территории РФ позволит не только разнообразить программы для ЭВМ, но и увеличить число разработчиков, уменьшив тем самым количество монополистов. Кроме того, это символизирует развитие качественно новых явлений во взаимоотношениях автора программы для ЭВМ и пользователя программного обеспечения с открытым кодом на территории РФ. Положительным фактором является и то обстоятельство, что территориальный признак, применяемый законом для исключительных прав, отсутствует в программах с открытым кодом. Таким образом, использование такого класса программ на территории РФ будет способствовать устранению многих правонарушений в области авторского права.

С введением в 2012 г. в Национального стандарта РФ ГОСТ Р 54593-201 свободное программное обеспечение является безопасной, надежной и финансово-привлекательной платформой для построения информационных систем в корпорациях и государственном секторе. Свободное программное обеспечение обеспечивает: технологическую независимость разработки и использования программного обеспечения от монополиста; независимость в выборе аппаратной платформы; низкую начальную стоимость оборудования; раннее обнаружение дефектов в программном обеспечении и возможность быстрого их исправления; отсутствие обязательной платы за право использования продуктов.

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

Итак, раскроем правомочия, передаваемые по различным видам лицензий на программы для ЭВМ с открытым программным кодом.

  • См.: Национальный стандарт Российской Федерации ГОСТ Р 54593 201 "Информационные технологии. Свободное программное обеспечение. Общие положения", утвержденный приказом Министерства промышленности и торговли РФ и Федерального агентства по техническому регулированию и метрологии от 06.12.2011 № 718-ст.
  • Утверждена Президентом РФ 9 сентября 2000 г.: см. на сайте МИД РФ mid.ru/ns-osndoc.nsf/d06bd3f5303124fe432569fa003a70ff/4db27 49a4b55f02f432569fb004872a4?OpenDocument.
  • Указ Президента РФ от 12.05.2009 № 537 "О Стратегии национальной безопасности Российской Федерации до 2020 года".

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

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

Существует несколько критериев соответствия для программ с открытым исходным кодом:

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

Рассмотрим один из самых ярких примеров программного обеспечения, которое сопровождает открытый исходный код, получивший всемирное распространение. В начале 90-х годов прошлого века финский студент Линус Торвальдс разработал абсолютно новую операционную систему, основанную на Unix, которая известна сегодня как Linux . Система была выпущена под лицензионным соглашением GNU General Public License , где содержалось определение открытого исходного кода с юридической точки зрения. Довольно большое количество программистов стало использовать и совершенствовать эту операционную систему. Собрав доработки от программистов по всему миру в единое целое, в 1994 году Линус Торвальдс выпускает Linux версии 1.0. До этого нумерация версий велась начиная в нуля.

Со временем появилась некая всеобщая обеспокоенность потребителей, касающаяся отсутствия гарантии, а также технической поддержки подобного программного обеспечения. Поэтому компания Red Hat Software создает официальный программный пакет Official Red Hat Linux, который им удается продавать. Наиболее значительной особенностью такой продаваемой операционной системы стало наличие гарантии и технической поддержки , что немаловажно.

Некоторые другие компании также занимались разработкой новых версий Linux, предназначенных для продажи, причем эти пакеты были дополнительно укомплектованы различным программным обеспечением , среди которого: интернет-браузер Mozilla, созданный на ядре Netscape, веб-сервер Apache, язык для подготовки веб-сценариев Perl, формат графических файлов PNG и многие другие. Кроме того, существуют версии перечисленных программных пакетов, разработанные для операционной системы Windows и Android. Это говорит о том, что программы с открытым кодом доступны не только для компьютеров, но и мобильных устройств.

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

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

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

С помощью open source проектов можно усовершенствовать свои навыки, исправляя чужие ошибки и создавая что-то новое. Можно найти проект, который будет полезен и для собственного бизнеса, например, в медицине или e-commerce. Кроме того, как практикующие программисты, один из лучших способов мотивировать себя на занятия программированием - это работа с open source проектами. Специально для читателей блога Geekbrains мы собрали список таких проектов из разных сфер деятельности:

Пакет программного обеспечения для работы с медицинскими изображениями. 3D Slicer доступен на нескольких платформах, в числе которых Windows, Linux и OS X.

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

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

Платформа для управления контентом, на которой работают миллионы веб-сайтов и приложений.

Менеджер для работы с медиаданными, предназначенный для создания больших централизованных медиа-библиотек.

Свободная операционная система типа Unix.

Офисный пакет для совместной разработки с функционалом, как у Microsoft Office или OpenOffice.org.

Система для создания курсов. Бесплатное веб-приложение, которое преподаватели могут использовать для создания эффективных Интернет-сайтов для обучения. Moodle стала очень популярной среди педагогов по всему миру в качестве инструмента для создания динамических веб-сайтов для своих студентов.

ПО для создания и управления обучающим аудио и видео контентом.

Мультиплатформенная система управления корпоративным контентом написанная на Java. Работает с несколькими базами данных (в том числе MySQL, Oracle, PostgreSQL, SQLLite, и другие), а также поддерживает несколько методов аутентификации.

Софт для создания частных и общественных облаков.

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

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

Проект создан силами Open Source сообщества и предназначен для обеспечения лучших решений для предприятий с помощью бизнес аналитики.
Основные области применения:

  • создание отчетов
  • анализ
  • сбор Данных
  • платформа бизнес-аналитики

Java™ разработчики могут использовать компоненты проекта для быстрого создания собственных решений для бизнес аналитики.

Модульная open source система управления цифровыми данными.

Бесплатный софт для e-commerce.

Библиотека для быстрого фильтрования и сортировки больших коллекций - до 100000 элементов в браузере.

Языки c open source

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

R - открытый язык программирования и программная среда для статистических расчетов и графики. Язык R широко используется среди статистов для разработки статистического программного обеспечения и анализа данных.

Где найти больше open source проектов?

Один из самых крупных веб-сервисов для совместной разработки IT-проектов. Абсолютно бесплатен для open source проектов. Девиз сервиса “Social coding” можно перевести, как “Кодим вместе”.

Предназначен популяризовать open source проекты. С помощью инструментов, которые там предоставлены, разработчики создали мощное программное обеспечение в более чем 430,000 проектах; на ресурсе более 3,7 млн зарегистрированных пользователей. Популярный каталог объединяет более 41,8 млн клиентов с проектами open source и обслуживает более 4800000 скачиваний в день.

Цель Fossdroid - продвигать open source приложения на Android с помощью проекта F-Droid. Fossdroid берет свои данные из F-Droid и организует приложения в порядке, похожем на Google Play, с возможностью просмотра их по популярности.

Как узнать является ли ПО open source и каковы правила его использования?

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