LUG.ro
GNU/Linux
LUG.ro - GNU/Linux Users
Group Rosario
Rosario
en


Tema 9 El sistema X-Window


 
 
 

9.1 Orígenes de X


Vamos a dar un concepto sencillo de X Window y luego lo ampliaremos.

El sistema X Window es un método grafico y distribuido para trabajar.
Y ahora veremos por que.

El X Window System es prácticamente el estándar de los entornos gráficos para usuarios de Unix, pero no es solo eso, es un completo sistema para redes que permite ejecutar aplicaciones X desde una computadora en la otra parte del globo de donde se encuentra el servidor, a través de Internet.
El X11 se desarrollo gracias a la cooperación entre DEC (Digital Equipment Corporation) y el proyecto Atenía del MIT (Massachussets Institutee Of Technology). La primera versión (X11R1) salio en septiembre de 1987. Desde la versión 6 (Release 6) la X Consortium Inc y desde 1996 The Open Group continuaron con el desarrollo del X Window System.
Ahora  bien, existe una implementación libre del sistema X para sistemas Unix y se denomina Xfree86. Este se sigue desarrollando por programadores en todo el mundo, que se unieron en 1992, formando el Xfree86-Team. De esta unión surgió en 1994 la empresa The Xfree86 Proyect Inc cuyo objetivo es poner  Xfree86 a la disposición de un amplio publico y contribuir con el desarrollo e investigaciones del sistema X Window.
Es de esta manera que el sistema operativo GNU/Linux adopta esta distribución libre del sistema X para brindar un entorno grafico mas amigable.
 
 
 

9.2 X - Puntos básicos


Una sesión de X esta compuesta por lo general de varias ventanas donde cada una de ellas ejecutan un programa aislado. Al igual que los programas en cualquier otro sistema, los programas que se ejecutan en X varían en cuanto a su funcionalidad. Algunos necesitan de la interacción con el usuario y otros solo despliegan datos en la pantalla.
A la ventana de fondo se la conoce como ventana raíz. Las ventanas de aplicación se despliegan encima de la ventana raíz. Al igual que los procesos en Unix estas ventanas están agrupadas o relacionadas de acuerdo a una jerarquía.
Así es que la ventana raíz es el padre de todas las demás ventanas.
Ahora para entender un poco mas este tipo de funcionamiento pasare a explicar en que consiste:
X esta formado de dos lados: un lado servidor y un lado cliente. La funcionalidad básica es familiar a la forma en que trabajan todos los modelos cliente-servidor, en el sentido de que el servidor X tiene determinados recursos que proporciona al cliente.
Debido a que el servidor X esta integrado a las pilas TCP/IP las peticiones pueden venir de cualquier cliente y pueden ser solicitadas a cualquier servidor. Además debido a que X no es un programa sino mas bien un protocolo, los clientes pueden comunicarse con servidores X en otro tipo de plataforma.

El servidor actúa como una interfaz entre los programas clientes y el hardware físico. Cuando se dan datos, ya se por medio del teclado o el mouse, el servidor acepta la entrada y es responsable de pasarla al cliente. Esta información se pasa al cliente como un evento. Una tecla apretada o el movimiento del mouse generan un evento ante el cual reaccionara el cliente. Por supuesto frecuentemente este evento genera una reacción en el cliente para que presente un cambio en la pantalla como podría ser el desplegado de un menú.
Estos se realizan de la siguiente manera:

El usuario realiza un clic de mouse en el cliente. Este solicita al servidor que muestre un menú desplegable. El servidor pasa la información al hardware, que muestra el menú desplegable en la pantalla.

Como resultado de esta separación de funcionalidades, un cliente puede desplegar información en mas de un servidor.
Para iniciar cualquier cosa se deberá haber iniciado el servidor X en algún lugar de la red o como es común en la misma maquina que se están ejecutando los clientes.
Ahora bien, al contrario de lo que están pensando, ni el servidor ni los clientes son responsables de la apariencia de las ventanas en la pantalla tal como lo entendemos.
Ester trabajo le corresponde a un "administrador de ventanas". La mayoría de las distribuciones actuales trae en KDE o el GNOME como estándar y trabajan de formas diferentes.
El administrador de ventanas también es el encargado de controlar los iconos en la pantalla. Volveremos sobre este punto luego.
 
 

9.3 Requisitos de Hardware


