Роман с продолжением: Зачем Microsoft подружилась с Linux?
АрхивЭтой осенью в мире открытого ПО творится что-то странное. Происходят события, еще пару месяцев назад казавшиеся невозможными. Microsoft планирует продавать Linux от Novell, а Билл Гейтс признает, что "развитие Open Source - очень здоровое явление", хоть и представляющее опасность для могущества его родной корпорации.
Этой осенью в мире открытого ПО творится что-то странное. Происходят события, еще пару месяцев назад казавшиеся невозможными. Microsoft планирует продавать Linux от Novell, а Билл Гейтс признает, что "развитие Open Source - очень здоровое явление" (см. "КТ" #662, "Увидеть Билла"), хоть и представляющее опасность для могущества его родной корпорации. Однако в сообществе открытого кода [Здесь и далее термины open source и свободный софт считаются эквивалентными аббревиатуре FOSS (Free/Open Source Software)] такие заявления воспринимаются с большой настороженностью, местами переходящей в открытую агрессию. Так что же все-таки происходит?
Дружба дружбой…
Вообще-то, особой новости в сотрудничестве софтверного гиганта с различными успешными open source-компаниями нет: времена, когда в Microsoft величали открытый софт не иначе, как "раковой опухолью", видимо, прошли. Достаточно вспомнить такие имена, как SugarCRM, XenSource или Zend. Совместная работа над интероперабельностью и улучшением производительности Windows-версий популярных открытых продуктов стала нормой, и сообщения о подобных соглашениях воспринимались достаточно спокойно, хотя и без особых восторгов. Кто-то продолжал видеть в каждом новом партнере Microsoft "предателя идеалов Free Software, продавшего душу дьяволу" или "невинную жертву, попавшую в лапы софтверного гиганта", но в целом обстановка не давала поводов для громких заявлений.
Вероятно, если бы ноябрьская сделка с Novell включала в себя лишь пункты о работе над виртуализацией, совместимостью форматов и даже совместных маркетинговых усилиях, то и она осталась бы таким же рядовым сообщением в ленте новостей и послужила поводом лишь для очередных шуток на тему "Microsoft Linux". Однако внимание общественности привлекла патентная часть соглашения - что неудивительно, поскольку именно софтверные патенты являются одной из самых серьезных угроз свободному софту. На первый взгляд кажется, что взаимные обязательства двух компаний не предъявлять друг другу претензий - просто естественный обмен заверениями в вечной дружбе между новыми партнерами. Но более внимательный анализ показывает, что здесь действительно есть над чем призадуматься.
Пакт Баллмера-Овсепяна?
В ответ на вопрос "Что вы будете делать, если Microsoft нарушит условия соглашения" в IRC-конференции, представитель Novell оптимистично ответил: "Мы не думаем, что это произойдет".
Логика критиков Novell проста. Очевидно, что если в компании готовы выплачивать какую-то сумму за "патентное ненападение", то там считают его возможным (а иначе зачем платить?). Возможно оно только в случае, если распространяемые Novell программы действительно нарушают какие-то патенты, принадлежащие Microsoft. (Установить это точно может только суд; следует отметить, что речь идет не о будущих разработках, а о уже написанном и используемом ПО.) А раз так, то патентный иск может быть предъявлен любой другой компании, использующей те же программы, что и Novell, но не договорившейся с Microsoft. Это означало бы конец Linux как свободной операционной системы - по крайней мере, до тех пор, пока нарушения патентов будут иметь место.
Формально опасность патентной атаки на пользователей или разработчиков свободного софта вообще и Linux в частности была всегда, и наличие соглашения между двумя компаниями не должно затрагивать других "потенциальных жертв". Однако "психологически" все обстоит не совсем так. Нарушает Linux какие-то патенты Microsoft или нет - науке неизвестно, и не будет известно до проверки этого утверждения судом. Но до сих пор все разработчики open source в один голос заявляли, что никаких патентов Linux не нарушает. Собственно, именно эту "корпоративную этику" Novell вольно или невольно и нарушила - по крайней мере, в глазах многих участников сообщества. Как мы уже сообщали (см. новость в предыдущем номере), впоследствии Стив Баллмер подтвердил опасения на этот счет, заявив вскоре после заключения сделки, что Linux включает в себя запатентованную интеллектуальную собственность Microsoft, а все его пользователи задолжали софтверному гиганту. Novell оперативно выпустила уточнение, что они ничего такого при заключении соглашения не имели в виду - в Microsoft ответили, что позицию Novell уважают, но остаются при своем мнении. На том пока и порешили.
Здесь есть еще один важный момент. Как известно, лицензия GPL, под которой распространяется ядро Linux, а также вся система GNU, разрешает распространение и изменение программы только при условии доступности ее исходного кода. Тем самым любой разработчик, использующий свободный софт под GPL и улучшающий его для собственных нужд (или для нужд клиентов), обязан делиться своими достижениями с сообществом. GPL-свободная программа не может в один прекрасный день стать проприетарной. Это требование (известное как копилефт) оказалось ключевым в развитии свободной кодовой базы, на которую сейчас опираются в том числе все линукс-вендоры. Однако именно этот пункт GPL оказывается под угрозой. Действительно, работая под защитой патентного соглашения, Novell может добавить в GPL-код реализацию любой запатентованной Microsoft технологии, формально опубликовав свои исходники. Сама компания такую возможность категорически отвергает, но теоретическая угроза, которую несут подобные пакты, остается. И "некоммерческие индивидуальные разработчики" даже смогут добавить запатентованные наработки в свои программы. Однако если какая-то другая компания попытается их использовать в коммерческих интересах, ее теоретически может ожидать повестка в суд - за нарушение патента, принадлежащего Microsoft. Тем самым заключившая соглашение компания получает преимущество перед конкурентами не за счет качества своего продукта, а за счет "сепаратного мира" с владельцем патентов - а это полностью противоречит идее свободного (в т. ч. и для коммерческого использования) программного обеспечения.
Ведущий линукс-вендор Red Hat окрестил такую ситуацию "innovation tax" - налог на инновации, и решительно отверг возможность вступления в аналогичное соглашение с софтверным гигантом. Резкое заявление выпустила и команда разработчиков Samba: "Только совместными усилиями мы можем предотвратить опасность разъединения, которую несут патенты. Своим соглашением с Microsoft компания Novell попыталась уничтожить эту объединенную линию обороны, разменяв долгосрочные интересы всего сообщества пользователей и создателей свободного программного обеспечения на краткосрочные преимущества, которые она получила над своими конкурентами".
Взлом GPL
Надо заметить, что Ричард Столлмен предвидел возможность такого развития событий еще в 1991 году, когда писалась вторая версия лицензии GPL. Благодаря этому в нее был включен раздел за номером 7, призванный блокировать подобные сделки. Суть его в том, что если лицензиат по какой-либо причине не может обеспечить передачу всех гарантируемых лицензией прав всем прямым или непрямым получателям его программы, то он не может ее распространять вовсе. Причем в тексте лицензии в качестве примера приводится именно патентное соглашение, подозрительно напоминающее сделку Novell с Microsoft.
Естественно, о седьмом разделе GPL многие комментаторы вспомнили сразу, как только прочитали радостный пресс-релиз Novell. На компанию тут же посыпались обвинения в нарушении лицензии, что могло бы привести к автоматическому прекращению ее действия и, следовательно, отзыву всех прав на модификацию и распространение многих ключевых компонентов дистрибутива Novell SuSE Linux. Однако из оперативно выпущенных пояснений стало ясно, что юристы обеих компаний свой хлеб едят не зря: соглашение было составлено таким образом, чтобы не противоречить тексту GPL. В частности, Novell не получает лицензии на использование патентов Microsoft, а "ненападение" распространяется только на ее клиентов, а не на саму компанию. В результате соглашение не подпадает под действие запрета лицензии. По крайней мере, так считают в Novell и Microsoft.
С этого момента спор о возможности нарушений со стороны Novell перешел в такую фазу, в которой простым смертным без юридического образования понять, что означают написанные слова и кто здесь все-таки прав, уже невозможно. Да и юристам это сделать не так-то просто, особенно не имея нужной информации. Стараясь доказать свою невиновность перед GPL и сообществом, Novell даже предоставила юрисконсульту Free Software Foundation Эбену Моглену (Eben Moglen) доступ к полному тексту соглашения (составляющему коммерческую тайну, конечно). Однако анализ сделки, которая готовилась полгода, тоже займет существенное время, равно как и подготовка возможных рекомендаций по изменению ее условий.
Мотивы Novell
Как бы то ни было, реакция в сообществе показывает, что даже если буква GPL нарушена и не была, то духу свободного ПО злосчастная сделка явно противоречит, и вряд ли она добавит авторитета Novell. Даже далекие от технологий финансовые аналитики Credit Suisse отметили это как один из долговременных негативных факторов, не компенсирующих разовое финансовое "вливание", полученное благодаря сделке.
Сейчас уже трудно сказать, что побудило компанию пойти на такой шаг. Конечно, возможность "защитить" своих клиентов даже от воображаемой опасности и улучшить свои финансовые показатели выглядит ой как привлекательно. Вероятно, не последнюю роль здесь сыграл проект Mono, перешедший под крыло Novell вместе с фирмой Ximian два года назад. Напомню, что Mono - это свободная реализация платформы .Net, позволяющая (в идеале) запускать любое .Net-приложение под Linux и другими поддерживаемыми системами. Будучи основанной на спецификациях Microsoft, Mono случайно может нарушать какие-то патенты софтверного гиганта, хотя разработчики клянутся, что никогда не включали в проект никакой патентоопасный код. Однако долгое время неопределенный статус проекта сдерживал его развитие и распространение - например, Red Hat не включала его (и теперь уже вряд ли когда включит) в коммерческую версию своего дистрибутива (ссылаясь, впрочем, скорее на технические, чем на лицензионные причины).
Неудивительно, что главные разработчики Mono вздохнули с облегчением, узнав, что дамоклов меч возможных патентных претензий над их пользователями теперь не висит. (По крайней мере, над частью пользователей.) Впрочем, они заявляют, что собственных правил менять не намерены, и любые запатентованные технологии в Mono недопустимы. Но вряд ли этому поверит та же Red Hat, особенно послушав речь Баллмера по поводу "линуксоидов-должников".
Мотивы Microsoft
Я не поощраю разработчиков искать информацию о патентах. Спросите любого юриста, и он подтвердит мои слова. Это не их работа.
Линус Торвальдс в интервью News.com
Привыкнув ждать от софтверного гиганта только пакости, сторонники свободного софта уже предложили множество версий того, как будет захвачена и уничтожена Linux с помощью патентного соглашения.
Впрочем, многие эксперты склоняются к мысли, что Редмонд не станет устраивать "большую патентную войну". На то есть несколько причин. Во-первых, если бы в Microsoft действительно были уверены в том, что нарушения патентов имеются, то вряд ли стали бы ждать, когда Linux "вырастет" и станет реальной угрозой, а попытались бы задушить его гораздо раньше [redmonk.com/sogrady/2006/11/03/theres-a-novell-idea-the-microsoftnovell-qa]. С другой стороны, сейчас у Linux достаточно защитников, обладающих солидными патентными портфолио, которые могут ответить на агрессию Microsoft встречными исками - и еще неизвестно, кто в конце концов останется в живых.
Скорее речь идет о стратегии FUD (Fear, Uncertainty and Doubt), то есть о попытке посеять страх, неуверенность и сомнение в сознании реальных или потенциальных пользователей Linux, используя все доступные для этого средства. Компания выводит на рынок Windows Vista, и скоро очень многие ее клиенты столкнутся с необходимостью апгрейда. А это очень удачный момент для Linux-вендоров напомнить о своих решениях и попытаться "переманить" к себе часть пользователей. Конечно, активно циркулирующие, но при этом никем не подтвержденные слухи о возможных проблемах в случае миграции на "неправильный" дистрибутив могут сыграть определенную роль в этой ситуации.
Обвинения бывает очень трудно опровергать, особенно когда они предъявляются полунамеками и совершенно неясно, в чем именно обвиняешься. Что-то похожее мы уже видели, когда SCO долго убеждала всех, что владеет правами на часть кода Linux, но при этом затруднялась четко сказать, что именно было "украдено". Соответствующий процесс все еще идет, но теперь уже мало кто верит в победу SCO.
Жизнь после
Какими бы ни были долговременные последствия сделки Microsoft и Novell для этих компаний и для всех нас, уже сейчас можно сделать некоторые выводы.
Софтверные патенты представляют очевидную опасность для движения свободного софта. Проблема с закрытостью исходного кода нужной программы решается просто: достаточно потратить некоторое время и написать нужный функционал с нуля. С патентами ситуация сложнее, поскольку далеко не всегда патент можно "обойти", реализовав функционал другим способом - особенно если речь идет о технологии, ставшей стандартом "де-факто". Создание альтернативной непатентованной технологии, ее раскрутка и внедрение может потребовать немалого времени и ресурсов. К тому же патент значительно проще нарушить.
Стало отчетливо видно, что GPL действительно нуждается в "апгрейде", поскольку в текущем тексте есть юридическая дыра, позволяющая с помощью патентов нарушить дух лицензии, соблюдая букву.
Выступая на конференции, посвященной GPL v3, Ричард Столлмен сказал, что, быть может, даже хорошо, что все случилось именно сейчас, когда окончательный текст новой версии еще не выпущен. Соглашение между Novell и Microsoft стало хорошим тестом текущего черновика - и тест этот он успешно провалил. Однако необходимые изменения, блокирующие подобного рода пакты, еще можно внести, и это обязательно будет сделано - их точная формулировка сейчас разрабатывается Эбеном Могленом. Конечно, GPL v3 не возымеет мгновенного действия, поскольку большая часть доступного сейчас кода останется доступной и под GPL v2, а для ядра Linux вообще не планируется отказываться от старой доброй лицензии, но с ростом доступной только под GPL v3 кодовой базы будет увеличиваться и влияние ее требований.
Подробности
Microsoft обязуется не возбуждать исков по поводу нарушения патентов против пользователей, являющихся клиентами Novell, а также против "индивидуальных некоммерческих разработчиков open source". Novell принимает на себя аналогичные обязательства в отношении клиентов Microsoft. При этом за патентную часть соглашения Microsoft выплачивает Novell $108 млн. сразу (плюс к $240 за контракты на обслуживание Novell SuSE Linux, которые Microsoft планирует продавать своим клиентам), а Novell в ответ обязуется выплатить в течение пяти лет (срок действия соглашения) неопределенную сумму, зависящую от своих доходов, но составляющую не менее $40 млн.
Важно несколько моментов. Во-первых, "индивидуальный некоммерческий разработчик" (в трактове Microsoft) - это что-то вроде "сферического коня в вакууме". Существенная часть свободного кода пишется сотрудниками различных компаний в рамках выполнения ими своих служебных обязанностей - на них патентная защита не распространяется. Во-вторых, обещание не подавать исков против пользователей относится только к клиентам корпоративных версий Novell SuSE Linux. Пользователи OpenSUSE (community-дистрибутива Novell) остаются "за бортом" (хотя его разработчики защищаются специальным разделом соглашения).