Alternativas a X para Linux embebido

Iniciado por GeorgArming, 5 Septiembre 2012, 02:18 AM

0 Miembros y 1 Visitante están viendo este tema.

GeorgArming

Estoy creando un sistema con Linux embebido. Mi objetivo es que pueda ejecutar una y sola una aplicación con GUI (concretamente un motor de renderizado, por ejemplo QtWebkit, aunque el problema de Qt es que está muy ligado a X en Linux), siempre la misma aplicación.

La idea es que el sistema sea lo más ligero y simple posible, pues sólo debe ejecutar una aplicación a pantalla completa.

X-Window me parece excesivo para lo que pretendo.

¿Alguna sugerencia? Gracias.

farresito

Wayland es el sucesor de Xorg. Está en pleno desarrollo y, por lo tanto, no acabado como tal, pero probablemente pueda ser usado o puedas sacarle algo bueno.

http://wayland.freedesktop.org/

GeorgArming

Cita de: farresito en  5 Septiembre 2012, 03:01 AM
Wayland es el sucesor de Xorg. Está en pleno desarrollo y, por lo tanto, no acabado como tal, pero probablemente pueda ser usado o puedas sacarle algo bueno.

http://wayland.freedesktop.org/

Si lo he entendido bien, Wayland no busca sustituir a X. ¿No hay nada más minimalista? Por ejemplo, sistemas como Android, Meego,... ¿qué usan? He leído que Android tiene su propio Window Manager, pero creo que sólo funciona en Android porque está en Java.

farresito

Wayland SI busca sustituir a Xorg. No se donde has leído esto, pero en la página principal lo pone claramente. De todos modos, si todavía tienes dudas, Ubuntu va a quitar Xorg y poner Wayland: http://www.phoronix.com/scan.php?page=news_item&px=MTEzNDY

En cuanto a Android:

"There are two core pieces to Android graphics: SurfaceFlinger and Skia. SurfaceFlinger is Android's compositor, used by the window manager to create and display windows (actually called surfaces.) SurfaceFlinger is implemented on top of OpenGL ES 1.x currently and can also use other hardware acceleration techniques when available (MDP, a 2D blitter on the T-Mobile G1, or hardware overlays on the Xoom.)

Each application renders into its windows (or surfaces) using primarily Skia. Skia is Android's 2D graphics library. You can also use OpenGL ES 1.x and 2.0 to render into a surface.

Android doesn't use DirectFB or X11 or any other existing Linux solution."

Cita de: GeorgArming en  5 Septiembre 2012, 21:22 PM
Si lo he entendido bien, Wayland no busca sustituir a X. ¿No hay nada más minimalista? Por ejemplo, sistemas como Android, Meego,... ¿qué usan? He leído que Android tiene su propio Window Manager, pero creo que sólo funciona en Android porque está en Java.
No creo que esté en Java. Estará programado en C; dudo que una pieza tan importante y de tan bajo nivel sea posible de programar con Java...

Ya te digo. Si quieres una alternativa, Wayland. Y todavía no está acabada. Es más, es todavía en cierto punto incompatible con muchas cosas (no están implementadas muchas aplicaciones ni se han adaptado muchos graphical toolkits como GTK, QT [sí experimentalmente, pero incompletos]). La única opción es Xorg/X11. Tampoco hay para tanto...

GeorgArming

Perdón, había buscado y leído un artículo que está mal, que hablaba de que Wayland se basaba en X11 :O

Tienes razón, Wayland mola mucho y además Qt 5 ya es compatible.

Muchas gracias por tu respuesta.

Por cierto, aprovecho para añadir una pregunta muy relacionada, buscando más alternativas. He leído que Firefox OS (aka B2G) no usa ningún window manager ni nada de eso. Gecko directamente utiliza OpenGL... ¿Cómo puede ser posible eso? ¿O es que lo he leído está mal? ¿Es fácil de implementar? En la wiki de Mozilla no dicen ni mu sobre este tema...

farresito

Cita de: GeorgArming en  6 Septiembre 2012, 01:48 AM
Perdón, había buscado y leído un artículo que está mal, que hablaba de que Wayland se basaba en X11 :O

Tienes razón, Wayland mola mucho y además Qt 5 ya es compatible.

