Что такое открытый исходный код?
Открытый исходный код – это децентрализованная модель разработки, которая позволяет любому человеку изменять технологию и обмениваться ею, поскольку ее структура находится в открытом доступе. Этот термин возник в контексте разработки программного обеспечения для обозначения того, что программное обеспечение соответствует определенным критериям свободного распространения. Сегодня термин «метод открытого кода» обозначает более широкий набор ценностей, основанный на принципах свободного обмена информацией, быстрого создания образцов и совместной разработки. Каждый может вносить новые идеи и совершенствовать технологию, чтобы она развивалась органично.
Почему открытый исходный код важен?
Идея открытого исходного кода возникла в технологическом сообществе. Чтобы технические инновации развивались, необходимо глобальное сотрудничество. Например, команда программистов в США разрабатывает новую технологию с открытым исходным кодом для финансового приложения. Другая команда программистов в Австралии модифицирует технологию с помощью новых функций, более подходящих для сектора здравоохранения. Затем третья команда в Азии разрабатывает новые продукты с открытым исходным кодом, в которых в качестве основного компонента используется оригинальная технология.
Такой обмен знаниями и коллективные инновации приносят пользу всему сообществу. Ограничение доступа к технологиям при помощи патентов, авторских прав и дорогостоящих лицензий ограничивает прогресс. Многие популярные проекты с открытым исходным кодом способствовали быстрому развитию технологий во всем мире за последние несколько десятилетий.
Какие принципы открытого исходного кода?
Основные принципы любого проекта с открытым исходным кодом:
Сообщество
Сообщество с открытым исходным кодом – это группа людей, объединившихся для достижения общей цели. Их общие ценности и цели определяют принятие решений и двигают вперед проект с открытым исходным кодом.
Прозрачность
Проекты с открытым исходным кодом гарантируют, что каждый член сообщества имеет доступ к информации и материалам, необходимым для выполнения своей работы. Зная общую картину, члены команды принимают более эффективные решения и опираются на идеи и открытия друг друга.
Открытое сотрудничество
Общественные проекты поощряют командную работу, поэтому группа решает проблемы, которые не под силу отдельным людям. Например, участники любой инициативы с открытым исходным кодом вносят изменения, чтобы улучшить то, что создал кто-то другой. Вы также можете установить правила, чтобы другие могли изменять решение по мере необходимости в будущем.
Быстрое прототипирование
Проект с открытым исходным кодом следует итерационному подходу, при котором члены команды создают прототипы и часто ими обмениваются. Быстрое прототипирование поощряет культуру экспериментов. Вы можете улучшить и перенести изменения, которые работают, и избавиться от неработающих.
Всеохватывающая меритократия
Движение с открытым исходным кодом поощряет различные точки зрения и обсуждения. Сообщество принимает решения на основе консенсуса, но при этом расставляет приоритеты в пользу успеха. Лучшие идеи получают большую поддержку и усилия со стороны сообщества с открытым исходным кодом.
Какие особенности программного обеспечения с открытым исходным кодом?
Особенности любого программного обеспечения с открытым исходным кодом тесно согласуются с ценностями сообщества.
Открытый исходный код
Программное обеспечение с открытым исходным кодом должно выпускаться под лицензией с открытым исходным кодом, которая отвечает определенным критериям распространения. Перечень критериев указан ниже.
- Отсутствие ограничений на продажу или передачу программного обеспечения в качестве компонента совокупного распространения программного обеспечения
- Обязанность включать и разрешать распространение исходного кода
- Обязанность допускать модификации и производные работы
- Права, закрепленные в программе, должны применяться ко всем без дискриминации
Открытая разработка
Открытая разработка гарантирует прозрачный и открытый процесс проектирования и планирования программного обеспечения. Речь идет о том, чтобы позволить сообществу управлять дизайном программного обеспечения и набором функций. Это может быть непросто, поскольку достижение консенсуса сообщества может быть длительным процессом. Однако согласованный с сообществом дизайн приводит к созданию лучшего продукта, который более эффективно удовлетворяет потребности пользователей.
Открытая разработка
Открытая разработка – это принятие инклюзивных и прозрачных процессов разработки, которые позволяют всем участвовать в них на равных. Общедоступные сервисы делают деятельность в области развития заметной. Например, в проектах с открытым исходным кодом обычно принимается набор стандартов, где четко указаны метрики, по которым будет оцениваться вклад. Это позволяет уделять одинаковое внимание всем обновлениям программного обеспечения, будь то обновление от человека, впервые внесшего свой вклад, или от опытного разработчика.
Открытое сообщество
Открытое сообщество гарантирует, что сообщество разработчиков программного обеспечения является инклюзивной средой, где голос каждого будет услышан и каждый может занять руководящие позиции. Это позволяет сбалансировать потребности разработчиков и пользователей путем установления общих целей и создания прочных связей.
Что такое программное обеспечение с открытым исходным кодом?
Программное обеспечение с открытым исходным кодом – это программное обеспечение с исходным кодом, который каждый может изучить, изменить и улучшить. Исходный код – это часть программного обеспечения, с которой программисты работают, чтобы изменить работу приложения или добавить новые функции. Любой человек, имеющий доступ к исходному коду программы, может улучшить или настроить приложение, добавив в него функции или устранив существующие ошибки. Программное обеспечение с открытым исходным кодом присутствует в большинстве веб-приложений и устройств, которыми вы пользуетесь сегодня. Примерами программного обеспечения с открытым исходным кодом являются Linux, операционная система с открытым исходным кодом, и Mozilla Firefox, интернет-браузер с открытым исходным кодом.
Чем отличается программное обеспечение с открытым исходным кодом от других видов программного обеспечения?
Иногда организации или люди, создающие программное обеспечение, предпочитают контролировать его по коммерческим причинам. Они сохраняют исключительные права собственности на исходный код, что означает, что только они могут изменять код для исправления ошибок или добавления новых функций. Такое программное обеспечение называется частным, или программным обеспечением с закрытым исходным кодом. Примеры частного ПО – это Adobe Photoshop и Norton AntiVirus.
Программное обеспечение с открытым исходным кодом и программное обеспечение с закрытым исходным кодом
Три основных отличия программного обеспечения с открытым исходным кодом от закрытого или частного программного обеспечения заключаются в следующем:
Надежность
Безопасность
Любой исходный код может иметь недостатки безопасности, которые делают его уязвимым для кибератак. Однако преимущество программного обеспечения с открытым исходным кодом заключается в более быстрых исправлениях. Как только вы или другие члены сообщества сообщают об уязвимостях в системе безопасности, проекты с открытым исходным кодом выпускают обновление кода в течение одного-двух дней. Если коммерческие компании разрабатывают программное обеспечение с открытым исходным кодом, широкая известность создает необходимость срочного устранения проблем и может даже поспособствовать созданию более качественного исходного ПО.
И наоборот, частное программное обеспечение имеет более длительные циклы обновления по таким причинам:
- У поставщика может быть меньше людей, работающих над конкретным проектом.
- Поставщик может отдать предпочтение финансовым соображениям, а не проблемам с безопасностью.
- Поставщик может задержать выпуск обновления безопасности, потому что хочет объединить несколько изменений и выпустить их сразу.
Лицензирование
- Изменять исходный код для собственных проектов.
- Распространять измененный код, если пользователи продолжают разрешать другим просматривать свои изменения.
Какие существуют типы программного обеспечения с открытым исходным кодом?
Хотя лицензия с открытым исходным кодом является менее ограничительной, чем частная, уровень и диапазон разрешений зависит от типа лицензии. Ниже перечислены основные типы лицензий с открытым исходным кодом.
Лицензия общественного достояния
Лицензия общественного достояния означает, что любой человек может изменять, использовать или коммерциализировать программное обеспечение без ограничений. В большинстве случаев создатели ПО с открытым исходным кодом, являющегося общественным достоянием, приняли намеренное или добровольное решение не соблюдать авторские права на программное обеспечение.
Либеральная лицензия
Либеральные лицензии с открытым исходным кодом содержат минимальные требования к тому, как вы можете изменять или распространять программное обеспечение. Примерами этого типа лицензии являются Apache и Berkeley Source Distribution (BSD). Хотя оригинальное программное обеспечение защищено авторским правом и имеет открытый исходный код, пользователи могут коммерциализировать и распространять модифицированные версии.
Меньшая стандартная общественная лицензия
Меньшая стандартная общественная лицензия (LGPL) дает возможность использовать компоненты с открытым исходным кодом без ограничений. Эти компоненты часто доступны в виде модулей кода, называемых библиотеками, которые вы можете подключить к любому своему коду и использовать. Если вы используете исходный код LGPL в своем приложении, вы можете коммерциализировать приложение. Однако если вы изменяете существующий код LGPL, вы должны снова распространять его по той же лицензии.
Свободная лицензия
- Если вы изменяете компоненты с открытым исходным кодом со свободной лицензией, вы должны выпустить весь новый исходный код вместе с вашим приложением. Однако это не обязательно делать, если вы используете приложение только внутри компании и не публикуете его в открытый доступ.
- Вы можете продавать свои GPL-модификации, но покупатель может распространять их дальше по своему усмотрению.
- Вы должны упомянуть всех предыдущих авторов кода в заявлении об авторских правах вашего нового кода.
Кто регулирует использование программного обеспечения с открытым исходным кодом?
Open Source Initiative (OSI) – это глобальная некоммерческая организация, которая занимается просвещением и пропагандой всех видов программного обеспечения с открытым исходным кодом. В качестве органа по стандартизации она поддерживает Open Source Definition – документ, который юридически определяет условия, делающие любое программное обеспечение открытым.
Следуя этому документу организации, вы можете получить одобренный OSI лицензионный товарный знак. Торговая марка повышает доверие пользователей и побуждает других вносить свой вклад и сотрудничать с вами. OSI ведет список утвержденных лицензий и одобряет новые лицензии в сообществе по открытому исходному коду, а также регулирует требование открытых стандартов для программного обеспечения.
Что такое открытые стандарты?
Открытые стандарты – это правила разработки программного обеспечения, которые поддерживают единообразие и совместимость технологий. Они находятся в свободном доступе для внедрения, принятия и обновления, чтобы в результате сделать многие аспекты нашей повседневной жизни более комфортными и удобными.
Например, стандарты позволяют всем типам машин подключаться ко всем типам беспроводных маршрутизаторов. Вы можете использовать свой ноутбук для подключения к Интернету из дома и из любимого кафе, независимо от того, какой маршрутизатор используется. Без стандартов вам пришлось бы искать кафе с маршрутизатором, совместимым с вашим ноутбуком!
Сравнение открытого исходного кода и открытых стандартов
Стандарты – это правила, рекомендации и спецификации для написания определенных типов исходного кода, а не сам код. Стандарты программного обеспечения должны следовать определенным правилам, чтобы быть классифицированными как открытый исходный код. Например, если для реализации определенных стандартов требуется частная технология, то эти стандарты не являются открытым исходным кодом.
Почему существуют коммерческие версии программного обеспечения с открытым исходным кодом?
Создатели и другие компании монетизировали многие проекты с открытым исходным кодом, продавая дополнения, такие как аналитика или безопасность, которые привлекают более крупные компании. Частные компании могут коммерциализировать все программное обеспечение, находящееся в общественном достоянии, путем включения этих программ с открытым исходным кодом в код своих приложений. Они также могут выпускать разные версии одного и того же программного обеспечения под разными лицензиями.
Например, допустим, компания выпускает систему управления базами данных как под лицензией General Public License (GPL), так и под частной лицензией. Любой может использовать версию GPL для разработки программного обеспечения при условии, что он сделает новый код открытым. В отличие от этого, частная версия предлагает дополнительные программные услуги, например следующие:
- Полностью управляемый сервис баз данных
- Служба резервного копирования данных корпоративного уровня
- Дополнительное шифрование безопасности
Является ли программное обеспечение с открытым исходным кодом тем же, что и свободное программное обеспечение?
Термин свободное программное обеспечение относится к общественному движению, также называемому движением свободного программного обеспечения, целью которого является получение и гарантирование определенных свобод для пользователей ПО. Это движение стремится к тому, чтобы у пользователей была свобода делать следующее:
- запускать,
- изучать,
- изменять программное обеспечение
- и обмениваться его копиями.
Программное обеспечение с открытым исходным кодом и свободное программное обеспечение
Сегодня свободное программное обеспечение относится к лицензиям с открытым исходным кодом в общественном достоянии. ПО с открытым исходным кодом теперь включает больше типов лицензий и может накладывать некоторые ограничения на пользователей, в отличие от движения за свободное программное обеспечение. Поскольку термины «бесплатное программное обеспечение» и «свободное программное обеспечение» используются как взаимозаменяемые, лучше говорить о свободном программном обеспечении как о ПО, являющемся общественным достоянием.
Программное обеспечение с открытым исходным кодом и свободное программное обеспечение
Термин бесплатное программное обеспечение просто означает коммерческий продукт, который предоставляется бесплатно в течение ограниченного времени. Бесплатное ПО также может быть бесплатной пробной версией или версией с ограниченными возможностями продукта, которая в противном случае требует абонентской платы. Даже если вы получите доступ к свободному программному обеспечению, у вас не будет права перепродавать, распространять или каким-либо образом его изменять.
Как AWS вносит свой вклад в программное обеспечение с открытым исходным кодом?
В AWS мы считаем, что открытый исходный код полезен для всех. Мы стремимся донести ценность открытого исходного кода нашим клиентам и операционную эффективность AWS сообществам разработчиков открытого исходного кода. Инженеры AWS регулярно разрабатывают программное обеспечение с открытым исходным кодом и вносят свой вклад в работу тысяч сообществ разработчиков открытого исходного кода на GitHub, Apache, Linux Foundation и других. Вот еще несколько способов, которыми мы поддерживаем открытый исходный код:
- Мы приложили все усилия для того, чтобы клиенты могли развернуть и использовать в облаке предпочитаемое ими программное обеспечение с открытым исходным кодом. AWS поддерживает более широкий спектр технологий с открытым исходным кодом, чем другие облачные провайдеры.
- У нас есть несколько долгосрочных проектов в сообществе с открытым исходным кодом. Мы постоянно вносим в эти проекты исправления ошибок, улучшения безопасности, масштабируемости, производительности и функциональности.
- Мы тесно сотрудничаем с ведущими компаниями с открытым исходным кодом (от HashiCorp и MongoDB до Confluent и Red Hat) и помогаем им превосходить ожидания клиентов.
Узнайте больше о проектах AWS с открытым исходным кодом на этой странице или изучите более 1200 проектов с открытым исходным кодом под руководством Amazon на GitHub.
Начните работу с открытым исходным кодом на AWS, создав бесплатный аккаунт уже сегодня.
Следующие шаги на AWS
Просмотреть уровень бесплатного пользования сервисами AWS