Open source

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

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

Отличие open source от free-software

Термин free-software (свободное программное обеспечение) появился в 1985 году благодаря разработчику Ричарду Столлману, сотруднику Массачусетского технологического института. В то время он работал над несколькими свободно распространяемыми программами, в том числе над текстовым редактором для мини-компьютеров. После того как эту программу продали коммерческой компании, он в 1983 году основал проект, названный GNU. Это была полностью свободная UNIX-совместимая операционная система с набором таких же свободных прикладных программ.

Развитием этого проекта стал созданный Столлманом и его командой энтузиастов некоммерческий фонд Free Software Foundation. Его деятельность основывалась на следующих принципах:

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

В соответствии с философией Free Software Foundation программное обеспечение считалось свободным, если удовлетворяло всем четырем пунктам. Однако здесь возникали определенные коллизии:

  • Свободное ПО не обязательно должно быть некоммерческим, его можно распространять и использовать на платной основе.
  • Термин “free” в англоязычной среде часто означает не только «свободный», но и «бесплатный» — то есть программа могла распространяться бесплатно, но при этом быть недоступной для изучения и/или изменения, что противоречит принципам Free Software Foundation.

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

Первым продуктом, реализованным на принципах открытого исходного кода, стал браузер Netscape Communicator — на тот момент главный конкурент Internet Explorer. Основатели OSI разработали определение открытого исходного кода и его критерии, взяв за основу Руководство по свободному программному обеспечению Debian (DFSG). Они выделили 10 требований, которым должна соответствовать лицензия open source. Мы остановимся на ключевых из них:

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

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

  • Free-software ставит в приоритет право человека (пользователя) свободно распространять, использовать и изучать программное обеспечение.
  • В концепции open source акцент сделан на удобстве открытого исходного кода в плане разработки, модернизации и поддержки ПО.

Но на практике эти различия зачастую нивелируются и «в народе» оба понятия используются если не как тождественные, то как близкие синонимы.

Виды лицензии open source

На первый взгляд, концепции open source/free-software и лицензии не совместимы друг с другом. И первое время энтузиасты открытого исходного кода действительно не использовали лицензионные соглашения. Однако опыт одного из основоположников Open Source Initiative показал, что даже максимальная свобода должна быть регламентирована, особенно если речь идет о продукте интеллектуального труда.

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

  • Public Domain (общественное достояние). Такие лицензии относятся чаще всего к творческим материалам. Эти работы являются общественным достоянием и принадлежат всему обществу, а не отдельным авторам и разработчикам. Ими можно пользоваться как угодно, не спрашивая разрешения. Соответственно, на них не распространяется авторское право, интеллектуальная собственность, законы о товарных знаках и патентах. Примером подобной лицензии является СС0 от Creative Commons.
  • Permissive (разрешительные). По своему характеру они похожи на public domain, но не требуют отказа от авторского права. Такие лицензии практически не ограничивают использование программного продукта пользователями и разработчиками. Они также не ограничивают применение других лицензий к продуктам, производным от исходного, то есть не являются копилефтными. Примерами таких лицензионных соглашений являются BSD, MIT, Apache, WTFPL.
  • Copyleft. Название категории производный антоним от copyright, то есть такие лицензии дают право распространять копии и производные от исходного продукта без разрешения автора или владельца авторских прав. Однако распространение должно подчиняться той же лицензии, что и исходный продукт. То есть нельзя делать проприетарным софт, являющийся производным от свободного. Примерами copyleft-лицензии являются Creative Commons Attribution ShareAlike и GPL.

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

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

Для пользователей:

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

Для индивидуальных разработчиков:

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

Для корпораций:

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

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

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

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

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

Примеры ПО с открытым исходным кодом

Исторически первым программным продуктом, официально признанным open source, стал браузер Netscape Communicator. Изначально созданный на коммерческих началах, он стал проигрывать в конкурентной борьбе Internet Explorer от Microsoft, что вынудило его разработчиков открыть исходный код программы. Впоследствии на основе этого браузера был разработан также открытый Mozilla Firefox.

Другими известными примерами свободного ПО являются:

  • OpenOffice — текстовый редактор, аналогичный по функциям и интерфейсу платному пакету Microsoft Office;
  • графический редактор GIMP, возможности которого не уступают функционалу платного Adobe Photoshop;
  • WordPress — система управления контентом, используемая в сайтах-блогах, новостных ресурсах;
  • Android — мобильная операционная система для смартфонов и планшетов, которая сегодня установлена на более чем 2,5 миллиардах устройств;
  • Linux (GNU/Linux) — десктопная операционная система, которая благодаря своей открытости популярна у разработчиков, системных администраторов и других IT-специалистов.

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

Другие термины на букву «O»

Objective-C
OpenCV
Oracle Database
OSINT

Все термины

(рейтинг: 5, голосов: 4)
Добавить комментарий