19 апреля 2024
Курсы валют по ЦБ РФ USD 93.4409 EUR 99.5797


В ИТ-отрасли объявлено о слиянии за 35 млрд долларов

Открытое и свободное программное обеспечение

07.07.2009 12:25

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

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

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

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

Стоит отметить, что в глобальном представлении открытое ПО включает в себя непосредственно open source software, а также другие разновидности программных продуктов, которые могут распространяться безвозмездно и предоставлять исходный код для внесения изменений. К такому ПО относятся бесплатные (freeware) и свободные (free software) программы.

Итак, термин open source (открытое программное обеспечение) был впервые применен в 1998 году программистами Эриком Реймондом (Eric Steven Raymond) и Брюсом Перенсом (Bruce Perens). Они были уверены в том, что термин free software (свободное программное обеспечение) в английском языке является неоднозначным и в каком-то смысле может даже отпугивать предпринимателей, являющихся потенциальными пользователями такого софта. В настоящее время open source является торговой маркой организации Open Source Initiative, которая занимается распространением ПО с открытым кодом. Кроме того, существует также и специальный комитет, который решает, может ли лицензия той или иной программы носить имя open source.

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

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

Основателем концепции free software является американский программист Ричард Столлмэн (Richard Matthew Stallman). Именно он впервые сформулировал понятие свободного программного обеспечения, в котором отразились принципы открытой разработки программ в научном сообществе, сложившемся в университетах США в 1970-е годы. Столлмэн сформулировал четкие критерии свободного ПО. Эти критерии оговаривают те права, которые автор свободной программы передает любому пользователю. Таким образом, используя свободное программное обеспечение, пользователь получает "четыре свободы": запускать, изучать, распространять и улучшать программу.

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

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

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

Что касается условия распространения и использования программ free software, то зачастую их копирование запрещено, а обратная разработка, изменение, повторное распространение оговариваются в лицензионном соглашении.

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

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

Открытый доступ к исходным кодам программ является также ключевым признаком свободного программного обеспечения, поэтому предложенный позднее Эриком Реймондом термин "Open Source Software" (ПО с открытым исходным текстом) некоторым представляется даже более удачным для обозначения феномена свободного ПО, чем предложенный в свое время Столлмэном "free software".

Заметим, что преимущества свободной разработки для пользователя не следует преувеличивать. Далеко не все свободные программы в равной степени доступны для внесения изменений пользователем, что, с другой стороны, совершенно не связано с лицензией на их распространение. Важную роль при этом играет объем программы: если в ней десятки тысяч строк (как, например, в OpenOffice.org - аналог Microsoft Office), то даже квалифицированному специалисту понадобится довольно много времени, чтобы найти и устранить ошибку. Рассчитывать на разработчиков, которые отреагируют на все замечания и предложения пользователя и немедленно исправят программу, тоже нельзя, так как они не несут перед пользователем никаких обязательств по качеству программы. В этой связи пользователь запатентованной программы может оказаться в лучшем положении.

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

Место свободных программ на сегодняшнем рынке ПО очень значительно, и многие коммерческие и государственные предприятия используют free software прямо или косвенно. Например, все пользователи сети интернет, хоть и опосредовано, задействуют свободную программу Bind, предоставляющую службу DNS. Кроме того, многие организации (в частности предоставляющие услуги через всемирную паутину) используют свободный web-сервер Apache, от работы которого может зависеть непосредственно прибыль предприятия, не говоря уже о серверах на платформе Linux.

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

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

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

Поэтому сегодня существует тенденция, когда большие ИТ-корпорации, такие как Intel, Oracle или IBM стараются оказывать поддержку проектам по разработке свободного ПО, оплачивая работу сотрудников этих проектов, чтобы степень ответственности разработчиков была на высоком уровне. Зачем они это делают, ведь открытое и свободное ПО является для них конкурентным? Ответ прост - они видят в этом выгоду, которую стараются не сделать упущенной, так как каждый день на базе ПО с открытым кодом появляется множество программ, некоторые из которых в последствии могут стать сильными коммерческими продуктами.

Существует несколько основных лицензий, которые используются для распространения свободного ПО в настоящее время: AROS Public License, Лицензия BSD, CDDL, Common Public License, GNU Free Documentation License, GNU General Public License, GNU Lesser General Public License, Лицензия MIT, Mozilla Public License, Open Directory License и др. Для всех свободных лицензий, так или иначе, характерно соответствие принципам копилефта (copyleft - это каламбур от слова копирайт). В противоположность традиционному подходу к авторскому праву, при котором ограничивается свобода копирования произведений, принцип копилефта использует законы об авторском праве для обеспечения невозможности ограничить любому человеку права использовать, изменять и распространять, как само произведение, так и произведения, базирующиеся на нем. Идея копилефта заключается в том, что каждый, кто распространяет программу, как с изменениями, так и без них, не вправе ограничивать свободу ее дальнейшего распространения, либо модификации. Копилефт гарантирует, что каждый пользователь свободен в своих действиях.

Количество лицензий, которые соответствуют Определению понятия open source (открытого ПО), на данный момент насчитывается более пятидесяти. Open Source является торговой маркой организации Open Source Initiative. Существует специальный комитет, решающий, может ли лицензия носить имя open source. Одним из самых больших в мире веб-сайтов для разработчиков открытого ПО является всем известный портал SourceForge.net. На этом сайте разработчики могут размещать и совместно разрабатывать свои программные проекты. В настоящее время на SourceForge.net размещено несколько сотен тысяч проектов, а количество зарегистрированных пользователей превышает один миллион.

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



Источник: DailyComm