Почему DirectFB не используется более широко в GNU / Linux? Существуют ли калечащие ограничения для этого, которых нет в X11?

18

Насколько я понимаю, DirectFB предлагает аппаратное ускорение для многих видов видеокарт. Кроме того, он меньше, быстрее и использует меньше памяти, чем X11. Почему же тогда это не больше, чем сейчас?

Вот о чем я действительно не уверен: нужны ли для этого общие программы GTK + / Qt? На сайте DirectFB есть проект по переносу Firefox на него. Почему это необходимо, если GTK + имеет возможность напрямую использовать DirectFB? То, как я (возможно, неправильно) понимаю это, заключается в том, что Firefox должен выводить на GTK +, который должен выводиться в DirectFB, который должен выводиться на аппаратное обеспечение. Пожалуйста, поправьте меня, если я ошибаюсь.

Спасибо,

Хассан     

задан Hassan 25.07.2010 в 04:31
источник
  • firefox напрямую не использует Gtk +; он просто использует свой движок темы. –  dmitry_vk 25.07.2010 в 06:52

6 ответов

19

Если вы подчеркиваете, что X является источником накладных расходов на современной Linux-системе, вы, вероятно, не смотрите в нужное место. X был разработан очень давно, для компьютеров, гораздо менее мощных, чем современный сотовый телефон.

Если вы посмотрите на «верх» и посмотрите на Х, используя память, вам предстоит много работы, чтобы выяснить фактические накладные расходы X. Существуют карты памяти, которые не являются «реальной» памятью, и есть ресурсы (такие как большие блоки пикселей), выделенные от имени приложений. В нижней строке память, показанная для вершины X, не является тем, о чем можно подумать.

Люди также слышат, что X использует «сеть» и думает, что это будет узким местом производительности. «Сеть» здесь означает локальный сокет домена UNIX, который имеет незначительные накладные расходы в современной Linux. Вещи, которые были бы узким местом в сети, есть X-расширения для быстрого создания (pixmaps разделяемой памяти, DRI и т. Д.). Threads in-process не обязательно будет быстрее, чем X-сокет, потому что узкие места больше связаны с присущей проблемой координации нескольких потоков или процессов, обращающихся к одному и тому же оборудованию, чем с минимальными издержками локальных сокетов.

У многопроцессорной установки есть много преимуществ, таких как гораздо сложнее сбой. Например, см. Google Chrome, используя несколько процессов, чтобы быть более надежными - и, оказывается, также быстро запускать. Меньше процессов не обязательно означает более современный.

Существует множество причин, по которым приложения, использующие GTK, не прозрачно портят в DirectFB. Для Firefox один из них заключается в том, что он иногда использует X. Кроме того, некоторые инструменты, не зависящие от инструментария, такие как интерфейс плагина браузера, напрямую используют X. Например, плагин Flash не работает с DirectFB. Даже приложения, которые не используют X напрямую, часто предполагают, что обычная среда рабочего стола на основе X существует (GNOME и т. Д.).

Еще одна проблема с заменой X - поддержка драйверов, в которой обе лучшие видеокарты (NVidia, ATI) имеют проприетарные драйверы, которые являются более гибкими, чем свободные драйверы, и эти проприетарные драйверы привязаны к X.

И, конечно, есть путь миграции. Если у вас сотни приложений, использующих X, и отсутствие явного недостатка конечного пользователя для X, никто не собирается переключаться на что-то, где приложения не работают. Скорее всего, решение здесь было бы сервером без корней, работающим в новой оконной системе, поэтому старые приложения все еще работают.

Старый не всегда плохой. X был очень хорошо разработан умными людьми, и это позволило ему развиваться и меняться и все еще работать много лет спустя.

В любом случае, весь длинный способ сказать, в основном, отключение от X - это тонна усилий, он действительно работает отлично, и «отлично работает» никогда не применялся ни к одной из альтернатив (по крайней мере, если вы хотите иметь возможность запускать большинство приложений на большинстве аппаратных средств).

Есть проблемы с X - такие, как невозможность сделать обновление на атомарном экране, что-то, на что смотрит проект Wayland, - но большинство проблем действительно косметические для пользователей (например, неатомные обновления) или косметические для разработчиков ( старые устаревшие расширения и т. п.). Просто неправда, что можно было бы сбросить X и магически иметь что-то намного меньшее и быстрое. Это в основном основано на том, что люди, полагающие, что «старые» и «использует сеть» должны быть медленными и раздутыми, но опять же, X был разработан для действительно действительно дерьмового оборудования. Раньше я использовал X (и Emacs!) На моем 386, возможно, 8 мегабайт ОЗУ или что-то в этом роде.

    
ответ дан Havoc P 26.07.2010 в 04:33
  • Х - дерьмо. Основная причина, по которой она не улучшилась, как это должно быть в основном из-за секретности и патентных проблем в индустрии компьютерной графики. –  Arlen 31.05.2011 в 09:05
  • Похоже, вы говорите об ограничениях реализации (особенно драйверах) в реализации с открытым исходным кодом X. Это также относится к DirectFB. Проблемы здесь не присущи X-протоколу / дизайну / API по сравнению с каким-либо другим возможным дизайном, они в большей степени связаны с (как вы говорите) «логистическими» проблемами, такими как возможность использования аппаратного обеспечения. –  Havoc P 02.06.2011 в 01:43
  • @HavocP: вам не хватает важной детали, поскольку «X был разработан очень давно, для компьютеров, гораздо менее мощных, чем современный мобильный телефон». Сам сервер X не был разработан первоначально для целей, которые он использует сегодня. Весь стек не предназначен для полного запуска на одном ПК. Это объясняет все проблемы с задержкой, исключительную важность переносимости и значительный уровень аппаратной абстракции. Ускоренный переход к настоящему, у нас есть ряд расширений, которые помогут адаптировать X11 для современной архитектуры. В глубине души его субоптимальность. –  TechZilla 17.11.2012 в 22:07
  • Я, конечно, согласен с тем, что X является субоптимальным и действительно думает, что Уэйланд имеет полезные улучшения в X и может, наконец, добиться успеха в его замене ... не случайно, потому что Кристиан (создатель Wayland) отлично понимает X. Система окон может быть улучшена и упрощена с учетом современных требований. Но X достаточно хорош, что заменить его намного сложнее, чем кажется. –  Havoc P 20.12.2012 в 17:45
9

x11 - это гораздо больше, чем просто способ рисования на экране - это полный набор протоколов настольных протоколов, совместимый с сетью. DirectFB не намеревается заменить x11 (насколько мне известно), а скорее работает параллельно с ним. То есть DirectFB стремится быть легким «хостом» для приложений, которым необходим доступ к основному входному и графическому выходному сигналу. Возможно, что X-сервер (сервер в X - это вещь, которая отображает вещи :-) написана для использования DirectFB.

GTK на DirectFB отличается от GTK на X11 .

    
ответ дан user166390 25.07.2010 в 04:57
  • Я понимаю, GTK + отличается в зависимости от платформы. Тем не менее, я вижу, что DirectFB имеет множество дополнительных функций, и что X11 не может даже выполнять общие процедуры, такие как альфа-смешивание без дополнительных модулей. Что дает? –  Hassan 25.07.2010 в 05:46
6

Просто, потому что DirectFB не решает никаких проблем. Для встраиваемых систем это нормально, но для рабочего стола вы теряете много и ничего не получаете.

    
ответ дан Matias Valdenegro 25.07.2010 в 04:55
4

DirectFB был разработан для встроенных систем, которые имеют небольшой объем памяти. Он позволяет приложениям напрямую общаться с видеооборудованием через прямой API, ускоряя и упрощая графические операции.

Он часто используется разработчиками игр и встроенных систем, чтобы обойти накладные расходы на полную реализацию сервера X Window System.

Ссылка

    
ответ дан karlphillip 25.07.2010 в 04:59
2

X11 гораздо более портативен, чем DirectFB. Приложение X11 может работать на Linux, BSD, Solaris, AIX, HP-UX, MacOS X, Windows (через Cygwin или Exceed) и на многих других платформах. DirectFB в значительной степени Linux-only.

    
ответ дан alanc 25.07.2010 в 09:22
1

С XDirectFB существует сервер без корневого сервера, использующий DirectFB.

    
ответ дан Ikem Krueger 05.02.2013 в 22:24
  • Веб-сайт directfb.org не работает уже несколько месяцев, возможно, с августа 2015 года. –  Keith Thompson 03.03.2016 в 22:11