El sistema X-Window

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.

Primero lo primero. El consorcio de tecnología X requiere que se usen los siguientes nombres cuando se refiere al sistema X Window

* X
* X Window System
* X Version 11
* X Window System, Version 11
* X11

Por lo tanto cualquiera de estos nombres es sinónimo del mismo software. X Window SystemTM es una marca registrada de X Consortium, Inc.

El X11 se desarrolló gracias a la cooperación entre DEC (Digital Equipment Corporation, luego adquirida por Compaq) y el proyecto Athena del MIT (Massachussets Institute Of Technology). La primera versión, la X11R1, salió en septiembre de 1987. Desde la versión 6 (X11R6) la X Consortium Inc y desde 1996 The Open Group continuaron con el desarrollo del X Window System.

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 público 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 gráfico mas amigable.


Puntos básicos:

  • Curso de Introducción a GNU/Linux
  • El sistema X-Window
  • Requisitos de Hardware
  • 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 (root window). Las ventanas de aplicación se despliegan encima de la ventana raíz. Al igual que los procesos en Un*x 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 pasaremos a explicar en que consiste.

X esta formado de dos partes: 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, además de ser un programa específico, define además 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 proporcionan datos, ya sea 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 reaccionará el cliente.

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 más de un servidor. Para iniciar cualquier cliente se deberá haber iniciado el servidor X en algún lugar de la red o, como es común, en la misma máquina que se están ejecutando los clientes.

Al contrario de lo que podría suponerse, 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" (WM por window manager). La mayoría de las distribuciones actuales trae los varios WM diferentes, proporcionando interfaces que difieren entre sí y pueden configurarse y adaptarse a los gustos de los usuarios. También vienen los entornos de escritorio KDE o Gnome como estándar, los que proporcionan mayor grado de integración entre aplicaciones y trabajan de formas diferentes. El WM también es el encargado de controlar los íconos en la pantalla. A continuación se muestra el aspecto de algunos administradores de ventanas. Si se quiere una descripción más detallada acerca de los WM disponibles consultar http://xwinman.org (en inglés)


El modelo de cliente-servidor X y la transparencia de su red.


X se basa en un modelo de cliente-servidor. Un programa servidor X se ejecuta en un ordenador con una interfase gráfica y se comunica con varios programas clientes. El servidor acepta pedidos para salidas gráficas (ventanas o "windows") y envía señales de entrada del usuario (teclado, ratón).

En X Window, el servidor se ejecuta en el ordenador del usuario, mientras que los clientes pueden ejecutarse en ordenadores distintos. Esto es exactamente al revés que la configuración usual de los sistemas cliente-servidor, donde el cliente se ejecuta en el ordenador del usuario y el server se ejecuta en un ordenador remoto. Ésta inversión a menudo resulta confusa para nuevos usuarios de X. La terminología de X Window toma el punto de vista del programa, en lugar del punto de vista del usuario o el hardware: los programas remotos se conectan a la interfase gráfica del servidor X que se ejecuta en el ordenador local, y por lo tanto actúan como clientes; la interfase gráfica X local acepta el tráfico de ingreso, y por lo tanto trabaja como un servidor.

El protocolo de comunicación entre el server y el cliente se ejecuta en forma transparente con respecto a la red: el cliente y el server pueden ejecutarse en el mismo ordenador o en ordenadores diferentes, y hasta con distintas arquitecturas y sistemas operativos. Un cliente o un servidor se pueden comunicar en forma segura a través de Internet, utilizando tunneling la conexión se realiza en forma cifrada.


http://upload.wikimedia.org/wikipedia/commons/9/9e/X_client_server_example.png

Arquitectura Cliente / Servidor

En linux el proceso gráfico no es más que otro proceso que ejecuta el sistema operativo. Esto evita muchos problemas de estabilidad al kernel. Otra ventaja que tiene es la absoluta independencia del sistema operativo y el entorno gráfico. En contrapartida a todas estas ventajas, existe el inconveniente que el entorno gráfico reduce su velocidad en comparación a otros sistemas gráficos. Estos últimos incluyen los procesos referentes al subapartado gráfico en el propio núcleo. Aunque esta práctica tiene la ventaja de que el sistema gráfico es más veloz. Se hace un gasto innecesario de recursos, aun sin usar ninguna aplicación, y estar más propensos a fallos del sistema debidos a errores en el apartado gráfico.

Toda la filosofía de X Window se basa en la arquitectura cliente/servidor. Esta arquitectura es el modelo de sistema X mediante la cual los clientes, programas de aplicaciones, se comunican con los servidores que controlan parte del hardware.