X puede operar con 4 MB de RAM física y 12 MB de espacio de Swap pero de seguro que lo que menos se podrá hacer es trabajar de manera cómoda ya que al abrir un par de ventanas notaremos como caerá terriblemente el rendimiento al comenzar a intercambiar información con el disco rígido.
Por esto, la memoria RAM es un punto clave a tener en cuenta a la hora de instalar X.
16 MB de RAM harán que se pueda trabajar cómodamente en un entorno de escritorios que requiera de pocos recursos como el WindowMaker.
En lo que respecta la placa de video, se tendrá que buscar alguna que tenga pocos problemas de configuración, como las Trident o aquellas que posean integrados S3 ya que no tienen problemas mayores para instalarlas.
En lo que respecta a fuerza de computo pura, un sistema 486 DX2 será suficiente para un entorno poco exigente y se requerirá de un Pentium 120 o superior para entornos como el KDE y el GNOME que son monstruos devoradores de recurso.
 

9.4 Configuración de Xfree86


Una vez instalado X-Window se debe de crear el archivo de configuración /etc/X/XF86Config, este se puede crear a mano o con alguno de los siguientes programas: xf86config, Xconfigurator o XF86Setup.
Antes de correr alguno de los programas de configuración de XWindow se debe tener a la mano lo siguiente: marca, modelo y cantidad de memoria de la tarjeta de video; marca, modelo del monitor y frecuencia horizontal y vertical del monitor; y datos del mouse(ratón).
Si se tiene instalado perl se puede utilizar el Xconfigurator.pl que auto detecta el tipo de tarjeta de video. SuperProbe también puede ayudar a detectar la tarjeta de video.

 
Lo que veremos aquí es la configuración mediante el XF86Setup ya que las demás formas solicitan la misma información que este pero de una manera menos grafica.

Configuración mediante XF86Setup:

 Por supuesto que lo primero que tendrán que cerciorarse es que los archivos necesarios estén instalados antes de correr este programa. Si no fuese así un mensaje les advertirá por pantalla de esto.
Una vez que se ejecuta como root desde la consola el programa XF86Setup:

[root@LUSI]# XF86Setup

un cuadro de dialogo le preguntara si se quiere utilizar el archivo de configuración existente.
Este archivo se instala por defecto al instalarse los archivos de Xfree, pero muy podas veces funciona de movida. Sirve para ejemplo y punto de partida para una configuración a medida.
El XF86Setup generara un archivo de configuración en caso de no querer usar el existente, con las configuraciones mínimas para arrancar X.
Una ves que lo haya generado preguntara si se quiere pasar a modo grafico a lo que se responderá que "si". En caso de que no aparezca una ventana grafica o se cuelgue el video se tendrá que utilizar otro método para realizar la configuración como el xf86config.
Pero bien, supongamos que si levanto el entorno grafico, que lo hará con el servidor VGA16 por lo que los colores no serán para nada atrapantes.
Lo que veamos a continuación servirá para responder las preguntas de otros métodos de configuración.
 El área de configuración es muy grafica, funcionando a partir de botones y listas de opciones.
Se cuenta con 3 botones en la parte inferior para abortar, aceptar y obtener ayuda.
Y en la parte superior se encuentran los aspectos que se tendrán que configurar comenzando con el mouse.

Mouse:

En esta pantalla se podrá configurar el mouse que funcione en nuestro sistema, aunque ya lo hayamos realizado en la consola.
Existe una serie de botones que indica el tipo de mouse a configurar y una lista indicando el puerto donde esta ubicado.
También se podrá seleccionar en caso que mouse sea para zurdos o que cuente con 3 botones.
En la esquina inferior derecha existe un botón para aceptar la configuración, que si esta bien nos dará el control del mouse de forma inmediata.
Parecerá traumático en principio realizar esta configuración con las teclas, pero es bastante intuitivo el uso de las teclas TAB y la barra espaciadora.
La mayoría de los mouse funcionan con el protocolo Microsoft, por lo que si no se sabe que otro protocolo maneja, ese es el que se tendrá que seleccionar.

Teclado:

Hay que configurar nuestro teclado de acuerdo a dos aspectos como el idioma y cantidad de teclas.
 
Placa de Video:

Este punto es crucial y por demás de complicado cuando no se tiene la documentación de la placa.
Lo mejor que puede uno hacer es leer los README que vienen con X para ver si existe compatibilidad con nuestra placa de video..
Si se sabe cual es el tipo de placa y esta aparece listada, estamos salvados, pero si no se tendrá que probar con una placa genérica que supla los requerimientos de nuestra placa de video.
Lo que se tiene que ver también y tener en cuenta es el chipset de nuestra placa ya que será un indicativo para hallar una sustituta o nuestra placa.
La RAM que posee también tendrá que ser especificada y se recomienda leer los archivos de REDME para configurar placas aceleradoras.