Muchas gracias por tu respuesta.

Por cierto, aprovecho para añadir una pregunta muy relacionada, buscando más alternativas. He leído que Firefox OS (aka B2G) no usa ningún window manager ni nada de eso. Gecko directamente utiliza OpenGL... ¿Cómo puede ser posible eso? ¿O es que lo he leído está mal? ¿Es fácil de implementar? En la wiki de Mozilla no dicen ni mu sobre este tema...
Mozilla OS no es exactamente un sistema operativo como tal. Lo primero que he hecho cuando lo has dicho ha sido ir al repositorio oficial que está en Github. Adivina cuales son los lenguajes más usados? Shell, Perl y Ruby. Lógicamente, es imposible que un sistema operativo sea creado con estos lenguajes, a no ser que sea una máquina virtual que corra sobre otro OS. He indagado un poco más y, sí, como me esperaba, Mozilla OS corre sobre Linux; sin embargo, han creado como virtualizado o implementado partes de un SO, de manera que probablemente sea posible acceder con lenguajes como javascript a muchas funciones del sistema (es como una abstracción de Linux, como ellos dicen):

The lower-level "operating system" of b2g. Gonk consists of a linux kernel and userspace hardware abstraction layer (HAL). The kernel and several userspace libraries are common open-source projects: linux, libusb, bluez, etc. Some other parts of the HAL are shared with the android project: GPS, camera, among others. You could say that Gonk is an extremely simple linux distribution. Gonk is a porting target of Gecko; there is a port of Gecko to Gonk, just like there is a port of Gecko to OS X, and a port of Gecko to Android. Since the b2g project has full control over Gonk, we can expose interfaces to Gecko that aren't possible to expose on other OSes. For example, Gecko has direct access to the full telephony stack and display framebuffer on Gonk, but doesn't have this access on any other OS.

En cuanto a los gráficos, OpenGL y X11, dudo que sea posible de implementarlo solo con OpenGL. Es imposible. OpenGL necesita poder hablar con la gráfica y esto se hace a través de un programa como X11, así que, y para tu 'tranquilidad', vé y coge X11. Quizás en el futuro necesites ampliar la cosa y te quedes corto. No te arriesgues. No vendrá de un par de megas más (no creo que tenga más de 10/15 MB todo el X11).

Y por cierto, en la Wiki de Mozilla hay mucha información respecto su nuevo sistema operativo (en inglés, eso sí).

Foxy Rider

CitarWayland SI busca sustituir a Xorg. No se donde has leído esto, pero en la página principal lo pone claramente. De todos modos, si todavía tienes dudas, Ubuntu va a quitar Xorg y poner Wayland: http://www.phoronix.com/scan.php?page=news_item&px=MTEzNDY

No lo vá a quitar a Xorg, en absoluto ... Si lo quita, la "capa de compatibilidad" de apps. hechas en X también se vá.

CitarNo creo que esté en Java. Estará programado en C; dudo que una pieza tan importante y de tan bajo nivel sea posible de programar con Java...

Wayland está en C, SurfaceFlinger creeeeoo que es lo que está en Java ...

Citardudo que una pieza tan importante y de tan bajo nivel sea posible de programar con Java...

No es de tan bajo nivel, y es posible hacerlo en Java...

CitarYa te digo. Si quieres una alternativa, Wayland. Y todavía no está acabada. Es más, es todavía en cierto punto incompatible con muchas cosas (no están implementadas muchas aplicaciones ni se han adaptado muchos graphical toolkits como GTK, QT [sí experimentalmente, pero incompletos]). La única opción es Xorg/X11. Tampoco hay para tanto...

Qt5 tiene soporte de Wayland ... aunque todavía Wayland no se liberó como estable ni tampoco Qt5  (aunque no falta mucho para que ambos se liberen como estable)

CitarEn cuanto a los gráficos, OpenGL y X11, dudo que sea posible de implementarlo solo con OpenGL. Es imposible. OpenGL necesita poder hablar con la gráfica y esto se hace a través de un programa como X11, así que, y para tu 'tranquilidad', vé y coge X11. Quizás en el futuro necesites ampliar la cosa y te quedes corto. No te arriesgues. No vendrá de un par de megas más (no creo que tenga más de 10/15 MB todo el X11).