El programa que habilita un entorno gráfico X-window en un ordenador es el servidor X (X server). Se le llama servidor ya que este programa sólo se dedica a escribir en pantalla lineas, cuadros y funciones gráficas básica. El servidor X ofrece funciones gráficas primarias a las aplicaciones (clientes) que las soliciten y este las muestra en pantalla. El servidor es el programa encargado de gestionar un display. Un display se debe entender como la unidad formada por la o las pantallas y por los dispositivos de entrada, bien sea un ratón, un teclado, un trackball etc. todo este conjunto es un display. Un servidor puede servir a varios clientes a la vez. La otra parte de la arquitectura cliente / servidor es el cliente, básicamente es una aplicación que se esta ejecutando en modo gráfico. El servidor es la unidad de visualización, que puede a su vez estar formada por varios monitores o pantallas físicas.

El servidor se encarga de captar las entradas del usuario y se las pasa a las aplicaciones o clientes X, dicha información proviene de los dispositivos de entrada del display, para que los clientes actúen en consecuencia. Los clientes tienen que captar esta información y operar. La respuesta del cliente es mandada al servidor ordenándole que dibuje dicha respuesta en la pantalla o las pantallas del display. Descodifican los mensajes de los clientes, como las peticiones de información o el movimiento de una ventana. Toda la comunicación entre el cliente y el servidor se realiza en lenguaje formal X window.

Figura 1 : Procesos gráficos en linux y arquitectura cliente sevidor en una máquina.

Todo esta arquitectura se debe a que el sistema X windows tiene una gran flexibilidad de uso en redes. La conexión del Servidor X a los clientes no esta limitada a la misma máquina. Sino que cualquier aplicación o cliente que se este ejecutando en una red se puede conectar a cualquier servidor.Ver figura 2 Cuando decimos conectarse se quiere decir que se puede visualizar en el ordenador que ejecuta un servidor X. Una forma de aprovechar esta flexibilidad es utilizar desde casa un ordenador personal conectado a una gran computadora para aprovechar la potencia de esa computadora desde casa. Esta práctica de compartir aplicaciones esta muy extendida, de hecho existen un tipo de ordenadores cuya única función es ejecutar un servidor X, se denominan "terminales X". Estos ordenadores en ocasiones no disponen de dispositivos de almacenamiento y no son muy potentes con lo que se consigue muchos puestos de trabajo a un precio muy reducido. Otro punto importante es que no existe ninguna razón por la que el sistema X window este restringido al sistema operativo Unix o Linux. De hecho existen servidores X para DOS, Windows Macintosh u OS/2..


Figura 2 : Procesos gráficos y arquitectura cliente / servidor en una red.

Hay que señalar que la filosofía del sistema X-Window puede parecer engañosa ya que invierte la posición tradicional del cliente y el servidor. Tradicionalmente un servidor ha sido por ejemplo: la gran computadora que tenía los archivos que eran servidos a los clientes, o un servidor de conexión a internet a los que se conecta el usuario. En estos casos el servidor es una computadora remota, con grandes capacidades de procesamiento y almacenamiento que tenía muchas tareas cargadas, y los clientes son los usuarios. El sistema X-Window funciona al revés. El servidor es el usuario con su terminal X y el cliente esta corriendo en una computadora remota, o no, que suele tener grandes capacidades de calculo y almacenamiento y que suele estar cargada de clientes.

Una de las partes más importantes de la arquitectura cliente servidor es la conexión física entre el cliente y el servidor. De ello dependerá en gran medida el rendimiento del sistema. Una conexion de red rápida entre cliente y servidor o que el servidor este en la misma computadora que el cliente hará que el entorno funcione de una manera rápida.

La comunicación entre el cliente y el servidor sistema X-Window se realizan mediante el denominado protocolo X (X protocol). Este protocolo X permite definir el número exacto de bytes necesarios para definir una ventana. El problema es que la programación con este lenguaje es extremadamente complicada y laboriosa.

Se puede comparar el protocolo X al lenguaje máquina. De la misma manera que el ensamblador proporciona potencia a la programación en lenguaje máquina, las funciones Xlib proporcionan la potencia del protocolo X con un coste menor.

Xlib es un biblioteca de unas 300 funciones escritas en C que generan protocolo X, que facilitan la programación básica, las funciones Xlib son el punto de partida para aprender a manejar X Window y aunque sea imprescindible dominarlas. Para programar a más alto nivel nos harán falta otras herramientas.

Existen también las llamadas X Toolkit Intrinsics más comúnmente conocido como Xt intrinsics, son herramientas de más alto nivel ya que nos ayudaran a crear bloques de pantalla llamados widgets, como por ejemplo menús, barras de desplazamiento ,botones etc. La ventaja de esta herramienta es que da a la aplicación una apariencia estándar fácil de ver y de entender, con lo que se gana en facilidad de uso que es lo que se pretende desde el principio al usar el sistema X window.