ModeSlect:

Aquí podrá seleccionar la profundidad de color requerida y las resoluciones que se quieren tener disponibles.
Hay que fijarse si es posible usar lo que estamos seleccionando, dado el tipo de placa y la memoria que posee, ya que si no, habrá problemas.

Monitor:

Se tendrán que saber las frecuencias Verticales y Horizontales de nuestro monitor, lo que se podrá obtener de la documentación del mismo o del sitio del fabricante.
En este punto hay uqe tener especial cuidado dado que un error podría ocasionar que se quemara el monitor.
 

Cómo hacer que el tamaño del escritorio virtual sea igual al tamaño de mi pantalla.

Si tu monitor sí alcanza la resolución que quieres pero a tu tarjeta de video todavía le queda un poco de memoria para un escritorio virtual, y no te gusta esto, puedes deshabilitarlo en el /etc/X11/XF86Config.
Revisa en tu archivo /etc/X11/XF86Config este dada de alta resoluciones que deseas usar y que soporta tu tarjeta y la configuración del monitor. En las secciones "device" y "Monitor" respectivamente.
En el mismo archivo revisa que en la sección screen aparecen las resoluciones a usar, precisamente en el orden en que seran usadas. Es decir que al entrar a X-Window con startx usara la primera resolucion en la subseccion "Display", al oprimir Ctrl+Alt++ se cambiara a la siguiente resolución y asi sucesivamente, formando un arreglo circular. (Ctrl+Alt+- lo hace en sentido inverso)
Cerca del final del archivo está la definición de los modos de video que va a usar tu monitor. Hay unas líneas que dicen "Virtual ..." y el tamaño del escritorio virtual. Pon ese tamaño igual a la resolución física, y listo (si el server de X soporta las funciones exóticas de tu tarjeta de video, puede utilizar la memoria sobrante como cache de fonts y cosas así).

Cómo hacer para usar una tarjeta de video AGP en Linux

Ya que el bus AGP es muy reciente, no está soportado en XFree86 en versiones anteriores a la 3.3.
La solución, pues, es conseguir la versión más reciente de XFree86. Es importante tener la versión más reciente pues el soporte AGP sigue evolucionando y se agregan nuevos chipsets frecuentemente. Es probable que tu chipset esté soportado en alguna de estas versiones.
 

9.5:


Exciten múltiples entornos de escritorios que puede usarce, pero los que mostraremos a continuación son los más usados.
 
 

9.5.1 El entorno KDE:

 

 

KDE ofrece para GNU/Linux un entorno gráfico de configuración por demás de sencilla y con una
apariencia homogénea entre las distintas aplicaciones.
KDE es un proyecto de un grupo de programadores que se formo en 1996 y que siguen trabajando en el proyecto junto con muchos otros que fueron incorporándose.
Ofrece su propio administrador de ventanas llamado kwm y además una serie de aplicaciones para
Hacerlo mas cómodo como el kfm que es un administrador de ficheros que permite trabajar con ellos en una forma muy grafica a través de iconos.
Consta de gran cantidad de ayuda y esta totalmente realizada en HTML lo que facilita su lectura haciéndola mucho mas dinámica. Aparte las aplicaciones nuevas que se vayan instalando incorporaran también la documentación que posean a esta lista.
Posee una gran variedad de aplicaciones como lo son un programa de correos, el kmail, block de
notas, calculadora, y demás aplicaciones de utilidad. Posee también aplicaciones para Internet como un cliente para IRC y la posibilidad de realizar la conexión por dial-up de una forma por demás de sencilla a través del kppp.

EL kde esta basado totalmente en URL. Esto significa que todas las ramas y referencias a
archivos se procesan en un formato único por ejemplo se puede acceder a una pagina HTML, a un archivo local o a un sentido a través del mismo visualizado.

Viste la posibilidad de realizar Drag and Drop entre las distintas aplicaciones por ejemplo
arrastrando un archivo desde cada el escritorio.

KDE esta desarrollado con las bibliotecas las cuales son parecidas en funcionamiento a otras
Bibliotecas muy conocidas en el mundo UNIX como lo son las MOTIF que facilitan la construcción de programas  con base grafica. Hay que recordar que las bibliotecas QT ahora están bajo licencia GPL por lo que puede encontrarse al KDE en todas las distribuciones comerciales y así también en la única que todavía no la incorporaba por el tema de licencias. Debian.
Este es un gran paso para lo que al software libre se refiere y posicionara a KDE seguro en una mejor posición que la que tenia.
 
 

