Google Android нарушает условия лицензирования Linux?

1 апрель, 2011 - 09:45Елена Дериева

Проблемы, связанные с авторским правом, продолжают преследовать Google Android. На сегодняшний день в производстве уже находится больше десятка дел. Самым громким из них, конечно же, стал иск Oracle, утверждающей что в Android с нарушением используются огромные фрагменты защищенного кода Java. Но даже он может оказаться пустяком по сравнению с правовой миной, заложенной в центральном элементе архитектуры ОС, библиотеке, связывающей Android с базовым ядром Linux.

Операционная система Android произвела революцию в сегменте мобильных устройств, популярность ее растет стремительными темпами, как и число разработчиков сторонних приложений для данной платформы. Для многих из них источником дохода являются лицензионные отчисления, получение которых, естественно, требует защиты собственных разработок, по крайней мере от конкурентов. Эти особенности не остались тайной для Google, именно поэтому Android распространяется с использованием нескольких лицензий: GPL (ядро Linux), Apache Software License и BSD/MIT (именно они позволяют компаниям брать деньги за приложения, построенные на основе открытого кода, так распространяется, например ВМ Dalvik, из-за которой собственно и подала в суд Oracle), и приложения с закрытым кодом.

Сомнения в правовой чистоте использования открытого кода ОС Android впервые высказал еще в середине февраля известный специалист по защите авторских прав, декан юридического центра университета Хьюстона Реймонд Ниммер (Raymond Nimmer). Более подробное исследование проведенное известным борцом с патентованием программного обеспечения Флорианом Мюллером (Florian Mueller), заставляет всерьез задуматься о перспективах экосистемы новой ОС.

Как известно, Android построена на основе ОС Linux, открытой операционной системы, распространяемой по лицензии GPLv2, которая включает так называемый антикопирайт, «copyleft». Он позволяет свободно копировать и изменять код, но при этом требует, чтобы любой модифицированный код, либо созданный на его основе объект интеллектуальной собственности, также распространялся свободно. Основная цель данной концепции в GPLv2 состоит в том, чтобы сделать невозможным создание на основе GPLv2-лицензированного кода приватных или проприетарных программных продуктов. Именно поэтому, подчеркивают эксперты, работа с открытым кодом требует особого внимания к правовым и техническим деталям.

А что же с обязательствами антикопирайта в Android? Google Android построена на ядре Linux версии 2.6, лицензируемой по GPLv2, со всеми ее правами и обязательствами. Как любая платформа UNIX, ядро Linux включает систему заголовочных (или подключаемых) файлов (англ. header file), содержащих определения типов данных, структуры, прототипы функций, перечисления, макросы препроцессора. Заголовочные файлы Linux определяют интерфейс между самим ядром и программами, его использующими. Использовать заголовочные файлы приложение может двумя способами: либо непосредственно обращаться к ним (тогда исполняемые файлы должны распространяться по лицензии GPL) либо через библиотеку исполнения GNU C library (glibc), что чаще всего происходит в индустрии. glibc была создана с согласия разработчиков ядра Linux из подмножества заголовочных файлов ядра этой ОС в рамках проекта GNU и распространяется по лицензии LGPL. Именно с ней работают RedHat, SuSE, Ubuntu, пр., что дает возможность сторонним производителям ПО создавать программы на Linux, не попадающие под действие GPL.

Google же пошла своим путем и поступила хитро: более 2,5 Мб кода более чем 700 заголовочных файлов ядра Linux были скопированы, а затем обработаны специальным приложением, которое убрало из исходного кода комментарии и некоторые другие элементы. После этого компанией было заявлено, что полученный в результате данной процедуры материал не содержит данных, охраняемых авторским правом. Как отмечает известный специалист по защите авторских прав Эдвард Нотон (Edward Naughton), партнер компании Brown Rudnick, Google как минимум играет в сомнительную игру. Линус Торвальдс (Linus Torvalds), создатель первого ядра Linux, также отрицает возможность использования исходных заголовочных файлов ядра в исполняемых файлах, лицензируемых не под GPL. Реймонд Ниммер в своем исследовании подчеркивает, что были случаи разрешенного копирования небольших фрагментов открытого кода в проприетарное ПО исключительно для обеспечения функциональной совместимости, но эти прецеденты не могут стать сколько-нибудь существенной поддержкой аргументации Google в пользу копирования целых файлов исходного кода. По его мнению, некоторые (а возможно и многие) заголовочные файлы, использованные Google, определенно содержат материал, охраняемый авторскими правами, и, следовательно попадают под GPLv2.

Таким образом, в сомнительном правовом поле оказались не второстепенной важности элементы Android, а ключевой компонент архитектуры операционной системы, библиотека Bionic (стандартная библиотека языка C на платформе Android, используется сторонними разработчиками для доступа к ключевым функциям ОС Linux) которая сейчас распространяется под лицензией BSD, а не GPL. Тысячи программных компонентов Android без этой библиотеки просто не будут работать, более того, практически все сторонние приложения, написанные на C или C++, также обращаются к ней. Таким образом, очень вероятно, что большая доля стека приложений, в том числе и весьма популярные Adobe Flash Player или игра Angry Birds, попадают под лицензию GPL. Производители смартфонов на ОС Android также в большинстве случаев на C или C++ (например та же Motorola) пишут собственные надстройки, которыми их продукты отличаются от конкурирующих решений.

Как полагает Флориан Мюллер, у Google есть шансы вернуться в правовое поле, и даже не один. Теоретически, Google может вместо смешанной модели лицензирования попытаться использовать только GPL. Естественно, это обрадует поборников свободно распространяемого ПО, которые уже запустили собственный Android-проект IcedRobot, но вероятно цена такого решения будет слишком большой. Другой вариант – признать ошибку и попытаться заменить Bionic на принятый в индустрии стандарт glibc, используемый прямыми конкурентами, MeeGo и webOS, но с технической точки зрения это очень трудная задача. Более того, правки потребуют и все приложения сторонних разработчиков, написанные на C и C++. Но даже в этом случае не будет решена проблема с более ранними версиями Android.

В любом случае, по мнению эксперта, Google необходимо предпринимать какие-то действия для того, чтобы обезвредить мину замедленного действия, лежащую в основе ее мобильной ОС. В создании ядра Linux принимали участи сотни компаний и независимых программистов, и каждый из них может предъявить иск в нарушении GPL как самой Google, так и другим разработчикам экосистемы Android, причем мотивы могут быть самыми разными: от конкурентных конфликтов до личной неприязни к деятельности интернет-гиганта, от принципиальной борьбы за свободное распространение ПО до банальной потребности в деньгах. И если суд, действующий по нормам статутного и общего права определит, что Bionic действительно содержит код, защищенный авторским правом GPL, распространение всего ПО скомпилированного на основе Bionic (а также всех устройств, содержащих подобный код) будет остановлено до тех пор, пока оно не будет приведено в соответствие лицензии GPL.

Такое положение вещей неизбежно повлияет на популярность платформы, ведь если не будет возможности получать лицензионные отчисления от приложений, многие компании, софтверные и не только, откажутся от выпуска продуктов для этой ОС, что неизбежно приведет к коллапсу экосистемы Android.