Программное обеспечение с открытым исходным кодом ( OSS ) — это компьютерное программное обеспечение , которое выпускается по лицензии , в которой владелец авторских прав предоставляет пользователям права использовать, изучать, изменять и распространять программное обеспечение и его исходный код кому угодно и для любых целей. [1] [2] Программное обеспечение с открытым исходным кодом может разрабатываться в совместной, публичной манере. Программное обеспечение с открытым исходным кодом является ярким примером открытого сотрудничества , что означает, что любой способный пользователь может участвовать в разработке онлайн , что делает число возможных участников неограниченным. Возможность изучать код способствует общественному доверию к программному обеспечению. [3]
Разработка программного обеспечения с открытым исходным кодом может привнести различные перспективы, выходящие за рамки одной компании. Оценка стоимости программного обеспечения с открытым исходным кодом для компаний на 2024 год составляет 8,8 триллиона долларов, поскольку компаниям необходимо будет потратить в 3,5 раза больше, чем они тратят в настоящее время без использования программного обеспечения с открытым исходным кодом. [4]
Открытый исходный код может использоваться для изучения и позволяет способным конечным пользователям адаптировать программное обеспечение к своим личным потребностям аналогично тому, как пользовательские скрипты и пользовательские таблицы стилей позволяют это делать на веб-сайтах, и в конечном итоге публиковать изменения в качестве ответвления для пользователей со схожими предпочтениями, а также напрямую отправлять возможные улучшения в виде запросов на извлечение .
Определение Open Source Initiative (OSI) признано несколькими правительствами на международном уровне [5] как стандартное или фактическое определение. OSI использует The Open Source Definition , чтобы определить, считает ли он лицензию программного обеспечения с открытым исходным кодом. Определение было основано на Debian Free Software Guidelines , написанном и адаптированном в первую очередь Перенсом . [6] [7] [8] Перенс не основывал свои труды на «четырех свободах» Free Software Foundation (FSF), которые стали широко доступны только позже. [9]
Согласно определению Перенса, открытый исходный код — это широкая лицензия на программное обеспечение, которая делает исходный код доступным для широкой общественности с ослабленными или отсутствующими ограничениями на использование и модификацию кода. Явной «особенностью» открытого исходного кода является то, что он накладывает очень мало ограничений на использование или распространение любой организацией или пользователем, чтобы обеспечить быструю эволюцию программного обеспечения. [10]
По мнению Феллера и др. (2005), термины «свободное программное обеспечение» и «программное обеспечение с открытым исходным кодом» следует применять к любым «программным продуктам, распространяемым на условиях, которые позволяют пользователям» использовать, изменять и распространять программное обеспечение «любым удобным для них способом, не требуя от них выплаты автору(ам) программного обеспечения роялти или гонорара за участие в перечисленных видах деятельности». [11]
Несмотря на первоначальное принятие этого, [12] Ричард Столлман из FSF теперь категорически выступает против того, чтобы термин «Open Source» применялся к тому, что они называют «свободным программным обеспечением». Хотя он согласен, что эти два термина описывают «почти одну и ту же категорию программного обеспечения», Столлман считает, что приравнивание терминов некорректно и вводит в заблуждение. [13] Столлман также выступает против заявленного прагматизма Open Source Initiative , поскольку он опасается, что идеалы свободного программного обеспечения, такие как свобода и сообщество, находятся под угрозой из-за компромисса с идеалистическими стандартами FSF в отношении свободы программного обеспечения. [14] FSF считает свободное программное обеспечение подмножеством программного обеспечения с открытым исходным кодом, и Ричард Столлман объяснил, что программное обеспечение DRM , например, может разрабатываться как программное обеспечение с открытым исходным кодом, несмотря на то, что оно не дает своим пользователям свободы (ограничивает их), и, таким образом, не может считаться свободным программным обеспечением. [13]
В своем эссе 1997 года «Собор и базар » влиятельный участник движения за открытый исходный код Эрик С. Рэймонд предлагает модель разработки программного обеспечения с открытым исходным кодом, известную как модель базара . [15] Рэймонд сравнивает разработку программного обеспечения традиционными методологиями со строительством собора, с тщательной изолированной работой отдельных лиц или небольших групп. [15] Он предлагает, чтобы все программное обеспечение разрабатывалось с использованием базарного стиля, с различными программами и подходами. [15]
В традиционной модели разработки, которую он назвал моделью собора , разработка происходит централизованно. [15] Роли четко определены. [15] Роли включают людей, занимающихся проектированием (архитекторов), людей, ответственных за управление проектом, и людей, ответственных за реализацию. [15] Традиционная разработка программного обеспечения следует модели собора. [15]
Однако модель «базар» отличается. [15] В этой модели роли четко не определены. [15] Некоторые предлагаемые характеристики программного обеспечения, разработанного с использованием модели «базар», должны демонстрировать следующие закономерности: [16]
Пользователи должны рассматриваться как соразработчики: пользователи рассматриваются как соразработчики, и поэтому они должны иметь доступ к исходному коду программного обеспечения. [16] Кроме того, пользователи поощряются к отправке дополнений к программному обеспечению, исправлений кода для программного обеспечения, отчетов об ошибках , документации и т. д. Наличие большего количества соразработчиков увеличивает скорость, с которой программное обеспечение развивается. [16] Закон Линуса гласит, что при достаточном количестве глаз все ошибки являются неглубокими. [16] Это означает, что если много пользователей просматривают исходный код, они в конечном итоге найдут все ошибки и предложат, как их исправить. [16] Некоторые пользователи обладают продвинутыми навыками программирования, и, кроме того, машина каждого пользователя обеспечивает дополнительную среду тестирования. [16] Эта новая среда тестирования дает возможность находить и исправлять новые ошибки. [16]
Ранние выпуски : первая версия программного обеспечения должна быть выпущена как можно раньше, чтобы увеличить шансы найти соразработчиков на раннем этапе. [16]
Частая интеграция: Изменения кода должны интегрироваться (объединяться в общую кодовую базу) как можно чаще, чтобы избежать накладных расходов на исправление большого количества ошибок в конце жизненного цикла проекта. [16] [17] Некоторые проекты с открытым исходным кодом имеют ночные сборки, где интеграция выполняется автоматически . [16]
Несколько версий: должно быть не менее двух версий программного обеспечения. [16] Должна быть версия с ошибками и большим количеством функций и более стабильная версия с меньшим количеством функций. [16] Версия с ошибками (также называемая версией для разработки) предназначена для пользователей, которые хотят немедленно использовать новейшие функции и готовы принять риск использования кода, который еще не был тщательно протестирован. [16] Затем пользователи могут выступать в качестве соразработчиков, сообщая об ошибках и предоставляя исправления ошибок. [16] [18]
Высокая модульность: общая структура программного обеспечения должна быть модульной, что позволяет осуществлять параллельную разработку независимых компонентов. [16]
Динамическая структура принятия решений: существует потребность в структуре принятия решений, формальной или неформальной, которая принимает стратегические решения в зависимости от меняющихся требований пользователя и других факторов. [16] Сравните с экстремальным программированием . [16]
Процесс разработки ПО с открытым исходным кодом начинается с выявления требований , в ходе которых разработчики рассматривают, следует ли им добавлять новые функции или необходимо исправить ошибку в своем проекте. [18] Это устанавливается путем общения с сообществом OSS с помощью таких средств, как отчеты об ошибках и отслеживание или списки рассылки и страницы проекта. [18] Затем разработчики OSS выбирают или им назначается задача и определяют решение. Поскольку в OSS часто существует множество различных возможных путей для решений, лучшее решение должно быть выбрано с тщательным рассмотрением и иногда даже с учетом отзывов коллег . [18] Затем разработчик начинает разрабатывать и фиксировать код. [18] Затем код тестируется и проверяется коллегами. [18] Разработчики могут редактировать и развивать свой код с помощью отзывов от непрерывной интеграции . [18] Как только руководство и сообщество будут удовлетворены всем проектом, он может быть частично выпущен, а инструкции для пользователей могут быть задокументированы. [18] Если проект готов к выпуску, он замораживается, и выполняются только серьезные исправления ошибок или ремонт безопасности. [18] Наконец, проект полностью выпущен и изменен только путем исправления незначительных ошибок. [18]
Реализация стандарта с открытым исходным кодом может повысить уровень принятия этого стандарта. [19] Это создает лояльность разработчиков, поскольку разработчики чувствуют себя уполномоченными и имеют чувство собственности на конечный продукт. [20]
Более того, для OSS требуются более низкие затраты на маркетинг и логистические услуги. [21] OSS может быть инструментом для продвижения имиджа компании, включая ее коммерческие продукты. [22] Подход к разработке OSS помог производить надежное, высококачественное программное обеспечение быстро и недорого. [21]
Разработка ПО с открытым исходным кодом предлагает потенциал для ускорения инноваций и создания социальной ценности. [23] Например, во Франции политика, которая стимулировала правительство отдавать предпочтение бесплатному программному обеспечению с открытым исходным кодом, увеличила почти до 600 000 взносов в OSS в год, создавая социальную ценность за счет увеличения количества и качества программного обеспечения с открытым исходным кодом. [23] Эта политика также привела к предполагаемому увеличению до 18% технологических стартапов и 14% увеличению числа людей, занятых в секторе ИТ. [23]
OSS может быть очень надежным, когда тысячи независимых программистов тестируют и исправляют ошибки программного обеспечения. [16] Открытый исходный код не зависит от компании или автора, которые изначально его создали. [24] Даже если компания терпит неудачу, код продолжает существовать и разрабатываться его пользователями. [24]
OSS является гибким, поскольку модульные системы позволяют программистам создавать собственные интерфейсы или добавлять к ним новые возможности, и является инновационным, поскольку программы с открытым исходным кодом являются продуктом сотрудничества большого числа разных программистов. [16] Сочетание различных точек зрения, корпоративных целей и личных целей ускоряет инновации. [25]
Более того, свободное программное обеспечение может быть разработано в соответствии с чисто техническими требованиями. [26] Оно не требует размышлений о коммерческом давлении, которое часто снижает качество программного обеспечения. [26] Коммерческое давление заставляет традиционных разработчиков программного обеспечения уделять больше внимания требованиям клиентов, чем требованиям безопасности, поскольку такие функции несколько невидимы для клиента. [26]
При разработке программного обеспечения с открытым исходным кодом инструменты используются для поддержки разработки продукта и самого процесса разработки. [18]
Системы контроля версий, такие как централизованная система контроля версий (CVCS) и распределенная система контроля версий (DVCS), являются примерами инструментов, часто с открытым исходным кодом, которые помогают управлять файлами исходного кода и изменениями в этих файлах для программного проекта с целью содействия совместной работе. [27] CVCS централизованы с центральным репозиторием, в то время как DVCS децентрализованы и имеют локальный репозиторий для каждого пользователя. [27] Система параллельных версий ( CVS) и более поздние Subversion (SVN) и Git являются примерами CVCS. [27] Репозитории размещаются и публикуются на хостингах исходного кода , таких как GitHub . [27]
Проекты с открытым исходным кодом используют утилиты, такие как трекеры проблем, для организации разработки программного обеспечения с открытым исходным кодом. Обычно используемые трекеры ошибок включают Bugzilla и Redmine . [18]
Такие инструменты, как списки рассылки и IRC, предоставляют средства координации и обсуждения ошибок среди разработчиков. [18] Веб-страницы проектов, вики-страницы, списки дорожных карт и группы новостей позволяют распространять информацию о проектах, ориентированную на конечных пользователей. [18]
Основные роли участников OSS могут попадать в несколько категорий, начиная с руководства в центре проекта, которые контролируют его выполнение. [28] Далее следуют основные участники с большим опытом и полномочиями в проекте, которые могут направлять других участников. [28] Неосновные участники имеют меньше опыта и полномочий, но регулярно вносят вклад и имеют жизненно важное значение для развития проекта. [28] Новые участники являются наименее опытными, но при наставничестве и руководстве могут стать постоянными участниками. [28]
Некоторые возможные способы участия в разработке программного обеспечения с открытым исходным кодом включают такие роли, как программирование , проектирование и тестирование пользовательского интерфейса , веб-дизайн , сортировка ошибок , проектирование и тестирование доступности, проектирование UX , тестирование кода, а также обзор и тестирование безопасности . [28] Однако существует несколько способов участия в проектах с открытым исходным кодом даже без навыков кодирования. [28] Например, некоторые менее технические способы участия включают написание и редактирование документации , перевод , управление проектами , организацию и координацию мероприятий, маркетинг, управление релизами, управление сообществом, а также связи с общественностью и информационно-пропагандистскую деятельность. [28]
Финансирование — это еще один замечательный способ, которым отдельные лица и организации выбирают вносить свой вклад в проекты с открытым исходным кодом. Такие группы, как Open Collective, предоставляют возможность отдельным лицам ежемесячно вносить свой вклад в поддержку своих любимых проектов. [29] Такие организации, как Sovereign Tech Fund, могут вносить миллионы на поддержку инструментов, используемых правительством Германии . [30] Национальный научный фонд создал программу Pathways to Enable Open-Source Ecosystems (POSE) для поддержки инноваций с открытым исходным кодом. [31]
Принятие программного обеспечения с открытым исходным кодом в промышленности со временем увеличивается. [32] OSS популярен в нескольких отраслях, таких как телекоммуникации , аэрокосмическая промышленность , здравоохранение , а также средства массовой информации и развлечения, благодаря преимуществам, которые он предоставляет. [33] Принятие OSS более вероятно в крупных организациях и зависит от использования ИТ-ресурсов компании, эффективности работы и производительности труда сотрудников. [32]
Отрасли, скорее всего, будут использовать OSS из-за функциональности бэк-офиса, поддержки продаж, исследований и разработок, функций программного обеспечения, быстрого развертывания, переносимости между платформами и избежания управления коммерческими лицензиями. [32] Кроме того, важными преимуществами являются также более низкие затраты на оборудование и владение. [32]
Организации, которые вносят вклад в развитие и расширение свободного и открытого программного обеспечения, существуют по всему миру. [28] Эти организации посвящены таким целям, как обучение и распространение технологий. [28] Как перечислил бывший вице-президент Open Source Initiative , некоторые американские организации включают Free Software Foundation , Software Freedom Conservancy , Open Source Initiative и Software in the Public Interest . [28] В Европе некоторые известные организации — Free Software Foundation Europe , open-source projects EU (OSP) и OpenForum Europe (OFE). [28] Одна австралийская организация — Linux Australia , в то время как в Азии есть Open source Asia и FOSSAsia. [28] Free and open source software for Africa (FOSSFA) и OpenAfrica — это африканские организации, а в Центральной и Южной Азии есть такие организации, как FLISOL и GRUP de usuarios de software libre Peru. [28] За пределами этих организаций существует множество других организаций, занимающихся продвижением открытого программного обеспечения. [28]
Продукты FOSS обычно лицензируются по двум типам лицензий: разрешительное лицензирование и лицензирование с копилефтом . [34] Оба эти типа лицензий отличаются от проприетарного лицензирования тем, что они могут разрешить большему количеству пользователей доступ к программному обеспечению и разрешить создание производных работ , как указано в условиях конкретной лицензии, поскольку каждая лицензия имеет свои собственные правила. [34] Разрешительные лицензии позволяют получателям программного обеспечения реализовывать авторские права автора без необходимости использовать ту же лицензию для распространения. [34] Примерами этого типа лицензий являются лицензии BSD , MIT и Apache . [34] Лицензии с копилефтом отличаются тем, что они требуют от получателей использовать одну и ту же лицензию по крайней мере для некоторых частей распространения своих работ. [34] Лицензии со сильным копилефтом требуют, чтобы все производные работы использовали одну и ту же лицензию, в то время как лицензии со слабым копилефтом требуют использования одной и той же лицензии только при определенных условиях. [34] Примерами такого типа лицензий являются семейство лицензий GNU , а также лицензии MPL и EPL . [34] Сходства между этими двумя категориями лицензирования включают в себя то, что они предоставляют широкие права авторского права, требуют, чтобы получатели сохраняли уведомления об авторских правах, и что копия лицензии предоставляется получателям вместе с кодом. [34]
Один важный юридический прецедент для программного обеспечения с открытым исходным кодом был создан в 2008 году, когда дело Якобсона против Катцера обеспечило соблюдение условий лицензии Artistic , включая указание авторства и идентификацию модификаций. [34] Решение по этому делу закрепило соблюдение закона об авторском праве в случаях, когда условия лицензии не соблюдались. [34] Из-за схожести лицензии Artistic с другими лицензиями программного обеспечения с открытым исходным кодом решение создало прецедент, который применялся широко. [34]
Примерами лицензий на свободное программное обеспечение / лицензий с открытым исходным кодом являются лицензии Apache , лицензии BSD , GNU General Public Licenses , GNU Lesser General Public License , MIT License , Eclipse Public License и Mozilla Public License . [34]
В регулировании программного обеспечения существует несколько серых зон, которые оказывают большое влияние на программное обеспечение с открытым исходным кодом, например, является ли программное обеспечение товаром или услугой, что можно считать модификацией, управление через контракт против лицензии, право собственности и право использования. [34] Хотя по этим вопросам и произошли изменения, они часто приводят к еще большему количеству вопросов. [34] Наличие этих неопределенностей в регулировании оказывает негативное влияние на отрасли, связанные с технологиями в целом. [34]
В юридической истории программного обеспечения в целом было много споров о том, защищать ли его как интеллектуальную собственность в соответствии с патентным правом , законом об авторском праве или устанавливать уникальное регулирование. [34] В конечном итоге, закон об авторском праве стал стандартом, а компьютерные программы стали считаться формой литературного произведения с некоторыми изменениями уникального регулирования. [34]
Программное обеспечение обычно считается исходным кодом и объектным кодом , и оба они подлежат защите, хотя в этом определении есть правовое разнообразие. [34] Некоторые юрисдикции пытаются расширить или сузить эту концептуализацию в своих собственных целях. [34] Например, Европейский суд определяет компьютерную программу как не включающую функциональность программы, язык программирования или формат файлов данных. [34] Ограничивая защиту различных аспектов программного обеспечения, закон благоприятствует подходу с открытым исходным кодом к использованию программного обеспечения. [34] В США особенно открытый подход к программному обеспечению, большинство лицензий с открытым исходным кодом происходят оттуда. [34] Однако это усилило внимание к патентным правам в этих лицензиях, что вызвало негативную реакцию со стороны сообщества OSS, которое предпочитает другие формы защиты интеллектуальной собственности . [34]
Другая проблема касается мер технологической защиты (TPM) и методов управления цифровыми правами (DRM), которые были признаны на международном уровне и защищены Договором Всемирной организации интеллектуальной собственности (ВОИС) 1996 года . [34] Сторонники программного обеспечения с открытым исходным кодом не одобряли эти технологии, поскольку они потенциально ограничивали конечных пользователей за пределами закона об авторском праве. [34] Европа отреагировала на такие жалобы, поставив TPM под юридический контроль, что стало победой сторонников OSS. [34]
В сообществах с открытым исходным кодом производитель владеет не самим создаваемым программным обеспечением, а разработкой развивающегося программного обеспечения. [35] Таким образом, будущее программного обеспечения открыто, что затрудняет владение или интеллектуальную собственность в рамках OSS. [35] Лицензирование и брендинг могут помешать другим украсть его, сохраняя его статус общественного блага . [35] Программное обеспечение с открытым исходным кодом можно считать общественным благом, поскольку оно доступно каждому и не теряет своей ценности для других при загрузке одним человеком. [35] Программное обеспечение с открытым исходным кодом уникально тем, что оно становится более ценным по мере использования и внесения вклада, а не уменьшения ресурса. Это объясняется такими концепциями, как инвестиции в репутацию и сетевые эффекты . [35]
Экономическую модель программного обеспечения с открытым исходным кодом можно объяснить тем, что разработчики вносят свой вклад в проекты, создавая общественные блага. [35] Разработчики выбирают проекты на основе предполагаемых выгод или затрат, таких как улучшение репутации или ценности проекта. [35] Мотивация разработчиков может исходить из многих разных мест и причин, но важный вывод заключается в том, что деньги — это не единственный и даже не самый важный стимул . [35]
Поскольку экономическая теория в основном фокусируется на потреблении дефицитных ресурсов, динамику OSS может быть трудно понять. В OSS производители становятся потребителями, пожиная плоды вклада в проект. [35] Например, разработчик становится уважаемым своими коллегами за успешный вклад в проект OSS. [35] Социальные выгоды и взаимодействия OSS также трудно учесть в экономических моделях. [35] Кроме того, инновации в технологиях создают постоянно меняющиеся дискуссии о ценностях и перспективы, делая экономическую модель неспособной предсказывать социальное поведение. [35]
Хотя OSS теоретически сложна в экономических моделях, ее можно объяснить как устойчивую социальную деятельность, требующую ресурсов. [35] Эти ресурсы включают время, деньги, технологии и взносы. [35] Многие разработчики использовали технологии, финансируемые такими организациями, как университеты и правительства, хотя эти же организации извлекают выгоду из работы, проделанной OSS. [35] По мере роста OSS гибридные системы, содержащие OSS и фирменные системы, становятся все более распространенными. [35]
В середине 2000-х годов все больше и больше технологических компаний начали использовать OSS. [24] Например, компания Dell начала продавать компьютеры с уже установленным GNU/Linux . [24] Сама компания Microsoft запустила операционную систему на базе Linux, несмотря на предыдущую враждебность к движению OSS. [24] Несмотря на эти разработки, эти компании, как правило, используют OSS только для определенных целей, что приводит к опасениям, что корпорации используют OSS в своих интересах, не получая ничего взамен. [24]
В то время как многие правительства заинтересованы во внедрении и продвижении программного обеспечения с открытым исходным кодом из-за множества предоставляемых преимуществ, огромной проблемой, которую следует учитывать, является кибербезопасность . [36] Хотя случайные уязвимости возможны, возможны и атаки со стороны внешних агентов. [36] Из-за этих опасений правительственный интерес к содействию управлению программным обеспечением стал более заметным. [36] Однако это общие черты проблемы, поскольку каждая страна имеет свои собственные конкретные политизированные взаимодействия с программным обеспечением с открытым исходным кодом и свои цели по его внедрению. [36] Например, Соединенные Штаты сосредоточились на национальной безопасности в отношении внедрения программного обеспечения с открытым исходным кодом из-за предполагаемой угрозы увеличения активности программного обеспечения с открытым исходным кодом в таких странах, как Китай и Россия, при этом Министерство обороны рассматривает несколько критериев для использования программного обеспечения с открытым исходным кодом. [36] Эти критерии включают: исходит ли оно из надежных источников и поддерживается ли оно, будет ли оно продолжать поддерживаться, есть ли зависимости от подкомпонентов в программном обеспечении, безопасность и целостность компонентов и влияние иностранного правительства. [36]
Еще одной проблемой для правительств в отношении открытого исходного кода являются их инвестиции в такие технологии, как операционные системы , полупроводники , облако и искусственный интеллект . [36] Все эти технологии имеют последствия для глобального сотрудничества, снова открывая проблемы безопасности и политические последствия. [36] Многим странам приходится балансировать между технологическими инновациями и технологической зависимостью в этих партнерствах. [36] Например, после того, как китайской компании Huawei, зависящей от открытого исходного кода , запретили использовать систему Android от Google в 2019 году, они начали создавать свою собственную альтернативную операционную систему: Harmony OS . [36]
Недавно Германия создала Государственный технологический фонд для поддержки управления и обслуживания используемого программного обеспечения.
На заре вычислительной техники , например, в 1950-х и в 1960-х годах, программисты и разработчики делились программным обеспечением, чтобы учиться друг у друга и развивать область вычислительной техники. [37] Например, Unix включал исходный код операционной системы для пользователей. [37] В конце концов, коммерциализация программного обеспечения в 1970–1980 годах начала предотвращать эту практику. [37] Однако ученые по-прежнему часто разрабатывали программное обеспечение совместно. [37]
В ответ на это движение за открытый исходный код родилось из работы опытных энтузиастов-программистов, которых широко называли хакерами или хакерской культурой . [38] Один из этих энтузиастов, Ричард Столлман , был движущей силой движения за свободное программное обеспечение , которое позже позволило движению за открытый исходный код . [17] В 1984 году он ушел из MIT, чтобы создать свободную операционную систему GNU , после того как культура программистов в его лаборатории была подавлена проприетарным программным обеспечением, препятствовавшим распространению и улучшению исходного кода. [17] GNU была совместима с UNIX, что означало, что энтузиасты-программисты все равно будут знакомы с тем, как она работает. [17] Однако быстро стало очевидно, что существует некоторая путаница с ярлыком, который Столлман выбрал для свободного программного обеспечения , которое он описал как свободное как в свободном слове, а не как бесплатное пиво, имея в виду значение слова «свобода» как свободы, а не цены. [17] Позже он расширил эту концепцию свободы до четырех основных свобод. [17] Благодаря GNU появились нормы открытого исходного кода по включению чужого исходного кода, исправления ошибок сообществом и предложения кода для новых функций. [17] В 1985 году Столлман основал Free Software Foundation (FSF) для содействия изменениям в программном обеспечении и помощи в написании GNU. [17] Чтобы предотвратить использование своей работы в проприетарном программном обеспечении, Столлман создал концепцию copyleft , которая позволяла использовать его работу кому угодно, но на определенных условиях. [17] Для этого в 1989 году он создал GNU General Public License (GNU GPL), которая была обновлена в 1991 году . [17] В 1991 году GNU была объединена с ядром Linux , написанным Линусом Торвальдсом , поскольку ядро отсутствовало в GNU. [39] Теперь операционная система обычно называется Linux . [17] На протяжении всего этого периода существовало много других проектов и лицензий свободного программного обеспечения, все с разными идеями о том, какой была и должна быть концепция свободного программного обеспечения, а также о морали проприетарного программного обеспечения, например, Berkeley Software Distribution , TeX и X Window System . [40]
По мере развития свободного программного обеспечения Фонд свободного программного обеспечения начал искать способы привнести идеи свободного программного обеспечения и предполагаемые выгоды в индустрию коммерческого программного обеспечения . [40] Был сделан вывод, что социальная активность FSF не привлекательна для компаний, и им нужен был способ ребрендинга движения за свободное программное обеспечение, чтобы подчеркнуть деловой потенциал обмена и сотрудничества в области исходного кода программного обеспечения. [40] Термин «открытый исходный код» был предложен Кристиной Петерсон в 1998 году на встрече сторонников свободного программного обеспечения. [17] Многие в группе посчитали, что название «свободное программное обеспечение» сбивает с толку новичков и сдерживает интерес отрасли, и они с готовностью приняли новое обозначение «открытый исходный код», создав Инициативу с открытым исходным кодом (OSI) и определение OSI того, что такое программное обеспечение с открытым исходным кодом. [17] Определение Инициативы с открытым исходным кодом (OSI) в настоящее время признано несколькими правительствами на международном уровне как стандартное или фактическое определение. [39] Определение было основано на Руководящих принципах свободного программного обеспечения Debian , написанных и адаптированных в первую очередь Брюсом Перенсом. [41] Определение OSI отличалось от определения свободного программного обеспечения тем, что оно допускает включение проприетарного программного обеспечения и допускает больше свобод в его лицензировании. [17] Некоторые, такие как Столлман, в результате больше согласны с первоначальной концепцией свободного программного обеспечения, поскольку она занимает сильную моральную позицию против проприетарного программного обеспечения, хотя между двумя движениями есть много общего с точки зрения работы программного обеспечения. [17]
В то время как Open Source Initiative стремилась поощрять использование нового термина и пропагандировать принципы, которых она придерживалась, поставщики коммерческого программного обеспечения все больше подвергались угрозам со стороны концепции свободно распространяемого программного обеспечения и всеобщего доступа к исходному коду приложения , а один из руководителей Microsoft в 2001 году назвал открытый исходный код разрушителем интеллектуальной собственности . [42] Однако, хотя свободное и открытое программное обеспечение (FOSS) исторически играло роль за пределами основной частной разработки программного обеспечения, такие крупные компании, как Microsoft, начали развивать официальное присутствие открытого исходного кода в Интернете. [42] IBM, Oracle и State Farm — это лишь некоторые из компаний, имеющих серьезную публичную долю на сегодняшнем конкурентном рынке открытого исходного кода, что знаменует собой значительный сдвиг в корпоративной философии относительно разработки FOSS. [42]
Будущее сообщества разработчиков программного обеспечения с открытым исходным кодом и сообщества свободного программного обеспечения в целом стало успешным, если не путаться в том, что оно собой представляет. [24] Например, Android и Ubuntu являются примерами вех успеха в развитии программного обеспечения с открытым исходным кодом, которое стало заметным со стороны технологических инноваций, существовавших в начале 2000-х годов. [24] Однако некоторые в сообществе считают их неудачами в представлении OSS из-за таких проблем, как преуменьшение роли центра OSS в Android со стороны Google и ее партнеров, использование лицензии Apache , которая допускала разветвление и приводила к потере возможностей для сотрудничества в Android, приоритет удобства над свободой в Ubuntu и функции в Ubuntu, которые отслеживают пользователей в маркетинговых целях. [24]
Использование OSS стало более распространенным в бизнесе, и 78% компаний сообщили, что они используют FOSS для всех или части своих операций. [24] Популярность OSS возросла до такой степени, что Microsoft , некогда критикующая OSS, включила его использование в свои системы. [24] Однако этот успех вызвал опасения, которые определят будущее OSS, поскольку сообщество должно ответить на такие вопросы, как что такое OSS, каким оно должно быть и что следует сделать для его защиты, если оно вообще нуждается в защите. [24] В целом, хотя революция свободного и открытого исходного кода замедлилась до воспринимаемого равновесия на рынке, это не означает, что она закончилась, поскольку должно состояться множество теоретических дискуссий, чтобы определить его будущее. [24]
Программное обеспечение с открытым исходным кодом отличается от проприетарного программного обеспечения тем, что оно общедоступно, лицензия не требует платы, модификации и распространение разрешены в соответствии со спецификациями лицензии. [43] Все это работает для предотвращения монополии на любой продукт OSS, что является целью проприетарного программного обеспечения. [43] Проприетарное программное обеспечение ограничивает выбор своих клиентов, либо беря на себя обязательство использовать это программное обеспечение, обновляя его или переходя на другое программное обеспечение, заставляя клиентов зависеть от своих предпочтений в отношении программного обеспечения в зависимости от их денежных затрат. [43] Идеальным сценарием для поставщика проприетарного программного обеспечения была бы привязка , когда клиент не меняет программное обеспечение или не может его использовать из-за этих затрат и продолжает покупать продукты у этого поставщика. [43]
В рамках фирменного программного обеспечения исправления ошибок могут быть предоставлены только поставщиком, перемещение платформ требует повторной покупки, а существование продукта зависит от поставщика, который может прекратить его выпуск в любой момент. [38] Кроме того, фирменное программное обеспечение не предоставляет свой исходный код и не может быть изменено пользователями. [17] Для предприятий это может представлять риск для безопасности и источник разочарования, поскольку они не могут специализировать продукт в соответствии со своими потребностями, и в программном обеспечении могут быть скрытые угрозы или утечки информации, к которым они не могут получить доступ или изменить их. [17]
Согласно определению OSI, открытый исходный код — это широкая лицензия на программное обеспечение, которая делает исходный код доступным для широкой публики с ослабленными или отсутствующими ограничениями на использование и модификацию кода. [44] Явной особенностью открытого исходного кода является то, что он накладывает очень мало ограничений на использование или распространение любой организацией или пользователем, чтобы обеспечить быструю эволюцию программного обеспечения. [44]
Ричард Столлман , лидер движения за свободное программное обеспечение и член фонда свободного программного обеспечения, выступает против применения термина «открытый исходный код» к тому, что они называют свободным программным обеспечением. [13] Хотя он согласен с тем, что эти два термина описывают почти одну и ту же категорию программного обеспечения, Столлман считает, что приравнивать эти термины неправильно и вводит в заблуждение. [13] Он считает, что главное различие заключается в том, что выбор одного термина вместо другого позволяет другим узнать о своих целях: разработка (открытый исходный код) или социальная позиция (свободное программное обеспечение). [45] Тем не менее, существует значительное совпадение между программным обеспечением с открытым исходным кодом и свободным программным обеспечением. [13] Столлман также выступает против заявленного прагматизма Инициативы открытого исходного кода , поскольку он опасается, что идеалы свободного программного обеспечения, такие как свобода и сообщество, находятся под угрозой из-за компромисса с идеалистическими стандартами FSF в отношении свободы программного обеспечения. [45] FSF рассматривает свободное программное обеспечение как подмножество программного обеспечения с открытым исходным кодом, и Ричард Столлман объяснил, что программное обеспечение DRM , например, может разрабатываться как программное обеспечение с открытым исходным кодом, несмотря на то, как оно ограничивает своих пользователей, и, таким образом, не может считаться свободным программным обеспечением. [13]
FSF заявил, что термин «открытый исходный код» порождает двусмысленность иного рода, так как он путает простую доступность исходного кода со свободой его использования, изменения и распространения. [13] С другой стороны, термин «свободное программное обеспечение» критиковался за двусмысленность слова «свободный», которое рассматривалось как препятствующее принятию его в бизнесе, а также за историческую двусмысленность использования этого термина. [45]
Разработчики использовали альтернативные термины Свободное и открытое программное обеспечение ( FOSS ) или Свободное/свободное и открытое программное обеспечение (FLOSS), соответственно, для описания программного обеспечения с открытым исходным кодом, которое также является свободным программным обеспечением . [28]
Программное обеспечение может распространяться с исходным кодом , который является кодом, который можно прочитать. [46] Программное обеспечение является исходным кодом, когда этот исходный код доступен для просмотра. [46] Однако, чтобы быть исходным кодом или FOSS , исходный код не обязательно должен быть доступен всем, а только пользователям этого программного обеспечения. [46] Хотя все программное обеспечение FOSS является исходным кодом, поскольку это требование установлено Определением открытого исходного кода , не все исходное программное обеспечение является FOSS. [46] Например, если программное обеспечение не соответствует другим аспектам Определения открытого исходного кода, таким как разрешенная модификация или повторное распространение, даже если исходный код доступен, программное обеспечение не является FOSS. [46]
Недавняя тенденция в компаниях-разработчиках программного обеспечения — это открытый исходный код или перевод своего предыдущего проприетарного программного обеспечения в программное обеспечение с открытым исходным кодом путем выпуска его по лицензии с открытым исходным кодом . [47] [48] Примерами компаний, которые сделали это, являются Google, Microsoft и Apple. [47] Кроме того, открытый исходный код может относиться к программированию программного обеспечения с открытым исходным кодом или установке программного обеспечения с открытым исходным кодом. [48] Открытый исходный код может быть полезен несколькими способами, такими как привлечение большего количества внешних участников, которые привносят новые перспективы и возможности решения проблем. [47] К недостаткам открытого исходного кода относится работа, которую необходимо проделать для поддержания нового сообщества, например, сделать базовый код легко понятным, настроить каналы связи для новых разработчиков и создать документацию, чтобы новые разработчики могли легко присоединиться. [47] Однако обзор нескольких проектов с открытым исходным кодом показал, что, хотя новый проект с открытым исходным кодом привлекает много новичков, большое количество, скорее всего, вскоре покинет проект, а их ответвления также, скорее всего, не окажут влияния. [47]
Другие концепции, которые могут иметь некоторое сходство с открытым исходным кодом, — это условно-бесплатное программное обеспечение , общедоступное программное обеспечение , бесплатное программное обеспечение и программы просмотра/чтения, которые находятся в свободном доступе, но не предоставляют исходный код. [17] Однако они отличаются от программного обеспечения с открытым исходным кодом доступом к исходному коду , лицензированием, авторскими правами и сборами. [17]
Несмотря на возможность международного сотрудничества, было обнаружено, что участники разработки программного обеспечения с открытым исходным кодом в основном находятся в крупных кластерах, таких как Кремниевая долина , которые в значительной степени сотрудничают внутри себя. [49] Возможные причины этого явления могут заключаться в том, что демографическая группа участников разработки программного обеспечения с открытым исходным кодом в основном работает в сфере программного обеспечения, а это означает, что географическое положение разработки программного обеспечения с открытым исходным кодом тесно связано с этой дисперсией, и сотрудничество может поощряться через работу и социальные сети . [49] На принятие кода может влиять статус в этих кластерах социальных сетей, создавая несправедливые предрасположенности к принятию кода на основе местоположения. [50] Препятствия к международному сотрудничеству также включают языковые или культурные различия. [51] Кроме того, было показано, что каждая страна имеет более высокий уровень принятия кода от участников внутри своей страны, за исключением Индии, что указывает на предвзятость в отношении культурно схожих соавторов. [51]
В 2021 году странами с наибольшим вкладом в программное обеспечение с открытым исходным кодом стали США, Китай, Германия, Индия и Великобритания (именно в таком порядке). [49] В число стран с наибольшим числом разработчиков программного обеспечения с открытым исходным кодом на душу населения по результатам исследования 2021 года вошли Исландия, Швейцария, Норвегия, Швеция и Финляндия (по порядку), в то время как в 2008 году странами с наибольшим количеством предполагаемых участников в SourceForge были США, Германия, Великобритания, Канада и Франция. [49] [51] Хотя было проведено несколько исследований распределения и вклада разработчиков программного обеспечения с открытым исходным кодом, это все еще открытая область, которую можно измерить несколькими различными способами. [51] Например, было показано, что участие в информационно-коммуникационных технологиях, население, благосостояние и доля доступа к Интернету коррелируют с вкладом в сферу разработки программного обеспечения с открытым исходным кодом. [51]
Хотя было установлено, что гендерное разнообразие повышает производительность команды, женщины по-прежнему сталкиваются с предвзятостью при участии в проектах с открытым исходным кодом, когда их пол можно определить. [52] В 2002 году только 1,5% международных разработчиков программного обеспечения с открытым исходным кодом были женщинами, в то время как женщины занимали 28% должностей в технологической отрасли, что демонстрирует их низкую представленность в области программного обеспечения. [53] Несмотря на то, что вклад в разработку программного обеспечения без каких-либо предпосылок, этот гендерный предрассудок может продолжать существовать из-за распространенного убеждения участников в том, что пол не должен иметь значения, а качество кода должно быть единственным соображением при принятии кода, что не позволяет сообществу решать системные различия в женском представительстве. [38] Однако более поздний показатель участия женщин в разработке программного обеспечения без открытия кода на международном уровне, рассчитанный за период с 2005 по 2021 год, составляет 9,8%, причем большинство из них являются недавними участниками, что указывает на то, что участие женщин может расти. [54]
Существует множество мотиваций для участия в сообществе OSS. [28] Во-первых, это возможность изучить и отработать множество навыков, таких как кодирование и другие способности, связанные с технологиями, а также фундаментальные навыки, такие как коммуникация и сотрудничество, а также практические навыки, необходимые для достижения успеха в областях, связанных с технологиями, таких как отслеживание проблем или контроль версий . [28] Вместо обучения в классе или на работе, обучение посредством участия в OSS позволяет участникам учиться в своем собственном темпе и следовать тому, что им интересно. [28] При участии в OSS участник может изучить лучшие практики, технологии и тенденции отрасли и даже получить возможность внести свой вклад в следующее крупное новшество, поскольку OSS становится все более популярным в технической сфере. [28] Участие в OSS без оплаты означает, что нет угрозы увольнения, хотя репутация может пострадать. [28] С другой стороны, огромной мотивацией для участия в OSS является репутация, приобретенная по мере роста публичного портфолио. [28]
Несмотря на то, что программирование изначально считалось женской профессией, в сфере вычислительной техники по-прежнему существует большой разрыв. [55] Социальная идентичность , как правило, вызывает большую озабоченность, поскольку женщины в технологической отрасли сталкиваются с неуверенностью в себе из-за привлечения нежелательного мужского внимания и преследований или из-за того, что они неженственны в своих технических знаниях, что оказывает большое влияние на уверенность в себе. [38] Некоторые мужчины-участники из сферы технологий ясно дают понять, что считают, что женщинам невозможно вписаться в культуру, что еще больше усиливает неуверенность женщин и их места в технологической отрасли. [52] Кроме того, даже в среде добровольного вклада, такой как программное обеспечение с открытым исходным кодом, женщины, как правило, в конечном итоге выполняют менее технические аспекты проектов, такие как ручное тестирование или документирование, несмотря на то, что женщины и мужчины демонстрируют одинаковую производительность в вкладах в OSS. [52] Явные предубеждения включают более длительное время обратной связи, более тщательную проверку кода и более низкий уровень принятия кода. [52] В частности, в сообществе разработчиков программного обеспечения с открытым исходным кодом женщины сообщают, что оскорбительная сексуальная лексика является распространенной, а идентичности женщин как женщин уделяется больше внимания, чем как участникам открытого программного обеспечения [38]. С предвзятостью трудно бороться из-за убеждения, что пол не должен иметь значения, поскольку большинство участников считают, что особое отношение к женщинам несправедливо, а успех должен зависеть от навыков, что препятствует любым изменениям, которые могли бы быть более инклюзивными. [38]
Проекты программного обеспечения с открытым исходным кодом создаются и поддерживаются сетью программистов, которые часто могут быть добровольцами, и широко используются как в бесплатных, так и в коммерческих продуктах. [56]
Unix : Unix — операционная система , созданная AT&T, которая начиналась как предшественница программного обеспечения с открытым исходным кодом, поскольку революция свободного и открытого программного обеспечения началась, когда разработчики начали пытаться создавать операционные системы без кода Unix. [24] Unix был создан в 1960-х годах, до коммерциализации программного обеспечения и до того, как возникла необходимость в концепции открытого программного обеспечения, поэтому он не считался настоящим проектом программного обеспечения с открытым исходным кодом. [24] Он начинался как исследовательский проект, прежде чем был коммерциализирован в середине 1980-х годов. [24] До своей коммерциализации он представлял многие идеалы, которых придерживалась революция свободного и открытого программного обеспечения, включая децентрализованное сотрудничество глобальных пользователей, непрерывные релизы и культуру неприязни к проприетарному программному обеспечению в обществе . [24]
BSD: Berkely Software Distribution (BSD) — операционная система , которая появилась как вариант Unix в 1978 году и смешивала код Unix с кодом из лабораторий Беркли для повышения функциональности. [24] Поскольку BSD была сосредоточена на повышении функциональности, она публично делилась своими величайшими инновациями с основной операционной системой Unix. [24] Это пример свободного публичного обмена кодом, который является центральной характеристикой FOSS сегодня. [24] Поскольку Unix стал коммерциализированным в 1980-х годах, разработчики или члены сообщества, которые не поддерживали проприетарное программное обеспечение, начали сосредотачиваться на BSD и превращать ее в операционную систему, которая не включала никакого кода Unix. [24] Окончательная версия BSD была выпущена в 1995 году. [24]
GNU : GNU — это свободная операционная система, созданная Ричардом Столлманом в 1984 году, ее название означает GNU — не Unix. [24] Идея заключалась в создании альтернативной операционной системы Unix , которая была бы доступна для использования любым пользователем и позволяла бы программистам свободно обмениваться кодом между собой. [24] Однако целью GNU была не только замена Unix, но и создание более совершенной версии с большими технологическими возможностями. [24] Она была выпущена до того, как философские убеждения революции свободного и открытого программного обеспечения были по-настоящему определены. [24] Благодаря своему созданию выдающимся программистом FOSS Ричардом Столлманом, GNU была активно вовлечена в активизм FOSS, и одним из величайших достижений GNU стало создание GNU General Public License или GPL, которая позволяла разработчикам выпускать программное обеспечение, которое можно было бы легально распространять и изменять. [24]
Linux : Linux — это ядро операционной системы , представленное в 1991 году Линусом Торвальдсом . [24] Linux был вдохновлен созданием улучшенной версии коммерческой операционной службы Minux . [24] Он радикально отличался от того, что создавали другие хакеры в то время, поскольку был полностью бесплатным и децентрализованным. [24] Позже Linux был помещен под лицензию GPL , что позволило людям зарабатывать деньги с помощью Linux и привело Linux в сообщество FOSS. [24]
Apache: Apache появился в 1995 году как совместная работа группы разработчиков, выпустивших свой собственный веб-сервер из-за разочарования в кодовой базе NCSA HTTPd . [24] Название Apache было использовано из-за нескольких исправлений, которые они применили к этой кодовой базе. [24] В течение года после выпуска он стал ведущим веб-сервером в мире . [24] Вскоре Apache выпустил собственную лицензию , что вызвало разногласия в сообществе FOSS, хотя в конечном итоге оказалось успешным. [24] Лицензия Apache позволяла членам сообщества получать прямой доступ к исходному коду, что является заметным отличием от подходов GNU и Linux. [24]
Хотя термин «открытый исходный код» изначально применялся только к исходному коду программного обеспечения, теперь он применяется ко многим другим областям, таким как экология с открытым исходным кодом , движение за децентрализацию технологий, чтобы любой человек мог их использовать. [13] [57] Однако его часто неправильно применяют к другим областям, которые имеют другие и конкурирующие принципы, которые пересекаются лишь частично. [38]
Те же принципы, которые лежат в основе программного обеспечения с открытым исходным кодом, можно найти во многих других проектах, таких как открытый исходный код, открытый контент и открытое сотрудничество . [58] [3]
Эта «культура» или идеология исходит из того, что принципы применяются в более общем плане для облегчения одновременного ввода различных программ, подходов и приоритетов, в отличие от более централизованных моделей развития, которые обычно используются в коммерческих компаниях. [15]
Более 90 процентов компаний используют программное обеспечение с открытым исходным кодом в качестве компонента своего фирменного программного обеспечения. [59] Решение использовать программное обеспечение с открытым исходным кодом или даже участвовать в проектах с открытым исходным кодом для улучшения существующего программного обеспечения с открытым исходным кодом, как правило, является прагматичным деловым решением. [60] [61] Когда фирменное программное обеспечение находится в прямой конкуренции с альтернативой с открытым исходным кодом, исследования показали противоречивые результаты о влиянии конкуренции на цену и качество фирменного продукта. [62]
В течение десятилетий некоторые компании делали обслуживание программного продукта с открытым исходным кодом для корпоративных пользователей своей бизнес-моделью. Эти компании контролируют программный продукт с открытым исходным кодом и вместо того, чтобы взимать плату за лицензирование или использование, взимают плату за улучшения, интеграцию и другое обслуживание. [63] Продукты программного обеспечения как услуги (SaaS), основанные на компонентах с открытым исходным кодом, становятся все более распространенными. [64]
Программное обеспечение с открытым исходным кодом предпочтительнее для научных приложений, поскольку оно повышает прозрачность и способствует проверке и принятию научных результатов. [65]
{{cite journal}}
: CS1 maint: DOI неактивен по состоянию на ноябрь 2024 г. ( ссылка )