martes, febrero 21, 2006

Fedora, Aiglx y Xgl

Hace unos días escribía sobre los pros y los contras de Ubuntu y Fedora. Bien, creo que ahora tengo un nuevo punto a favor y también en contra de Fedora.

Una de las cosas que más me atrajo a Fedora desde el principio, fue que es una distro que siempre está probando cosas nuevas e interesantes, siempre está bleeding the edge. Una de las cosas que destaco del Proyecto Fedora es proyectos como Fedora Rendering Project o el Proyecto de Integración con Xen.

Fedora Rendering Project plantea una nueva opción bastante interesante a el impresionante Xgl de Novell; Se trata de Aiglx (Accelerated Indirect GL X). A diferencia de Xgl, Aiglx no trata de crear un nuevo servidor X, sino que plantea usar el servidor actual con ciertas extensiones y el uso de un Metacity especial con un composite manager (¿gestor de composición?) potencializado por Mesa. El resultado es un gestor de ventanas con la posibilidad de hacer los mismos efectos que hasta ahora se han mostrado en Xgl y Compiz.

Lo que hace el composite manager es básicamente aprovechar las ventajas de las nuevas tarjetas de vídeo para dibujar las ventanas en la parte no visible del framebuffer. Esto no sólo tiene la ventaja de ser muy rápido, sino que también permite hacer uso de efectos brindados por las capacidades de las tarjetas 3D como el alpha blending (que permite transparencias), entre otras.

Para mi lo que intenta hacer Aiglx es básicamente lo mismo que pretendía Luminocity; es más, creo que Aiglx no es más que un porte de Luminocity a Metacity. La idea es básicamente usar los beneficios del composite manager desde un servidor X normal. Esto tiene la gran ventaja de poder activar y desactivar los efectos 3D sin tener que cambiar de servidor X y de una forma tan simple como cambiar una clave del gconf. El problema de este enfoque es que no ese está usando a fondo todo el poder de la tarjeta 3D, sino que se esta utilizando solamente para la composición. Por otra parte, al seguir utilizando el servidor X normal, existen problemas con aplicaciones que usen, por ejemplo OpenGL o XVideo. Otra desventaja muy importante es que, al estar integrado el composite manager en Metacity, este sólo servirá para Gnome y dejará por fuera a otros escritorios como KDE.

Después de analizar las dos opciones: Aiglx y Xgl, definitivamente me parece que la mejor opción es Xgl. La razón es que el poder de las tarjetas 3D no sólo se debe usar para tener efectos visualmente llamativos, sino que la principal razón debe ser la velocidad. Dado que Xgl es un servidor X completamente nuevo, escrito por encima de OpenGL, se asegura que todas las operaciones de dibujo van a estar usando la aceleración 3D. Gracias a esto vamos a poder tener más cosas que simplemente lo que nos brinda Compiz, como por ejemplo renderizado de fuentes más rápido e incluso, quien sabe, hasta widgets 3D. Además, al ser Xgl un servidor X, sus ventajas van a poder ser aprovechadas por cualquier administrador de ventanas o entorno de escritorio.

Sin embargo, no todo es color de rosa para Xgl, yo le veo dos inconvenientes importantes: Una es la dificultad para pasar del modo acelerado al modo normal, lo cual podría ser causar problemas a personas que no tengan el hardware apropiado. El otro inconveniente tiene que ver con el backend que se está usando para Xgl actualmente: Xglx, que, a mi modo de ver, plantea un modo algo redundante aunque, eso si, bastante práctico. Xglx realiza las operaciones OpenGL sobre otro servidor X, es decir que a la larga tendríamos algo así: Xgl, un servidor X, corriendo sobre Xglx que a su vez corre sobre otro servidor X.

Para mi la solución ideal para el sistema gráfico en Linux, sería Xgl corriendo sobre Xegl, una alternativa a Xglx que permite que Xgl dibuje directamente sobre el framebuffer, evitándose de esta manera el segundo servidor X. Además que, al estar basado en el EGL de Khronos, sería mucho más portable. Sin embargo, Xegl todavía se ve bastante lejano. Existen muchos inconvenientes, uno es el problema de los drivers gráficos para que escriban directamente en el framebuffer, otro es la terquedad de tantos desarrolladores de X que pretenden seguir remachando el viejo X a probar nuevas y radicales ideas como Xegl. Esto es de lo que se prenden los de Aiglx para justificar su proyecto y es de lo que se queja Jon Smirl, ex desarrollador de Xegl, en su grandioso artículo sobre el estado del arte de los gráficos en Linux.