Si usás GLX si, dependés de X ... si usás EGL, no deberías tener ningún drama de levantar gráficos OpenGL sin X.
Para hablar con la gráfica usás Mesa3D, y todo lo que hay debajo ... X es totalmente innecesario, la dependencia sobre X (por GLX) es más un error que una necesidad.

CitarGecko directamente utiliza OpenGL... ¿Cómo puede ser posible eso? ¿O es que lo he leído está mal? ¿Es fácil de implementar? En la wiki de Mozilla no dicen ni mu sobre este tema...

Tiene que estar implementado en el mismo motor de render (la aceleración gráfica) ... con qué renderizás?

Saludos.

GeorgArming

Cita de: farresito en  6 Septiembre 2012, 03:01 AM
Mozilla OS no es exactamente un sistema operativo como tal. Lo primero que he hecho cuando lo has dicho ha sido ir al repositorio oficial que está en Github. Adivina cuales son los lenguajes más usados? Shell, Perl y Ruby. Lógicamente, es imposible que un sistema operativo sea creado con estos lenguajes, a no ser que sea una máquina virtual que corra sobre otro OS. He indagado un poco más y, sí, como me esperaba, Mozilla OS corre sobre Linux; sin embargo, han creado como virtualizado o implementado partes de un SO, de manera que probablemente sea posible acceder con lenguajes como javascript a muchas funciones del sistema (es como una abstracción de Linux, como ellos dicen):

The lower-level "operating system" of b2g. Gonk consists of a linux kernel and userspace hardware abstraction layer (HAL). The kernel and several userspace libraries are common open-source projects: linux, libusb, bluez, etc. Some other parts of the HAL are shared with the android project: GPS, camera, among others. You could say that Gonk is an extremely simple linux distribution. Gonk is a porting target of Gecko; there is a port of Gecko to Gonk, just like there is a port of Gecko to OS X, and a port of Gecko to Android. Since the b2g project has full control over Gonk, we can expose interfaces to Gecko that aren't possible to expose on other OSes. For example, Gecko has direct access to the full telephony stack and display framebuffer on Gonk, but doesn't have this access on any other OS.

En cuanto a los gráficos, OpenGL y X11, dudo que sea posible de implementarlo solo con OpenGL. Es imposible. OpenGL necesita poder hablar con la gráfica y esto se hace a través de un programa como X11, así que, y para tu 'tranquilidad', vé y coge X11. Quizás en el futuro necesites ampliar la cosa y te quedes corto. No te arriesgues. No vendrá de un par de megas más (no creo que tenga más de 10/15 MB todo el X11).

Y por cierto, en la Wiki de Mozilla hay mucha información respecto su nuevo sistema operativo (en inglés, eso sí).

Gracias por tu respuesta, pero la verdad es que conozco bastante el funcionamiento de Firefox OS. Me he leído la wiki entera y he mirado el repositorio miles de veces.

El sistema operativo no está escrito en Perl, Bash ni Ruby. Lo que tú has visto son scripts de configuración, compilación,...

Es posiblr que haga lo que dices, no complicarme y tirar de X11... pero es que es tan pesado...

@alex Quiero usar Webkit2 y v8 (de momento uso QtWebkit). ¿Cuál es la forma (que sea viable) más minimalista de hacer correr una renderización web a pantalla completa? Porque Wayland creo que usa parte de X.org...

farresito

Cita de: Alex Mtx en  6 Septiembre 2012, 04:04 AM
No lo vá a quitar a Xorg, en absoluto ... Si lo quita, la "capa de compatibilidad" de apps. hechas en X también se vá.
Ahora mismo creo que una de las prioridades es precisamente hacerlo lo más compatible posible. No se si realmente va a desaparecer; sin embargo, si Ubuntu lo substituye, será un gran paso. Ya veremos como progresa.

Cita de: Alex Mtx en  6 Septiembre 2012, 04:04 AM
Wayland está en C, SurfaceFlinger creeeeoo que es lo que está en Java ...
Wayland sin lugar a dudas está escrito en C; de SurfaceFlinger te puedo asegurar que llevo media hora buscando su repo y todavía no lo he encontrado...

Tú no eras Vertex@Symphony antes? Te quedaba genial el otro nick : )