9.5.2 El entorno GNOME:


GNOME es un acrónimo de 'GNU Network Object Model Environment', entorno de trabajo en red orientado a objetos, por lo que GNOME forma parte del más amplio proyecto GNU..
GNOME es un entorno gráfico (escritorio de trabajo) amigable que permite a los usuarios usar y configurar sus ordenadores de una forma sencilla. GNOME incluye un panel (para arrancar aplicaciones y presentar el estado de funcionamiento), un escritorio ( donde se pueden situar los datos y las aplicaciones), un conjunto estándar de aplicaciones y herramientas de escritorio, y un conjunto de convenciones que facilitan la operación y consistencia de las aplicaciones entre sí. Los usuarios de otros sistemas operativos y entornos se sentirán como en casa cuando usen el potente entorno gráfico que proporciona GNOME.
GNOME es en su totalidad código abierto (software libre), con el código fuente disponible libremente y desarrollado por cientos de programadores en todo el mundo. Si quiere saber más sobre el proyecto GNOME puede visitar la página web de GNOME en http://www.gnome.org .
GNOME tiene una serie de ventajas para los usuarios. GNOME facilita el uso y la configuración de aplicaciones sin usar interfaces puramente textuales (console).
GNOME es altamente configurable, permitiéndole ajustar su escritorio con el aspecto que desee. El gestor de sesiones de GNOME recuerda la configuración previa, de manera que una vez que haya configurado las cosas a su gusto, las mantendrá así. GNOME soporta muchos idiomas, y puede añadir más sin cambiar el software. GNOME soporta incluso varios protocolos de arrastrar y soltar (drag and drop D&D) para una máxima interoperabilidad con aplicaciones que no sean compatibles con GNOME.
GNOME tiene también una serie de ventajas para los programadores que indirectamente benefician también a los usuarios. Los programadores no necesitan comprar una cara licencia de software para hacer compatibles sus aplicaciones comerciales. De hecho, GNOME es independiente de cualquier compañía - ningún componente del interfaz esta controlado únicamente por una compañía o tiene restringidas la modificación o redistribución. Las aplicaciones GNOME pueden desarrollarse en una gran variedad de lenguajes de programación, por lo que el programador no se ve limitado a un solo lenguaje de programación. GNOME usa la arquitectura universal de agentes de petición de objetos (CORBA) para permitir que los componentes software interactúen 'sin costuras', independientemente del lenguaje en el que estén implementados, o incluso de la máquina en la que se estén ejecutando. Finalmente, GNOME funciona en numerosos sistemas operativos de tipo Unix, incluido Linux.
El gestor de ventanas es la parte del software que controla las ventanas en el 'Entorno de ventanas X'. La posición, bordes, y estilo de cualquier ventana la maneja el gestor de ventanas. Esto es muy distinto en muchos otros sistemas operativos, y la forma en que GNOME dialoga con los gestores de ventanas es diferente de la de otros entornos de escritorio.
Como se indicó anteriormente en esta guía, GNOME no depende de ningún gestor de ventanas. Esto significa que la mayor parte de su entorno de escritorio no cambiará si decide cambiar de gestor de ventanas. GNOME trabaja con el gestor de ventanas para proporcionarle el entorno de trabajo más amigable posible. GNOME no se preocupa de la colocación de las ventanas, sino que obtiene información sobre su posición del gestor de ventanas. El paginador («Pager») sólo funcionará con gestores de ventanas compatibles con GNOME, al igual que arrastrar y soltar en el escritorio.
Al cierre de esta edición de la 'Guía de usuario GNOME', el gestor de ventanas 'Enlightenment' era el único gestor de ventanas 100% compatible con GNOME. Hay muchos otros gestores de ventanas parcialmente compatibles o en los que se está trabajando para que lleguen a serlo.
Algunos de los gestores de ventanas parcial o totalmente compatibles en el momento de redactar esta versión de la 'Guía de usuario GNOME' eran:

· Enlightenment - http://www.enlightenment.org

· Sawmill - http://www.dcs.warwick.ac.uk/~john/sw/sawmill/index.html

· Window Maker - http://www.windowmaker.org

· Icewm - http://www.kiss.uni-lj.si/~k4fr0235/icewm/

· AfterStep - http://www.afterstep.org/
 





Sebastian D. criado - seba_AT_lugro.org.ar

www.lugro.org.ar