Arranque del sistema X-Window


El inicio del sistema X window, implica que se ha de cargar tanto el servidor X como algunos clientes para poder empezar a utilizar el entorno gráfico. Hay un par de maneras principalmente de iniciar el X-window. Quizá la más usada sea mediante el guión de inicio llamado starx .Que se ejecuta en cualquiera de las consolas en modo texto. Este programa no es más que un guión de comandos que ejecuta el Servidor X, inicializa algunos recursos para que serán utilizados por los clientes y también conecta al servidor algún cliente.

Otra manera de iniciar el servidor X es mediante el programa xdm ,o programa gestor de pantallas. Se trata de un programa muy potente que no sólo permite controlar la sesión X en el ordenador local, sino también en los terminales X y todos aquellos ordenadores que se conecten a través de la red. Esto ayuda a tener mayor seguridad en el acceso a la red. El servidor X tiene que interactuar con el hardware del sistema, con lo que tiene que tener privilegios de superusuario para poder funcionar. Esto es lo que ocurre al usar startx a causa de que por defecto se le otorgan unos permisos especiales. De este modo cualquiera puede ejecutar un servidor X, y como el servidor X puede tener bugs (errores), con los que un usuario con suficientes conocimientos podría "engañarle" para ejecutar programas con privilegios de root(administrador del sistema o superusuario).. Lo que hace el xdm concretamente es arrancar el servidor X y un rectángulo en el cual el usuario se ha de identificar ante la máquina y una vez el usuario se identifica mediante su nombre y contraseña se ejecutan los clientes que tenga personalizados el usuario en cuestión.

5.6 Gestores de ventanas.

El gestor de ventanas es uno de las aplicaciones X más importantes, ya que se trata del programa que da el aspecto a todo el entorno gráfico y que controla todas las operaciones relativas al dibujo de ventanas. En linux un gestor de ventanas es un cliente más que está conectado al servidor X. Esto implica que el sistema en si, no esta ligado a ningún gestor de ventanas en particular. Con lo que se consigue una gran personalización del entorno gráfico. Esto tiene el inconveniente de que cambia totalmente la manera de de interpretar las pulsaciones del ratón o del teclado.

5.6.1 Fvwm y sus derivados

Fvwm es una de las familias de gestores de ventanas más usadas dentro de entornos Linux. Fvwm(Fine Virtual Window Manager) y todos sus derivados. son a su vez derivados del twm(tab window manager), que es el gestor que se distribuye con las versiones oficiales de X-window y por tanto con XFree86.

Una de las cualidades de twm es que tiene grandes posibilidad de personalizarse al gusto del usuario. Todo esto unido al hecho de que es un programa de libre distribución ha hecho de twm el ancestro de toda la familia de gestores fvwm

Fvwm fue desarrollado en un principio con la finalidad de reducir el uso de memoria que necesitaba el twm aunque fuese a costa de reducir su capacidad de personalización, darle un aspecto tridimensional y principalmente los escritorios virtuales. Los escritorios virtuales permiten simular un escritorio más grande de lo que cabe en la pantalla con lo que podemos tener ventanas en otros escritorios fuera de la pantalla e intercambiar ventanas entre ellos.


5.6.2 Otros gestores de ventanas

Existen también derivados de fvwm como son el fvwm95, fvwm2, afterstep etc. El más usado entre la comunidad linux es el afterStep. En un principio estaba ideado para emular el sistema operativo NEXTSTEP aunque debido a su atractivo diseño y sus posibilidades se ha ganado gran parte de los usuarios de Linux.

Existe una gran oferta de gestores de ventanas para linux, desde más derivados del twm como son ctwm o vtwm hasta otros que se han diseñado desde cero. También existen gestores de ventanas muy espectaculares que convierten el ordenador en un espectáculo multimedia. El principal gestor de ventanas es el enlightenment que llena la pantalla de atractivos colores y formas.

5.7 Gestores de escritorio

Un gran inconveniente de los gestores de ventanas es que las aplicaciones no tienen forma de comunicarse entre ellas ni de controlar el comportamiento del gestor de ventanas. Esto se subsana al pasar del gestor de ventanas al gestor de escritorio (Desktop manager). Este ultimo tiene las siguientes ventajas con respecto al gestor de ventanas:

* Provee de un aspecto uniforme a todas las aplicaciones gráficas, dotándolas de un interfaz de uso común.
* Podemos marcar un objeto con el ratón y arrastrarlo hasta cualquier aplicación y ver su contenido allí.
* Permite el acceso transparente a cualquier recurso, ya este en el disco o en otro lugar de la red.
* Distingue entre aplicaciones abiertas y enlaces a recursos.
* Ofrece un interfaz gráfico para configurar y personalizar todos los aspectos del entorno gráfico.