En fin, siempre he creído que la competencia en el software libre es buena y ayuda a que se logre un buena solución. Por eso me gusta que exista Gnome y también exista KDE, o que exista Fedora y también Ubuntu. Sin embargo en el caso de Aiglx vs Xgl la cosa es un poco distinta porque, como dijo alguien por ahí, no se trata de gustos, por lo que los dos no van a coexistir por mucho tiempo.

sábado, febrero 18, 2006

Distribuciones

Estoy indeciso con respecto a qué distribución instalar ahora que llegue Gnome 2.14. Lastimosamente, para nosotros los amantes de Gnome parece que sólo hay dos distribuciones importantes basadas en este entorno de escritorio: Ubuntu y Fedora. Otras como Suse y Mandriva están basadas en KDE y las demás (Debían, Slackware, Gentoo, son más bien como neutrales).

Desde Marzo hasta Diciembre estuve usando Fedora y me gustó muchísimo, sin embargo, decidí cambiarlo debido a que los del Proyecto Fedora tenían a Mono entre su lista de cosas prohibidas, por problemas de patentes según los abogados de RedHat. Entonces decidí pasarme a la otra distro Gnome: Ubuntu. Durante este tiempo me a gustado bastante, la versión 5.10 (Breezy) me ha hecho cambiar de opinión desde la última vez que lo probé (4.10 - Warty). Sin embargo, al poco tiempo que estaba usando Ubuntu, salía la noticia de que Fedora decidió incluir Mono y todos sus juguetes (Beagle, FSpot) lo cual me deja a la tarea de tomar esta decisión.

He aquí un balance de los pros y contras de cada una:

Ubuntu.

Pros:

  • Basado en Gnome.
  • Completamente libre y gratuito.
  • Minimalista: un sólo CD con las herramientas estrictamente necesarias.
  • Un sistema de paquetes más organizado y centralizado.
  • gestor de actualizaciones es muy bueno.
  • Regalan unos CDs bonitos.
  • Muy buena documentación en Internet sobre cómo hacer muchas cosas.
  • Perfecta sincronización con los lanzamientos de Gnome.

Contras:

  • Un poco lento. Según mi experiencia, FC4 es un poco más rápido, especialmente en la carga inicial, que Breezy. Antes la cosa era al revés (FC3 vs Warty).
  • Hay muchos paquetes que no colocan la entrada correspondiente en el menú de aplicaciones. Esto me parece realmente irritante.
  • Algunos paquetes que no encajan dentro dentro del 'perfecto' sistema de paquetes son muy tediosos de instalar. Por ejemplo Sun Java o Skype.
  • Hacen falta herramientas gráficas para configurar varias cosas, como el servidor X, samba o el firewall.
  • No actualizan los paquetes de la versión estable. Esto es lo que me parece más irritante de todo. Por ejemplo, no puedo instalar Firefox 1.5 o Mono 1.1.13 en Breezy, sino que tengo que pasarme a la inestable (Dapper) y con ello actualizar varias librerías como Gtk+. Esto tal vez se pueda solucionar con el uso de backports, pero no he probado eso.
  • La apariencia por defecto es fea. No me gusta el color café, ni tampoco los iconos poco consistentes ¡Qué tal ese logo de Firefox! Bueno, esto es bastante personal y, la verdad, se puede arreglar fácilmente bajando un par de temas.

Fedora

Pros:

  • Completamente Libre y gratuito
  • Orientado a Gnome.
  • Tiene bastantes herramientas gráficas, que también pueden funcionar en modo de texto al estilo de YaST o Mandriva Control Center
  • Me parece que se la lleva mejor con aplicaciones propietarias como Sun Java o Skype.
  • Es bastante rápido y parece que cada vez mejoran más ese aspecto.
  • Se puede disfrutar de las últimas versiones de ciertos programas como Firefox o Mono en la versión estable.
  • Es visualmente muy bonito, el tema general y de los iconos me parece el mejor entre todas las distros, con tal vez Novell Linux Desktop 10 como competencia. La instalación se ve mucho mejor que la de Ubuntu.
Contras:
  • Los lanzamientos no están sincronizados con Gnome. Bueno algunas veces si.
  • Muchos CDs, cuatro, llenos de cosas innecesarias para un sistema de escritorio
  • El sistema de paquetes es bastante desorganizado, hay que agregar muchos repositorios por aquí y por allá.
  • No hay tanta documentación como para Ubuntu.
  • El gestor de actualizaciones no sirve. Hay que ver cómo cambia eso con las nuevas herramientas para Yum