2010-07-25 17 views
18

Por lo que tengo entendido, DirectFB ofrece aceleración de hardware para muchos tipos de tarjetas gráficas. Además, es más pequeño, más rápido y consume menos memoria que X11. ¿Por qué entonces, no es más corriente de lo que es ahora?¿Por qué DirectFB no se usa más ampliamente en GNU/Linux? ¿Existen limitaciones paralizantes que no existen en X11?

De esto es de lo que realmente no estoy seguro: ¿los programas GTK +/Qt comunes necesitan ser portados a él? En el sitio DirectFB, hay un proyecto para portar Firefox a él. ¿Por qué es incluso necesario, si GTK + tiene la capacidad de usar DirectFB directamente? La forma en que yo (probablemente incorrectamente) lo entiendo, es que Firefox debería dar salida a GTK +, que debería enviar a DirectFB, que debería enviar al hardware. Por favor corrígeme si me equivoco al respecto.

Gracias,

Hassan

+1

firefox no usa directamente Gtk +; solo usa su motor de temas. –

Respuesta

19

Si está enfatizando sobre X como una fuente de sobrecarga en un sistema Linux moderno, probablemente no está buscando en el lugar correcto. X fue diseñado hace mucho tiempo para computadoras mucho menos poderosas que un teléfono celular moderno.

Si miras "arriba" y ves X usando la memoria, hay mucho trabajo por hacer para calcular la sobrecarga real de X. Hay mapas de memoria que no son "reales", y hay recursos (como grandes bloques de píxeles) asignados en nombre de las aplicaciones. En pocas palabras, la memoria que se muestra para X en la parte superior no es lo que uno podría pensar.

La gente también oye que X usa la "red" y piensa que esto será un cuello de botella de rendimiento. "Red" aquí significa socket local de dominio UNIX, que tiene una sobrecarga insignificante en Linux moderno. Cosas que bloquearían la red, hay extensiones X para hacer rápidas (mapas de memoria compartidos, DRI, etc.). Los hilos en proceso no necesariamente serían más rápidos que el socket X, porque los cuellos de botella tienen más que ver con el problema inherente de coordinar múltiples hilos o procesos que acceden al mismo hardware, que con la sobrecarga mínima de los sockets locales.

La configuración multiproceso tiene muchas ventajas, como ser mucho más difícil de bloquear.Vea Google Chrome, por ejemplo, usando múltiples procesos para ser más robusto, y resulta que también se ejecuta rápido. Menos procesos no significa necesariamente más moderno.

Hay muchas razones por las que las aplicaciones que usan GTK no transfieren de forma transparente a DirectFB. Para Firefox, una es que usa X directamente a veces. Además, algunos elementos independientes del toolkit, como la interfaz del complemento del navegador, usan X directamente. El complemento de Flash no funcionaría en DirectFB, por ejemplo. Incluso las aplicaciones que no usan X directamente a menudo suponen que existe el entorno de escritorio normal basado en X (GNOME, etc.).

Otro problema con la sustitución de X es el soporte del controlador, donde las mejores tarjetas gráficas (NVidia, ATI) tienen controladores propietarios que son un poco más capaces que los controladores libres, y esos controladores propietarios están vinculados a X.

Y, por supuesto, hay una ruta de migración. Si tiene cientos de aplicaciones que usan X y ninguna desventaja clara del usuario final respecto a X, nadie va a cambiar a algo donde no funcionen las aplicaciones. Lo más probable es que la solución aquí sea un servidor X sin root que se ejecute en un nuevo sistema de ventanas, por lo que las aplicaciones antiguas aún funcionan.

Lo viejo no siempre es malo. X fue diseñado muy bien por gente inteligente, y eso le ha permitido evolucionar, cambiar y seguir funcionando muchos años después.

De todos modos, un largo camino de decir, básicamente cambiar de X significa mucho esfuerzo, realmente funciona bien, y "funciona bien" nunca se ha aplicado a ninguna de las alternativas (al menos si se quiere poder ejecutar la mayoría de las aplicaciones en la mayoría del hardware).

Existen problemas con X, como la imposibilidad de hacer una actualización de pantalla atómica, algo que el proyecto Wayland está mirando, pero la mayoría de los problemas son realmente cosméticos para los usuarios (por ejemplo, actualizaciones no atómicas) o cosméticos para desarrolladores (viejas extensiones obsoletas y similares). Simplemente no es cierto que uno pueda soltar X y mágicamente tener algo mucho más pequeño y más rápido. Esto se basa principalmente en personas que especulan que "viejo" y "usa la red" deben ser lentos e hinchados, pero una vez más, X fue diseñado para hardware verdaderamente horrible. Solía ​​ejecutar X (¡y Emacs!) Bien en mi 386 con quizás 8 megas de RAM o algo así.

+4

X es una porquería. La razón principal por la que no ha mejorado la forma en que debería tenerse se debe principalmente a todos los problemas de secreto y patentes en la industria de gráficos por computadora. – Arlen

+3

Parece que está hablando de limitaciones de implementación (especialmente controladores) en la implementación de código abierto de X. Esas también se aplicarían a DirectFB. Los problemas aquí no son inherentes al protocolo X/diseño/API frente a algún otro posible diseño, sino que tienen más que ver con problemas (como usted dice) "logísticos", como la capacidad de usar el hardware. –

+1

@HavocP: Te estás perdiendo un detalle importante, con respecto a "X fue diseñado hace mucho tiempo para computadoras mucho menos poderosas que un teléfono celular moderno". El servidor X en sí mismo no se diseñó originalmente para los fines que se utiliza hoy en día. La pila entera no fue pensada para ejecutarse completamente en una sola PC. Esto explica los problemas de latencia, la extrema importancia de la portabilidad y el nivel significativo de abstracción de hardware. Avance rápido hasta el presente, tenemos una serie de extensiones para ayudar a adaptar X11 a la arquitectura actual. En su corazón y alma, es subóptimo. – TechZilla

6

simple, porque no DirectFB solucionar cualquier problema. Para los sistemas integrados, está bien, pero para el escritorio, pierde mucho y no gana realmente nada.

9

x11 es mucho más que una forma de dibujar en una pantalla: es un conjunto completo de protocolos de escritorio con capacidad de red. DirectFB no tiene la intención de reemplazar x11 (hasta donde yo sé), sino que se ejecuta en paralelo a él. Es decir, DirectFB se esfuerza por ser un "host" liviano para las aplicaciones que necesitan acceso a entradas básicas y salidas gráficas. Es posible que un servidor X (el servidor en X es lo que muestra las cosas :-) está escrito para usar DirectFB.

GTK on DirectFB is different than GTK on X11.

+0

Lo entiendo, GTK + es diferente según la plataforma. Sin embargo, veo que DirectFB tiene bastantes características avanzadas, y que X11 ni siquiera puede hacer procedimientos comunes como la fusión alfa sin módulos adicionales. ¿Lo que da? – Hassan

4

DirectFB fue diseñado para sistemas integrados, que tienen una huella de memoria pequeña. Permite a las aplicaciones hablar directamente con el hardware de video a través de una API directa, acelerando y simplificando las operaciones gráficas.

A menudo es utilizado por los desarrolladores de juegos y sistemas embebidos para eludir la sobrecarga de una implementación completa del servidor del sistema X Window.

http://elinux.org/DirectFB

2

X11 es mucho más portátil que DirectFB. Una aplicación X11 se puede ejecutar en Linux, BSD, Solaris, AIX, HP-UX, MacOS X, Windows (a través de Cygwin o Exceed) y muchas más plataformas. DirectFB es prácticamente solo para Linux.

1

Con XDirectFB hay un servidor X sin root que usa DirectFB.

+0

El sitio web de directfb.org ha estado inactivo durante varios meses, probablemente desde agosto de 2015. –

Cuestiones relacionadas