Aunque estas características son muy deseables por la mayoría de usuarios en Linux aún falta camino por recorrer, hasta poseer un entorno con todas estas características. Afortunadamente hay mucha gente trabajando en ello, y ya nos estamos acercando a sistema mejor. Se trata de KDE (K Desktop Environment). KDE provee de un entorno completo, panel de menús, un gestor de tareas, un escritorio orientado a objetos(iconos), un gestor de escritorio que permite ver archivos locales y en unidades de red y un gran sistema de ayuda.Para más información podemos visitar su web en http://www.kde.org

Otro poyecto similar que se esta desarrollando más recientemente es el GNOME. Tiene una gran similitud con el KDE. Debido al apoyo de RedHat y otras compañías este gestor de escritorio hace que tenga un futuro prometedor. De hecho ya es el principal rival del KDE.Para más informacion podemos visitar la página de GNOME en http://www.gnome.org. Hay más gestores de escritorio como el CDE (common desktop envirenment) que debido a su condición de programas comerciales no tienen el apoyo de la mayoría de usuarios.


XFree86 es una implementación del sistema X Window System. Fue escrita originalmente para sistemas operativos UNIX funcionando en ordenadores compatibles IBM PC. En la actualidad está disponible para muchos otros sistemas y plataformas.

XFree86 es open source y software libre, publicado bajo la licencia XFree86 1.1.

El proyecto XFree86 es desarrollado por el XFree86 Project, Inc.; siendo su desarrollador líder David Dawes. La versión actual es la 4.7.0.

XFree86 provee una interfaz gráfica cliente/servidor entre el hardware (sistemas gráficos y dispositivos de entrada, como el mouse o el teclado) y un entorno de escritorio que provee un sistema de ventanas así como una interfaz estandarizada de aplicación (API por sus siglas en inglés).

XFree86 es independiente de la plataforma, extensible y puede utilizarse en red.

XFree86 funciona actualmente en una gran variedad de sistemas UNIX como BSD (FreeBSD, NetBSD, OpenBSD, Mac OS X (vía Darwin), etc), Solaris, SGI IRIX, y derivados, GNU/Linux (cualquier distribución), así como en OS/2 y Cygwin (para Windows).

Un cambio de licencia producido en Febrero de 2004 a partir de la versión 4.4.0 (anteriormente se distribuía bajo la licencia MIT) provocó la creación de la bifurcación X.Org Server, apoyada por empresas y desarrolladores descontentos con presuntas incompatibilidades con la popular licencia GPL. Esto ha provocado una caída en la popularidad de XFree86, siendo reemplazado por X.Org en prácticamente todas las distribuciones de GNU/Linux y en algunos sistemas BSD.

Aún así, XFree86 es utilizado y distribuido en muchos otros sistemas operativos, como por ejemplo NetBSD, Mac OS X (como entorno alternativo) y FreeBSD (como alternativa a X.Org).

Archivos de configuración del servidor X

El servidor X es un binario ejecutable (/usr/X11R6/bin/Xorg) que carga dinámicamente cualquier módulo de servidor X necesario en el momento de ejecución desde el directorio /usr/X11R6/lib/modules/. Algunos de estos módulos son cargados automáticamente por el servidor, mientras que otros son opcionales y deben ser especificados en el archivo de configuración del servidor X.

El servidor X y los archivos de configuración asociados son almacenados en el directorio /etc/X11/. El archivo de configuración para el servidor X es /etc/X11/xorg.conf. Cuando se instala Red Hat Enterprise Linux, los archivos de configuración para X son creados usando la información reunida sobre el hardware del sistema durante el proceso de instalación.

7.3.1. xorg.conf

Mientras que casi nunca se necesita editar manualmente el /etc/X11/xorg.conf, es muy útil conocer sobre las diferentes secciones y los parámetros opcionales disponibles, especialmente cuando se estén solucionando problemas.

7.3.1.1. La estructura de XFree86

El archivo /etc/X11/xorg.conf está formado de muchas secciones diferentes las cuales hacen referencia a aspectos específicos del hardware del sistema.

