AMD создала видеодрайвер для Windows EC 7 на основе портирования открытого драйвера из Linux

Один из инженеров компании AMD опубликовал в списке рассылки dri-devel сообщение, свидетельствующее о том, что подготовленный компанией проприетарный видеодрайвер с поддержкой GPU Evergreen (Radeon HD 5000) для платформы Windows Embedded Compact 7 был создан путем портирования открытого DRM-драйвера Radeon, развиваемого сообществом для платформы Linux. ОС Windows EC 7 продолжает развитие Windows CE и направлена на использование в различных встраиваемых платформах, но также может быть задействована на планшетных ПК.

В результате проведённой работы выпущен проприетарный драйвер, код которого является закрытым, но подобное закрытие производных наработок не запрещает лицензия MIT, под которой распространяется исходный драйвер для Linux. Так как речь ведется о DRM-драйвере, выполненном в виде модуля для ядра Linux (лицензия MIT совместима с GPL), для решения проблемы с использованием в закрытом Windows-драйвере некоторых связанных с DRM-драйвером функций из ядра Linux было использовано интересное решение - подобные, распространяемые под GPL, функции были заменены на аналоги из ядра FreeBSD, код которых доступен под лицензией BSD.

Тем не менее, опасение вызывает то, что с момента создания поставляемого под лицензией MIT кода DRM-модуля, в него могли быть добавлены изменения и дополнения, основанные на других частях кода ядра Linux (патчи могли содержать GPL-код), т.е. не исключена ситуация со смешиванием кода под лицензиями MIT и GPL. С кодом, заимствованным из X.Org, подобные проблемы не возникли, так как сам X.Org распространяется под лицензией MIT.

Создать драйвер для Windows EC 7 на основе открытого кода оказалось целесообразнее, чем адаптировать выпускаемый для настольных Windows-систем драйвер Windows Catalyst, несмотря на то, что открытый драйвер пока отстаёт по производительности, имеет недостаточно средств управления питанием и не поддерживает многие функции, такие как акселерация декодирования и кодирования видео. При этом, нет принципиальных проблем с портированием проприетарного драйвера Windows Catalyst, который развивается с оглядкой на многоплатформенность, например, многие части Windows Catalyst используются совместно с проприетарным драйвером Catalyst для Linux. Возможно причина кроется в излишней раздутости драйвера Catalyst, который состоит из нескольких миллионов строк кода, в то время как открытый аналог укладывается в десятки тысяч строк.

Указанное событие не стоит рассматривать как паразитирование корпорации на открытом ПО, это скорее пример удачного взаимовыгодного сотрудничества, при котором компания AMD вначале открыла код прототипа драйвера для Linux, затем сообщество довело его до работающего состояния, после чего AMD использовала полученные результаты для создания своего продукта.

©  OpenNet