вопрос 47 что такое открытое программное обеспечение
Что такое открытое программное обеспечение?
Открытое программное обеспечение (OSS) — это децентрализованная модель разработки и публичного распространения исходного кода для свободного сотрудничества и равноправного производства. Также эта модель называется «движением за открытый исходный код».
В чем разница между открытым и закрытым программным обеспечением?
Принцип открытого исходного кода — это способ мышления и сотрудничества приверженцев открытого исходного кода. В основе этой философии лежит интеллектуальная свобода и базовые принципы: прозрачность, сотрудничество, предоставление, вовлеченность и сообщество. Свободный обмен идеями и наработками между участниками сообщества стимулировал творческий, научный и технологический прогресс во многих отраслях: образование, государственный сектор, юриспруденция, здравоохранение и промышленность. Благодаря этому движению мировое сообщество получило возможность сотрудничества, обмена исходным кодом программ и содействия достижению как личных, так и групповых целей.
Открытое программное обеспечение создается участниками сообщества совместно и постоянно контролируется: участники сообщества могут использовать этот код, редактировать его и обмениваться им друг с другом. Обмен идеями, наработками и кодом среди разработчиков стимулирует создание более инновационных программных решений как на коллективном, так и на индивидуальном уровне. В результате ПО получается масштабируемым и гибким, что дает любому разработчику возможность изменять, улучшать и повторно распространять его для многократного использования и повышения качества. Открытое программное обеспечение базируется на принципах равноправного производства и массового сотрудничества, что способствует разработке более устойчивого ПО для конечных пользователей.
Закрытое программное обеспечение (CSS) — это собственное ПО, которое не распространяется в общедоступном виде. Так как это программное обеспечение зашифровано, исключительные права на законное копирование, изменение, обновление и редактирование исходного кода принадлежат только его авторам. Закрытое ПО накладывает ограничения на действия с приложением, запрещая конечным пользователям изменение, копирование и распространение исходного кода и обмен им.
Помимо открытого и закрытого исходного кода есть еще свободное открытое программное обеспечение (FOSS), которое отражает еще одну идеологию доступа к ПО. В рамках FOSS существует Фонд свободного ПО (FSF), предназначенный для защиты свобод пользователя, и Инициатива открытого исходного кода (OSI), обеспечивающая техническое соответствие критериям надежного ПО. Существует множество разновидностей бесплатных лицензий на ПО, которые допускают использование, изменение и продажу ПО: Лицензии GPL, LGPL и BSD.
Вот несколько самых популярных лицензий на открытое программное обеспечение:
История Unix® и Linux
В 1969 году компания AT&T® Bell Labs начала разрабатывать Unix как закрытый продукт с возможностью лицензирования.В течение последующих десяти лет появилось несколько версий Unix, в числе которых была версия V6 — первая версия, вышедшая за пределы Bell Labs.
Принципиально новый язык программирования вскоре привлек к этому коду внимание научного сообщества. Калифорнийский университет в Беркли начал разработку собственной системы Unix, и вскоре появилась версия для обмена опытом между учебными заведениями Berkley Software Distribution (лицензия BSD). Параллельно с этим разработчики AT&T развивали свою версию Unix: так появилась System V. В конечном итоге обе эти версии были объединены, породив унифицированное седьмое издание Unix, которое впоследствии стало основой для таких систем: Sun Solaris, FreeBSD, NetBSD и OpenBSD.
В 1984 году Ричард Столлман создал свободный клон Unix и назвал его GNU (это акроним от «GNU’s Not Unix»). Эта версия была открыта для свободного использования, изменения и распространения.В 1991 году Линус Торвальдс создал ядро для операционной системы Linux. Будучи объединенным с компонентами FSF и BSD, ядро Linux становится полноценной операционной системой, которая в настоящее время работает в различных архитектурах и принята или поддерживается разработчиками Unix старой школы.
Открытый исходный код на предприятиях
Корпоративное открытое программное обеспечение — это нечто большее, чем просто ПО с открытым исходным кодом: это сборка одной библиотеки с открытым исходным кодом, распространяемой по разрешительной лицензии и работающей на открытом программном обеспечении. Корпоративное открытое программное обеспечение должно быть протестировано и откорректировано, а его безопасность должна быть тщательно проверена компетентными профильными специалистами. Также корпоративное открытое программное обеспечение должно предоставлять такие удобные возможности, как единый вход в систему (SSO) и интеграцию с платформами SSO и управления каталогами.
Как правило, корпоративные ИТ-среды требуют крупных вложений и тщательного планирования, что зачастую приводит к тому, что к моменту установки ПО приложения уже устарели. Помимо этого, установка приложений часто связана с дополнительным обучением и сертификациями, указанными в соглашениях об обслуживании. Тем не менее, жизненный цикл корпоративного открытого программного обеспечения предсказуем, несмотря на разный срок службы информации и компонентов. Так, срок службы важных приложений достаточно длительный: например, жизненный цикл Red Hat® Enterprise Linux составляет 10 лет.
Универсальность, безопасность, развитие, экосистема, доступность обучения и стабильность открытого программного обеспечения делает его более привлекательным, чем коммерческое, для многих компаний и частных лиц. Преимущества использования открытого исходного кода: стоимость и экономия, гибкость настройки кода и свобода использования разработок всего сообщества вместо привязки к одному поставщику. Но у открытого исходного кода есть и свои недостатки: недостаточная поддержка, плохая документация, излишняя сложность, навязчивая реклама и уязвимости.
Те, кому все еще требуется закрытое ПО, вынуждены сталкиваться с устаревшими версиями, ширпотребом, завышенными или непредвиденными расходами, запутанными лицензионными соглашениями и зависимостью от одного поставщика. Однако, некоторые компании все же ценят работу с одним поставщиком за возможность централизованных закупок, масштабируемые продукты корпоративного класса, профессиональное взаимодействие, регулярные обновления, отсутствие необходимости в дополнительном программировании, а также за интеграцию с приложениями и продуктами.
Больше чем софт: что такое код open source и для чего он нужен
Согласно определению на Open Source Initiative, Open Source Software или программное обеспечение с открытым исходным кодом — это ПО, «исходники» которого доступны для просмотра и изменения. Исходный код можно использовать, чтобы создавать свои модификации софта, а также свободно распространять и даже продавать их.
Принцип открытости со временем охватил не только сферу программирования, но и другие области. Дизайнеры могут размещать в открытом доступе бесплатные шрифты и шаблоны, программисты — коды мобильных приложений и онлайн-игры, ученые — исследования.
В последние годы потребителями открытого ПО становятся целые страны. Французская жандармерия использует на своих компьютерах свободное ПО Ubuntu, а другие министерства переходят с Microsoft Office на бесплатный LibreOffice. Этот офисный пакет также используют министерства обороны Нидерландов и Италии, муниципалитеты Албании и Испании. А правительство Великобритании перешло с формата PDF в документации на опенсорс-формат Open Document Format for Office Applications (ODF) по умолчанию. РБК Тренды разобрались, в чем плюсы и минусы открытого софта.
С чего начиналось свободное ПО
С 1952 по 1955 год компания IBM начала выпускать IBM 701, первый коммерчески доступный компьютер. ЭВМ не продавали конечным потребителям, а сдавали в аренду научным институтам, военным компаниям и госпредприятиям. Машины поставлялись без операционной системы и программ. Ученые и инженеры начали писать софт сами и делились им с коллегами из других компаний, у которых были аналогичные ЭВМ.
Со временем коммерческих моделей компьютеров становилось больше, и они стали доступны обычным пользователям. Однако под каждую из этих моделей придумывали отдельное ПО. Компании-производители создавали каждый свою операционную систему: BESYS, Compatible Time-Sharing System или CP/CMS. Эти ОС начинали продавать вместе с ПК, и иногда они стоили дороже самого компьютера.
Разработчик Ричард Столлман присоединился к лаборатории искусственного интеллекта при Массачусетском технологическом институте (MIT). Он принимал участие в работе над свободным ПО, например, над EMACS — текстовым редактором для мини-компьютеров семейства PDP. Позднее редактор продали коммерческому дистрибьютору. В 1984 году Столлман решил основать проект свободного ПО под названием GNU (рекурсивный акроним от англ. GNU’s Not UNIX).
В рамках этого проекта энтузиасты придумали термин «свободное ПО» и сформулировали его критерии: использование, изучение, шеринг и улучшение. Они опубликовали манифест GNU. В 1985 году Столлман основал фонд Free Software Foundation (FSF) для развития свободного ПО за счет пожертвований. В 1989 году появилась первая версия лицензии GPL — General Public License («Универсальная общественная лицензия GNU»). Она должна защитить свободу всех пользователей программ, давать права на копирование, модификацию и распространение софта. Столлман добавил в лицензию понятие «авторское лево» в противовес «авторскому праву», по которому пользователи всех производных программ получают все оригинальные права создателя. Позднее появились другие лицензии, которые позволяют использовать свободное ПО, например, лицензия MIT от Массачусетского технологического института или лицензия BSD от Калифорнийского университета в Беркли.
К 1991 году разработчикам удалось создать независимую работоспособную ОС, но ей не хватало ядра. Тогда Линус Торвальдс выпустил ядро Linux с открытым кодом, а в 1992 году лицензировал его по GPL.
В середине 1990-х годов в open source пришла первая крупная компания Netscape. Ее браузер Navigator был одним из самых популярных в мире, но с появлением Internet Explorer он стал вытесняться с рынка. В 1998 году в Netscape решили открыть исходный код своего браузера. Год спустя компании не стало, но исходный код Navigator стал основой для одного из самых популярных браузеров — Mozilla Firefox.
В 1998 году возникла организация Open Source Initiative (OSI), которая занимается популяризацией открытого кода. В том же году разработчики придумали альтернативу термину «свободное ПО». Они решили внедрить понятие open source, чтобы сменить парадигму бесплатности на доступность. Впоследствии разработчики Эрик Реймонд и Брюс Перенс написали «Определение Open Source».
В 2014 году представители фонда поддержки открытых проектов Linux Foundation заявили, что в будущем 80% стоимости технологий будет приходиться на открытый код и только 20% — на платные программы.
Плюсы открытого кода
Обсуждения плюсов и минусов и активны по сей день. Однако многие разработчики сходятся в общем понимании позитивных и негативных сторон опенсорс-проектов.
Для пользователей
Для разработчиков:
Для корпораций:
Минусы open source
Плагиат. Коммерческие структуры могут использовать открытый код для своих продуктов без указания его авторства. Иногда они вносят минимальные изменения в код, чтобы выдавать его за собственный. Подобное случилось с участниками проекта Leela, которые разработали бесплатный шахматный движок Chess Zero с настраиваемой нейронной сетью. Его использовала компания ChessBase, которая выпустила шахматную программу Fat Fritz. Пакет программ ChessBase Fritz компании стоит от €79 до €99. При этом она отрицает, что каким-либо образом задействовала открытый код.
Аналогичная история была и с Amazon Web Services, которая запустила CloudWatch Synthetics Recorder, расширение Chrome для записи взаимодействий с браузером. Однако данный сервис оказался полностью скопирован с проекта Headless Recorder, созданного разработчиком Тимом Нолетом. В AWS факт плагиата не признавали.
Отсутствие поддержки. Открытый код может использоваться в тех проектах, о которых его авторы даже не подозревают. Таким образом, они не могут оказывать должную поддержку. Кроме того, существует риск, что разработчик небольшого проекта отойдет от дел, а продолжать его дело будет некому, и код начнет устаревать. Проект Libraries.io обнаружил более 2 400 библиотек с открытым кодом, используемых минимум в 1 тыс. других программ, не получавших должного внимания со стороны опенсорс-сообщества. Для потребителя такой программы это может стать проблемой. К примеру, когда программист Азер Кочулу удалил свою библиотеку Leftpad из интернета, проблемы возникли у Facebook, Netflix и других проектов.
Незамеченные уязвимости. Каждый открытый проект зависит от более мелких. В этой цепочке зависимостей легко может возникнуть дыра в безопасности, которую могут долго не замечать. В 2014 году такая уязвимость в безопасности Heartbleed была обнаружена в OpenSSL — программе с исходным кодом, используемой практически всеми веб-сайтами, обрабатывающими платежи с банковских карт. Она делала все эти ресурсы уязвимыми для атак хакеров и кражи данных. По данным GitHub, 17% всех уязвимостей создаются со злонамеренными целями. Исследователи отмечают, что они могут просуществовать до четырех лет, прежде чем будут устранены.
Проекты с открытым кодом
Проекты GNU и Linux послужили основой для многих продуктов. А приход компании Netscape позволил привлечь внимание ИТ-гигантов, которые со временем начали активно вкладываться в open source.
Проект Debian, одной из старейших операционных систем, основанных на ядре Linux, с момента своего основания разрабатывался открыто. Фонд свободного программного обеспечения спонсировал проект с 1994 по 1995 год, а затем создатели организовали некоммерческую организацию «Программное обеспечение в общественных интересах» для финансирования Debian. Проект включает популярные бесплатные программы, такие как LibreOffice, браузер Firefox, почту Evolution, устройство записи дисков K3b, медиаплеер VLC, редактор изображений GIMP и программу просмотра документов Evince.
Организация Apache Software Foundation тоже начиналась как открытый проект по развитию одноименного программного обеспечения, в том числе веб-сервера Apache. Данный сервер считается одним из наиболее популярных. Он позволяет запускать сайты небольших проектов и малого бизнеса на WordPress. В наше время разработчики поддерживают множество софтверных проектов, которые имеют открытую лицензию Apache Software License. Спонсорами ASF выступают такие гиганты как Microsoft, Huawei и Amazon Web Sevices.
Компания Red Hat, производитель программного обеспечения на основе операционной системы Linux, возникла в 1995 году. Она не только выпускала софт, но и занималась технической поддержкой и обучением системных администраторов и разработчиков. В 2018 году компанию купила IBM.
Google развивалась благодаря Linux и открытому ПО. Компания сама поддерживает такие проекты как библиотека машинного обучения TensorFlow, язык программирования Go, ПО для автоматизации развертывания приложений Kubernetes и другие. В 2017 году Google открыла портал для 2 тыс. своих open source проектов. Компания делится своими наработками в области открытого кода, а также рассказывает о поддержке новых инициатив.
Microsoft, которая изначально была против open source, в последние годы также изменила отношение к свободному ПО. В 2018 году компания передала 60 из 90 тыс. своих патентов на разработки Open Invention Network (OIN) — организации, которая владеет патентами на программное обеспечение открытой экосистемы GNU/Linux и предоставляет право на их бесплатное использование. Чуть позже корпорация приобрела портал репозиториев открытого года GitHub, а также активно принимает участие в развитии открытых проектов, в том числе, Linux.
Организация Open Source Design объединяет дизайнеров, которые разрабатывают проекты с открытым кодом. Она существует более пяти лет. В работе организации принимают участие UX-дизайнеры Mozilla, GNOME, Fedora, Canonical (Ubuntu), WordPress, Drupal, Libre Office, «википедии» для дизайнеров XWiki и других компаний.
В науке опенсорс-подход распространяется не только на открытое ПО, но и на публикации работ исследователей, открытое рецензирование и развитие открытых образовательных ресурсов. Еще в 1991 году физик Пол Гинспарг основал электронный архив arXiv при Лос-Аламосской национальной лаборатории для публикации в открытом доступе препринтов. Теперь там публикуются работы не только по физике, но и по медицине, математике и еще ряду направлений. Европейская организация по ядерным исследованиям (ЦЕРН) поддерживает не только выпуск оборудования с открытым исходным кодом и открытой лицензией, но и собственный портал открытых данных. Ученые применяют инструменты с открытым кодом также для того. чтобы раскрывать методологию своих исследований. К примеру, они используют Open Notebooks для документирования рабочих процессов.
Продукты с открытым кодом используют не только специалисты, но и обычные пользователи, причем иногда они даже не подозревают об этом. LibreOffice, OpenOffice и NeoOffice позволяют бесплатно работать с текстовыми документами, таблицами, графиками, рисовать и делать презентации. 7-Zip, файловый архиватор с высокой степенью сжатия, помогает экономить место на ПК и передавать большие файлы. Графический редактор GIMP способен заменить Photoshop, так как включает инструменты цветокоррекции, фильтры, рисующие инструменты, маски и слои.
Примеру опенсорс-проектов следуют и корпорации, которые открывают свои программы для улучшения. Так, Microsoft решила поделиться кодом приложения «Калькулятор» для Windows, чтобы открытое сообщество предлагало для него исправления и новые функции.
Открытый исходный код в наши дни помогает поддерживать технологии искусственного интеллекта, блокчейна и сложных вычислений. Согласно отчету Red Hat, который опросил 1 250 ИТ-лидеров по всему миру, 90% этих предприятий используют открытый исходный код: 64% компаний задействуют такое ПО для модернизации инфраструктуры, 54% — для разработки приложений, 53% — для цифровой трансформации. За последние два года эти показатели увеличились на 11%, и в будущем открытый код, вероятно, поможет заменять ручные процессы автоматизированным управлением на программном обеспечении, способствуя инновациям.
Открытое программное обеспечение
Открытое программное обеспечение (англ. open-source software ) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет пользователю принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода, если это позволяет совместимость лицензий, или через изучение использованных алгоритмов, структур данных, технологий, методик и интерфейсов (поскольку исходный код может существенно дополнять документацию, а при отсутствии таковой сам служит документацией).
Содержание
Открытое и свободное ПО
Подавляющее большинство открытых программ является одновременно свободными. Определения открытого и свободного ПО не полностью совпадают друг с другом, но близки, и большинство лицензий соответствуют обоим.
Отличие между движениями открытого ПО и свободного ПО заключается в основном в приоритетах. Сторонники термина «open source» делают упор на эффективность открытых исходников как метода разработки, модернизации и сопровождения программ. Сторонники термина «free software» считают, что именно права на свободное распространение, модификацию и изучение программ являются главным достоинством свободного открытого ПО.
Определение открытого программного обеспечения в понимании Open Source Initiative
Вынесенное OSI определение признается за руководство многими другими организациями — например, порталом SourceForge.net.
OSI накладывает на публичную лицензию десять требований, которые изначально были основаны на Debian Free Software Guidelines.
Лицензии
Исходные коды открытых программ выпускаются либо как общественное достояние, либо на условиях «свободных» лицензий — как, например, GNU General Public License или BSD License. Свободная лицензия позволяет использовать исходный код программы для своих нужд с минимальными ограничениями, не противоречащими определению OpenSource.org. Таким ограничением может быть требование ссылаться на предыдущих создателей или требование сохранять свойство открытости при дальнейшем распространении той же самой или модифицированной открытой программы (копилефт). В некоторых случаях (например, Apache или FreeBSD) эти ограничения очень малы, в других (например, GNU General Public License) достаточно распространять ПО вместе с исходным кодом и текстом лицензии, не изменяя её.
Открытое программное обеспечение в России
В настоящее время открытое программное обеспечение не получило широкого распространения в России, среди причин чему называют широкое нелегальное распространение собственнического программного обеспечения.
Открытое программное обеспечение может свободно устанавливаться и использоваться во всех школах, офисах, вузах и на всех личных компьютерах и во всех государственных, бюджетных и коммерческих организациях и учреждениях России и в странах СНГ, согласно открытому лицензионному соглашению GNU (GPL).
Открытое программное обеспечение в школах
По решению Правительства Российской Федерации [10] в марте 2008 года все средние школы России получили базовые пакеты лицензионного собственнического программного обеспечения для обучения компьютерной грамотности, основам информатики и новым информационным технологиям с операционными системами Windows.
В 2007 году выпущены первые учебники информатики для вузов и школ для обучения информатике в соответствии с государственными стандартами образования со свободным и проприетарным программным обеспечением в среде Windows и Linux.
Российские разработчики открытого программного обеспечения
Российские разработчики в основном помогают развитию англоязычных проектов или выпускают локализованные редакции международных проектов (например, OpenOffice Pro на базе OpenOffice.org). Крупных российских проектов с открытыми кодами немного (например, FAR Manager, Nginx, DriverPack Solution, 7-Zip). Небольшие программы чаще бывают только бесплатными, без открытия исходных кодов (например, Aimp, Light Alloy).
Также, существует незначительное количество российских репозиториев открытого ПО (таких, как репозиторий Сизиф).
Качество
Что понимается под открытым программным обеспечением (ПО)
Понятия «открытое программное обеспечение», «открытый код» используются в обиходе и в литературе. В специальной литературе, действительно, можно встретить указания на то, что признаками «открытого программного обеспечения» является как отсутствие ограничений возможных способов его использования, так и открытость исходного кода соответствующей программы. В разработанной Минкомсвязи России Дорожной карте развития «сквозной» цифровой технологии «Системы распределенного реестра» указано, что под «открытым программным обеспечением (Open source)» понимается программное обеспечение с открытым исходным кодом. Однако в нормативных актах определение упомянутых понятий отсутствует.
В российском гражданском законодательстве выделяются программы для ЭВМ с так называемой открытой лицензией. Под такой лицензией согласно п. 1 ст. 1286.1 ГК РФ понимается лицензионный договор, по которому автором или иным правообладателем (лицензиаром) лицензиату предоставляется простая (неисключительная) лицензия на использование произведения (включая программу для ЭВМ, см. последний абзац (13) п. 1 ст. 1259 ГК РФ). Как видно из положений ст. 1286.1 ГК РФ, условия открытой лицензии определяются правообладателем в договоре присоединения и могут ограничивать возможность использования программы для ЭВМ определенными пределами (абз. 1 п. 2 ст. 1286.1). Следовательно, открытая лицензия не обязательно предполагает отсутствие ограничений на распространение программы для ЭВМ. Кроме того, как видно из п. 3 ст. 1286.1 ГК РФ, открытая лицензия может быть возмездной, если это предусмотрено договором присоединения. Положения ГК РФ не указывают и на то, что открытая лицензия на использование программы для ЭВМ предполагает необходимость «открытия кода», что означало бы наличие у любого пользователя доступа к исходному коду программы, возможности ее изменения и дальнейшее распространение измененной программы. Иными словами, независимо от того, именуется ли конкретная программа для ЭВМ открытым программным обеспечением, возможность ее свободного распространения и совершения манипуляций с ее исходным кодом определяется прежде всего условиями лицензии.
Отсюда, на наш взгляд, следует, что использование в договорных отношениях упомянутых в вопросе понятий во избежание неопределенности требует конкретизации их значения в договоре.