Cada sección comienza con una línea Section "" (donde es el título para la sección) y termina con una línea EndSection. Dentro de cada sección, hay líneas conteniendo nombres de opciones y al menos un valor de opción, ocasionalmente entre comillas (").

Las líneas que comienzan con un símbolo de almohadilla (#) no son leídas por el servidor X y son usadas como comentarios legibles.

Algunas opciones dentro del archivo /etc/X11/xorg.conf aceptan un interruptor boleano el cual activa o desactiva la característica. Los valores boleanos aceptados son:

* 1, on, true, o yes — Activa la opción.
* 0, off, false, o no — Desactiva la opción.

Lo siguiente son algunas de las secciones más importantes ordenadas como aparecen en un archivo /etc/X11/xorg.conf típico. Se puede encontrar más información detallada sobre el archivo de configuración del servidor X en la página man de xorg.conf.


7.3.1.2. ServerFlags

La sección opcional ServerFlags contiene varios parámetros globales del servidor X. Cualquier parámetro en esta sección puede ser sobreescrito por las opciones colocadas en la sección ServerLayout (refiérase a Sección 7.3.1.3 para más detalles).

Cada entrada dentro de la sección ServerFlags están en sus propias líneas y comienzan con el término Option seguido por una opción encerrada en dobles comillas ["].

A continuación un ejemplo de la sección ServerFlags:


Section "ServerFlags"
Option "DontZap" "true"
EndSection

La siguiente es una lista de las opciones más útiles:

* "DontZap" "" — Cuando el valor de está configurado a verdadero, esta configuración previene el uso de la combinación de teclas [Ctrl]-[Alt]-[Retroceso] para terminar inmediatamente el servidor X.

* "DontZoom" "" — Cuando el valor de está colocado a verdadero, esta configuración previene moverse a lo largo de las resoluciones de vídeo configuradas usando las combinaciones de teclas [Ctrl]-[Alt]-[Keypad-Plus] y [Ctrl]-[Alt]-[Keypad-Minus].

7.3.1.3. ServerLayout

La sección ServerLayout vincula los dispositivos de entrada y salida controlados por el servidor X. Como mínimo, esta sección debe especificar un dispositivo de salida y al menos dos dispositivos de entrada (un teclado y un ratón).

El ejemplo siguiente ilustra una sección ServerLayout típica:


Section  "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Las entradas siguientes son usadas a menudo en la sección ServerLayout:

  • Identifier — Especifica un nombre único para esta sección ServerLayout.

  • Screen — Especifica el nombre de la sección Screen a ser usado con el servidor X. Pueden estar presentes más de una opción Screen.

    Lo siguiente es un ejemplo de una entrada Screen típica:

    Screen      0  "Screen0" 0 0

    El primer número en esta entrada de ejemplo Screen (0) indica que el primer conector del monitor o head en la tarjeta de vídeo usa la configuración especificada en la sección Screen con el identificador "Screen0".

    Si la tarjeta de vídeo tiene más de una cabeza, será necesaria otra entrada Screen con un número diferente y un identificador de sección Screen.

    Los números a la derecha de "Screen0" proporcionan las coordenadas absolutas X y Y para la esquina superior izquierda de la pantalla (0 0 por defecto).

  • InputDevice — Especifica el nombre de una sección InputDevice a ser usada con el servidor X.

    Al menos deben haber dos entradas InputDevice: una para el ratón por defecto y una para el teclado por defecto. Las opciones CorePointer y CoreKeyboard indican que estos son el ratón y el teclado principales.

  • Option "" — Una entrada opcional que especifica parámetros extra para esta sección. Cualquier sección listada aquí sobreescriben aquellas listadas en la sección ServerFlags.

    Reemplace con una opción válida listada para esta sección en la página man de xorg.conf.

Es posible crear más de una sección ServerLayout. Sin embargo, el servidor sólo leerá la primera sección que aparezca a menos que se especifique una sección ServerLayout alterna como un argumento de línea de comando.

7.3.1.4. Files

La sección Files configura las rutas para servicios vitales al servidor X, tal como la ruta de las fuentes tipográficas.

El siguiente ejemplo ilustra una sección Files:

Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
EndSection

Las siguientes entradas son usadas comúnmente en la sección Files:

  • RgbPath — Especifica la ubicación de la base de datos de colores RGB. Esta base de datos define todos los esquemas de color en X y los junta para valores RGB especificos.

  • FontPath — Especifica dónde el servidor X debe ser conectado para obtener las fuentes tipográficas desde el servidor de fuentes xfs.

    Por defecto, la FontPath es unix/:7100. Esto le dice al servidor X que obtenga información de fuentes usando sockets de dominio UNIX para la comunicación entre procesos (IPC) en el puerto 7100.

    Vea la Sección 7.4 para más información sobre X y fuentes tipográficas.

  • ModulePath — Un parámetro opcional el cual especifica directorios alternativos que almacenan módulos de servidor X.

7.3.1.5. Module

La sección Module especifica cuales módulos del directorio /usr/X11R6/lib/modules/ cargará el servidor X. Los módulos añaden funcionalidad adicional al servidor X.

El ejemplo siguiente ilustra una sección Module típica:

Section "Module"
Load "dbe"
Load "extmod"
Load "fbdevhw"
Load "glx"
Load "record"
Load "freetype"
Load "type1"
Load "dri"
EndSection

7.3.1.6. InputDevice

Cada sección InputDevice configura un dispositivo de entrada para el servidor X. Los sistemas típicamente tienen al menos dos secciones InputDevice, un teclado y un ratón.

El ejemplo siguiente ilustra una sección InputDevice típica para un ratón:

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
EndSection

Las entradas siguientes son comúnmente usadas en la sección InputDevice:

  • Identifier — Especifica un nombre único para esta sección InputDevice. Esto es una entrada requerida.

  • Driver — Especifica el nombre del controlador del dispositivo que X debe cargar para el dispositivo.

  • Option — Especifica las opciones necesarias pertinentes al dispositivo.

    Para un ratón, estas opciones incluyen:

    • Protocol — Indica el protocolo usado por el ratón, tal como IMPS/2.

    • Device — Indica la ubicación del dispositivo físico.

    • Emulate3Buttons — Especifica si se va a permitir a un ratón de dos botones a que se comporte como uno de tres cuando se presionen ambos botones simultáneamente.

    Consulte la página man de xorg.conf para una lista de las opciones válidas para esta sección.

Por defecto, la sección InputDevice tiene comentarios para permitir a los usuarios configurar opciones adicionales.

7.3.1.7. Monitor

Cada sección Monitor configura un tipo de monitor usado por el sistema. Mientras una sección Monitor es lo mínimo, pueden ocurrir varias instancias para cada tipo de monitor en uso con la máquina.

La mejor forma de configurar un monitor es configurando X durante la instalación o usando la Herramienta de configuración de X. Para más información sobre el uso de la Herramienta de configuración de X refiérase al capítulo llamado Configuración del Sistema X Window en el Manual de administración del sistema de Red Hat Enterprise Linux.

Este ejemplo muestra una sección de Monitor típica:


Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "DDC Probed Monitor - ViewSonic G773-2"
DisplaySize 320 240
HorizSync 30.0 - 70.0
VertRefresh 50.0 - 180.0
EndSection
Aviso Aviso

Tenga cuidado si está modificando manualmente los valores en la sección Monitor de /etc/X11/xorg.conf. Valores inapropiados pueden dañar o destruir su monitor. Consulte la documentación de su monitor para un listado de parámetros seguros.

A continuación se muestran entradas comunes usadas en la sección Monitor:

  • Identifier — Proporciona un nombre único para esta sección Monitor. Esta es una entrada requerida.

  • VendorName — Parámetro opcional que muestra el nombre del fabricante del monitor.

  • ModelName — Parámetro opcional que muestra el nombre del modelo del monitor.

  • DisplaySize — Un parámetro opcional que especifica, en milímetros, el tamaño físico del área de dibujo del monitor.

  • HorizSync — Especifica el rango de la frecuencia de sincronización horizontal compatible con el monitor, en kHz. Estos valores ayudan al servidor X a determinar la validez de las entradas Modeline especificadas o incorporadas para el monitor.

  • VertRefresh — Especifica los rangos de frecuencias de actualización verticales soportados por el monitor, en Hz. Estos valores ayudan a que el servidor X determine la validez de las entradas incorporadas o especificadas en Modeline para este monitor.

  • Modeline — Un parámetro opcional el cual especifica los modos de vídeo adicionales para el monitor en resoluciones particulares, con ciertas resoluciones de refrescamiento vertical y sincronización horizontal. Vea la página man de xorg.conf para una explicación más detallada de las entradas Modeline.

  • Option "" — Una entrada opcional que especifica parámetros extra para la sección. Reemplace con una opción válida listada para esta sección en la página man de xorg.conf.

7.3.1.8. Device

Cada sección Device configura una tarjeta de vídeo en el sistema. Aunque una sección Device es lo mínimo, también se pueden tener instancias adicionales para cada tarjeta de vídeo instalada en la máquina.

La mejor forma de configurar una tarjeta de vídeo es configurando X durante el proceso de instalación o usando la Herramienta de configuración de X. Para más detalles sobre el uso de la Herramienta de configuración de X consulte el capítulo llamado Configuración del Sistema X Window en el Manual de administración del sistema de Red Hat Enterprise Linux.

El siguiente ejemplo ilustra una sección Device típica para una tarjeta de vídeo:

Section "Device"
Identifier "Videocard0"
Driver "mga"
VendorName "Videocard vendor"
BoardName "Matrox Millennium G200"
VideoRam 8192
Option "dpms"
EndSection

Las siguientes entradas son usadas comúnmente en la sección Device:

  • Identifier — Especifica un nombre único para esta sección Device. Esta es una entrada requerida.

  • Driver — Especifica cuál controlador debe cargar el servidor X para poder utilizar la tarjeta de vídeo. Se puede encontrar una lista de los controladores en /usr/X11R6/lib/X11/Cards, el cual es instalado con el paquete hwdata.

  • VendorName — Un parámetro opcional el cual especifica el fabricante de la tarjeta de vídeo.

  • BoardName — Un parámetro opcional el cual especifica el nombre de la tarjeta de vídeo.

  • VideoRam — Un parámetro opcional el cual especifica la cantidad de RAM disponible en la tarjeta de vídeo en kilobytes. Este valor sólo es necesario para tarjetas de vídeo que el servidor X no puede probar para detectar la cantidad de RAM.

  • BusID — Una entrada opcional la cual especifica la ubicación del bus de la tarjeta de vídeo. Esta opción es necesaria solamente para sistemas con múltiples tarjetas.

  • Screen — Una entrada opcional la cual especifica que conector de monitor o cabezal en la tarjeta de vídeo configura la sección Device. Esta opción es útil solamente para tarjetas de vídeo con múltiples cabezales.

    Si múltiples monitores son conectados a diferentes cabezales en la misma tarjeta de vídeo, deben existir secciones Device separadas y cada una de estas secciones debe tener un valor Screen diferente.

    Los valores para la entrada Screen deben ser enteros. El primer cabezal en la tarjeta de vídeo tiene un valor de 0. El valor para cada cabezal adicional incrementa este valor en uno.

  • Option "" — Una entrada opcional que especifica parámetros extra para la sección. Reemplace con una opción válida listada para esta sección en la página man de xorg.conf.

    Una de las opciones más comunes es "dpms", la cual activa la configuración de conformidad de energía Service Star para el monitor.

7.3.1.9. Screen


Cada sección Screen vincula una tarjeta de vídeo (o cabezal) a un monitor referenciando la sección Device y la sección Monitor para cada uno. Mientras que una sección Screen es lo mínimo, pueden ocurrir instancias adicionales para cada combinación de tarjeta de vídeo y monitor presente en la máquina.

El ejemplo siguiente ilustra una sección Screen típica:

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Depth 24
Modes "1280x1024" "1280x960" "1152x864" "1024x768"
"800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Las siguientes entradas son usadas a menudo en la sección Screen:

  • Identifier — Especifica un nombre único para esta sección Screen. Esta es una entrada requerida.

  • Device — Especifica el nombre único de una sección Device. Esta es una entrada requerida.

  • Monitor — Especifica el nombre único de una sección Monitor. Esta es una entrada requerida.

  • DefaultDepth — Especifica la profundidad del color por defecto en bits. En el ejemplo anterior, el valor por defecto es 16, lo que proporciona miles de colores. Múltiples entradas de DefaultDepth son permitidas, pero al menos una debe estar presente.

  • SubSection "Display" — Especifica los modos de la pantalla disponibles en una profundidad de color particular. Una sección Screen puede tener múltiples subsecciones Display, pero debe haber al menos una para la profundidad de color especificada en la entrada DefaultDepth.

  • Option "" — Una entrada opcional que especifica parámetros extra para la sección. Reemplace con una opción válida listada para esta sección en la página man de xorg.conf.


7.3.1.10. DRI

La sección opcional DRI especifica parámetros para Direct Rendering Infrastructure (DRI). DRI es una interfaz que permite a las aplicaciones de software 3D sacar provecho de las capacidades de aceleración de hardware 3D incorporadas en la mayoría del hardware moderno de vídeo. Además, DRI puede mejorar el rendimiento de 2D a través de la aceleración de hardware, si es soportado por el controlador de la tarjeta.

Esta sección es ignorada a menos que DRI esté activada en la sección Module.

El ejemplo siguiente muestra una sección DRI típica:

Section "DRI"
Group 0
Mode 0666
EndSection

Puesto que tarjetas de vídeo diferentes utilizan DRI de formas diferentes, no modifique estos valores para esta sección sin primero referirse al http://dri.sourceforge.net/.


Configuración de las Xfree86 (1): xf86config

Primero hay que ejecutar el programa xf86config como root (Ojo: minúsculas)

En todo momento, si nos equivocamos en algo, pulsamos y volvemos a empezar.

Saldrá el siguiente mensaje, que puede variar dependiendo de la versión que tengamos:

Configuración de las Xfree86 y xf86config

Pulsamos , y si no es la primera vez que configuramos las ventanas sale el mensaje:

Configuración de las Xfree86 y xf86config

Pulsamos y empezamos la configuración:

Configuración de las Xfree86 y xf86config

Este diálogo nos pide el ratón que tenemos. Si es PS/2 ponemos “4”. En caso contrario, el 90% de las veces habrá que poner un “1”.

A continuación nos hace tres preguntas:

Configuración de las Xfree86 y xf86config

Contestamos “n”, “n” y “/dev/mouse”. La primera es para configurar el tercer botón, la segunda para emularlo y la tercera el puerto donde está conectado.

Las siguientes preguntas son para configurar el teclado, idioma, etc.

Configuración de las Xfree86 y xf86config

Pulsar para continuar.

Configuración de las Xfree86 y xf86config

Contestamos “y”. Aparece una lista:

Configuración de las Xfree86 y xf86config

Seleccionamos “10” y aparece otra lista.

Configuración de las Xfree86 y xf86config

En la que seleccionamos “1”.

Ahora nos pide el idioma:

Configuración de las Xfree86 y xf86config

Seleccionamos el “14”, y seguimos.

El diálogo que aparece ahora:

Configuración de las Xfree86 y xf86config

Es para seleccionar el tipo de monitor que tenemos. Lo mejor es seleccionar el “5” ó el “1” y seleccionar el monitor correctamente más adelante.

Ahora nos pide el refresco vertical del monitor. El refresco del monitor es el número de veces que se “dibuja” la pantalla por segundo. Si nuestro monitor soporta hasta 90 Hz, seleccionamos “2”. Si dudáis, seleccionar “1”, y a dormir bién esta noche.

Configuración de las Xfree86 y xf86config

Ahora nos pide la marca, modelo, etc del monitor. Estos campos no configuran nada, si se dejan en blanco no hay problema.

Configuración de las Xfree86 y xf86config

Ahora aparece:

Configuración de las Xfree86 y xf86config

Respondemos “y” para ver la lista de tarjetas gráficas soportadas. Están ordenadas alfabéticamente. Pulsar para pasar de página, y cuando encontremos la nuestra pulsamos su número y . Si no aparece ó tenemos dudas, seleccionar la “Unsupported VGA compatible”, Número 575:

Configuración de las Xfree86 y xf86config

La lista empieza como sigue:

Configuración de las Xfree86 y xf86config

Al introducirla nos aparecerá la configuración escogida:

Configuración de las Xfree86 y xf86config

El chipset se puede ver en el manual de la tarjeta gráfica, y el Server es el controlador que se utilizará. Si hemos seleccionado “Unsupported VGA”, será el XF86_VGA16, que no es más que el controlador de VGA genérico a 16 colores.

A continuación nos pide el servidor específico. Poner “5”, que es el seleccionado anteriormente. En este caso, el XF86_SVGA.

Configuración de las Xfree86 y xf86config

Ahora nos pregunta si queremos crear un acceso directo al controlador. Por supuesto, “y” a las dos preguntas. El mensaje anterior a las preguntas sólo saldrá si hay otra configuración anterior.

Configuración de las Xfree86 y xf86config

Ahora nos pide la cantidad de memoria que tiene la tarjeta gráfica. Si tenéis dudas mirad en el arranque, antes de cargarse la BIOS.

Configuración de las Xfree86 y xf86config

Ahora nos pide la marca, etc…Como con el monitor, lo dejamos en blanco si queremos.

Configuración de las Xfree86 y xf86config

Ahora nos pide las características del Clockchip de la tarjeta. Si no sabemos cuales son, que es más que probable, pulsar para configuración automática.

Configuración de las Xfree86 y xf86config

Ahora nos pregunta si queremos probar la configuración introducida. Respondemos “y”, y después .

Configuración de las Xfree86 y xf86config

Ahora hay que configurar los tamaños de escritorio para las diferentes configuraciones de color(8, 16, 24 y 32 bits por pixel.)

Configuración de las Xfree86 y xf86config

La configuración mostrada suele servir para la mayoría de los equipos. Si se quiere cambiar algo, se introduce el número de opción, y luego los números de cada resolución seguidos; Es decir, si se quiere configurar el escritorio de 256 colores (8bpp) a “640x480”, “800x600” y “1024x768” ponemos “1”, y luego los modos de pantalla seguidos: “234”. A las demás preguntas contestaremos “n”. Con esto se evita que el escritorio sea más grande que la pantalla y tengamos que movernos por él a base de scroll con el ratón. Cuando acabemos, pulsamos “5”.

Por fin nos pregunta si queremos grabar la configuración introducida. Si todo ha ido bién, respondemos “y”.

Ahora habrá que hacer la configuración avanzada con el XF86Setup, ya desde modo gráfico.



Fuentes:

http://www.ant.org.ar/cursos/curso_intro/c3185.html
http://www.netpecos.org/docs/linux/xwindow.html
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/es/ref-guide/s1-x-server-configuration.html
http://html.rincondelvago.com/configuracion-de-las-xfree86-y-xf86config.html

0 comentarios: