Драйвер для видеоускорителя Broadcom VideoCore оказался не так открыт, как кажется
25 октября 2012 года
Дэвид Эйрли (David Airlie), один из наиболее активных разработчиков X.Org, выступил с критикой открытого вчера драйвера для видеоускорителя Broadcom VideoCore. Как известно, изначально драйвер был разделён на две части: работающий на уровне ядра модуль и набор библиотек для непосредственного взаимодействия с GPU. Функции модуля, работающего на уровне ядра, сводятся к организации обмена сообщениями между GPU и работающим на уровне пользователя кодом, который до вчерашнего дня распространялся в бинарном виде.
Дэвид Эйрли обратил внимание на то, что даже при открытии пользовательских компонентов драйвера его нельзя рассматривать полностью открытым, так как он очень сильно привязан к загружаемой в GPU прошивке, которая по прежнему остаётся закрытой. В отличие от видеокарт AMD и NVIDIA, в которых тоже практикуется загрузка микрокода, в случае чипов Broadcom на стороне GPU выполняется подобие операционной системы, на стороне которой реализованы многие компоненты, обычно работающие на стороне драйвера. Например, поддержка OpenGL ES реализована целиком на стороне бинарной прошивки GPU. Открытые компоненты по сути являются реализацией RPC-интерфейса для обращения к прошивке.
Таким образом, код открытых пользовательских компонентов драйвера мало что меняет, так как он является лишь высокоуровневой прослойкой для трансляции обращений к бинарной прошивке, выполняемой на стороне GPU. Подобная схема не позволяет независимым разработчикам как-либо повлиять на работу графической подсистемы, например, невозможно внести свои улучшения в реализацию OpenGL ES, добавить новые расширения и даже исправить ошибки. Кроме того, такой подход не даёт возможности написать драйвер Mesa/Gallium для Broadcom VideoCore.
Являясь мейнтейнером DRM-подсистемы ядра Linux Дэвид Эйрли также заявил, что открытый Broadcom модуль ядра Linux не может быть принят в состав основного ядра Linux, даже несмотря на то, что он распространяется под лицензий GPL. Проблема в том, что драйвер остаётся зависим от проприетарной прошивки и не может рассматриваться как самодостаточный. Дэвид привёл образный пример, указав на то, что драйвер Broadcom напоминает драйвер для Ethernet-карты, у которой весь TCP/IP-стек реализован на уровне прошивки. Подобный подход хорош с точки зрения снятия нагрузки с CPU, но ставит разработчиков в тупик, как только возникает необходимость самостоятельно исправить ошибки или доработать функциональность.
По мнению Дэвида ключевым фактором открытия кода является предоставление другим людям возможности внесения улучшения в выполняемые кодом функции, в случае с драйвером Broadcom такая возможность отсутствует. Тем не менее, тема является довольно скользкой, например, подобные претензии можно выдвинуть и против ранее не вызывавших нареканий открытых драйверов, задействующих средства аппаратной акселерации кодирования и декодирования видео, использующих средства ускорения разбора TCP-пакетов или обращающихся к средствам акселерации криптографических операций.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.