Открыть сервисСервис

Shared Source

Shared Source — это инициатива корпорации Microsoft, в рамках которой предоставляется доступ к исходному коду программного обеспечения для ознакомления, изучения и, в определённых случаях, модификации, но без соблюдения всех критериев, присущих открытому программному обеспечению (Open Source) и свободному программному обеспечению (Free Software). Термин «Shared Source» (с англ. — «совместный исходный код») описывает набор лицензий и программ, которые занимают промежуточное положение между проприетарным (закрытым) и полностью открытым кодом.

История

Инициатива Microsoft Shared Source была официально анонсирована 3 мая 2001 года. Её появление было связано с несколькими факторами:

  • Рост популярности Open Source: К концу 1990-х годов движение за открытое программное обеспечение, в частности операционная система Linux, набрало значительную силу. Microsoft, чья бизнес-модель традиционно основывалась на продаже лицензий на проприетарное ПО, столкнулась с необходимостью реагировать на этот вызов.
  • Критика закрытости: Разработчики, особенно в академической среде и в сфере корпоративных решений, критиковали Microsoft за непрозрачность и невозможность аудита кода для выявления уязвимостей или понимания работы системы.
  • Потребности крупных клиентов: Крупные корпоративные и государственные заказчики требовали доступа к исходному коду для обеспечения безопасности и соответствия внутренним стандартам.

Первоначально программа была ограничена. В 2001 году доступ к исходному коду получили представители правительств некоторых стран (в рамках программы Government Security Program, GSP) и крупные корпоративные партнёры. В 2002 году была запущена программа Shared Source CLI (Common Language Infrastructure), которая позволила разработчикам изучать и портировать реализацию .NET Framework. В 2004 году Microsoft выпустила первую версию лицензии Microsoft Permissive License (Ms-PL), которая была признана Open Source Initiative (OSI) как соответствующая определению открытого ПО. Однако большинство продуктов, распространяемых по лицензиям Shared Source, не являются открытыми в полном смысле этого слова.

Отличия от Open Source и Free Software

Основное различие между Shared Source и классическим открытым/свободным ПО заключается в ограничениях, накладываемых лицензиями. В то время как Open Source Definition (OSD) и Free Software Definition (FSD) требуют, чтобы лицензия гарантировала свободу распространения, модификации и использования в любых целях (включая коммерческие), лицензии Shared Source часто содержат одно или несколько из следующих ограничений:

  • Запрет на коммерческое использование: Код можно изучать и модифицировать, но нельзя использовать в коммерческих продуктах.
  • Ограничения на распространение: Разрешено распространение только в неизменном виде или только в составе определённых продуктов.
  • Запрет на создание производных работ: Модифицировать код можно только для личного использования, но нельзя распространять изменения.
  • Географические ограничения: Доступ к коду может быть ограничен для определённых стран (например, в рамках экспортного контроля США).

Таким образом, Shared Source предоставляет доступ к исходному коду, но не предоставляет всех четырёх свобод, определённых Фондом свободного программного обеспечения (FSF): свобода использования, изучения, распространения и улучшения. Это делает Shared Source формой проприетарного ПО с открытым исходным кодом.

Основные лицензии Shared Source

Microsoft разработала несколько лицензий, входящих в семейство Shared Source. Наиболее известные из них:

Microsoft Public License (Ms-PL)

Это самая свободная лицензия из семейства. Она позволяет распространение и модификацию кода, в том числе в коммерческих целях, при условии сохранения уведомлений об авторских правах. Ms-PL была одобрена OSI и FSF (с некоторыми оговорками). Она не требует, чтобы производные работы распространялись под той же лицензией (не является «копилефт»). Примеры проектов под Ms-PL: библиотеки .NET Micro Framework, ASP.NET MVC.

Microsoft Reciprocal License (Ms-RL)

Эта лицензия является «копилефт» на уровне файлов. Она разрешает распространение и модификацию, но требует, чтобы любые изменения в файлах, распространяемых под Ms-RL, также публиковались под Ms-RL. Однако код, который просто использует эти файлы (например, подключается к ним как к библиотеке), может распространяться под любой другой лицензией. Ms-RL также одобрена OSI.

Microsoft Limited Public License (Ms-LPL)

Эта лицензия является вариантом Ms-PL, но с ограничением: она действительна только для продуктов, разработанных для платформы Microsoft Windows. Это делает её непереносимой и, следовательно, несовместимой с определением Open Source, которое требует технологической нейтральности.

Microsoft Community License (Ms-CL)

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

Примеры проектов, распространяемых по Shared Source

Многие ключевые технологии Microsoft были выпущены по лицензиям Shared Source, что позволило разработчикам лучше понять их внутреннее устройство:

  • Windows Driver Kit (WDK): Исходный код классов драйверов и примеров.
  • .NET Framework (частично): До 2014 года значительная часть библиотек классов .NET Framework распространялась по лицензии Ms-RL. В 2014 году Microsoft перешла на полностью открытую лицензию MIT для .NET Core, что стало важным шагом в сторону Open Source.
  • ASP.NET MVC: Исходный код был доступен по Ms-PL.
  • Windows Calculator: Исходный код классического калькулятора Windows был выпущен под лицензией MIT в 2019 году, но до этого он распространялся по одной из лицензий Shared Source.
  • Microsoft Reference Source Code: Специальный сервер (referencesource.microsoft.com), где публиковался исходный код библиотек .NET Framework для отладки и изучения, но без права модификации и распространения.

Критика

Инициатива Shared Source с самого начала подвергалась критике со стороны сообщества открытого ПО и защитников свободного программного обеспечения.

  • Маркетинговый ход: Критики, в том числе Ричард Столлман (основатель FSF), называли Shared Source попыткой Microsoft «присвоить» термин «открытый код» и создать иллюзию открытости, не жертвуя контролем над своей интеллектуальной собственностью. Термин «Open Source» стал ассоциироваться с доверием, и Microsoft пыталась получить это доверие, не принимая на себя обязательств, налагаемых настоящими открытыми лицензиями.
  • Несовместимость с Open Source: Большинство лицензий Shared Source не соответствуют OSD, что означает, что код, распространяемый по ним, не может использоваться в проектах с открытым исходным кодом без нарушения лицензий.
  • Ограниченная польза для сообщества: Возможность только «смотреть» на код, но не вносить в него изменения и не распространять их, значительно снижает ценность Shared Source для разработчиков, которые хотят активно участвовать в развитии ПО.
  • «Вирусный» эффект Ms-RL: Хотя лицензия Ms-RL является «копилефт» на уровне файлов, её условия могут быть сложны для понимания и соблюдения, что создаёт юридические риски для разработчиков, использующих такой код.

Влияние и эволюция

Несмотря на критику, Shared Source сыграла важную роль в изменении политики Microsoft в отношении открытого кода. Она позволила компании начать диалог с сообществом разработчиков и постепенно перейти к более открытым моделям. В 2010-х годах, под руководством генерального директора Сатьи Наделлы, Microsoft кардинально изменила свою стратегию. Компания начала активно вносить вклад в Open Source-проекты, выпустила .NET Core под лицензией MIT, приобрела GitHub (крупнейшую платформу для хостинга кода) и сделала многие свои продукты (Visual Studio Code, PowerShell, TypeScript) полностью открытыми.

Сегодня концепция Shared Source в её первоначальном виде утратила своё значение. Microsoft в основном использует стандартные открытые лицензии (MIT, Apache 2.0, GPL) для новых проектов. Однако наследие Shared Source остаётся в виде некоторых старых продуктов и лицензий, а также как исторический этап в эволюции взаимоотношений между крупными проприетарными вендорами и сообществом открытого ПО.

Источники

  • Microsoft Shared Source Initiative (архивные материалы Microsoft).
  • Определение открытого программного обеспечения (Open Source Initiative).
  • Определение свободного программного обеспечения (Free Software Foundation).
  • Статьи и комментарии Ричарда Столлмана о Shared Source.
  • Публичные заявления и блоги сотрудников Microsoft (2001–2010 гг.).
  • Документация по лицензиям Microsoft (Ms-PL, Ms-RL, Ms-LPL).