next up previous contents
Next: Red TCP/IP Up: Configuración Previous: Configuración   Contents

Subsections

X-Windows

Image /home/jorge/Documents/linuxbook/image/xlogo.png

En este capítulo se discutan conceptos detras del sistema X-Windows, que lo hacen ser muy distinto de otros GUI (Graphical User Interface - Interfáz Gráfico de Usuario). Cabe mencionar aquí otros sistemas de interfáz de usuario gráfico en el ámbito de las computadoras personales: MS-Windows con todas sus variantes y derivaciones, MacOS de Apple Computers, Plan9, NeXT-Step (ya no se produce), y finalmente X-Windows, que por su larga historia y su versatilidad se encuentra en uso desde computadoras personales, hasta en Workstations y computadoras grandes, en su mayoría con sistemas operativos de la familia Unix.

X-Windows no es parte del sistema operativo, sino una aplicación, que establece una ``norma'' (API) para el acceso a recursos hardware gráficos - la tarjeta de video, y de entrada - teclado, ratón, joystick, grafic-pads. Consiste de esta manera de un ``servidor'' gráfico, al cual pueden acceder programas ``clientes'' para interactuar con las usuarias. X-Windows tiene una alta integración en el ambiente de red, por lo que el servidor y el cliente no tienen que estar ubicados en la misma computadora.

Las distribuciones de Linux incluyen el sistema XFree86, que es un derivado del original X-Windows, específicamente adaptado para computadoras de la plataforma x86. El interfáz gráfico ya viene preconfigurado para trabajar de una forma ``workstation'' o ``personal computer'', o sea, su configuración se orienta en lo costumbrado de MS-Windows: una persona, una computadora. Estas preconfiguraciones son normalmente sencillos en su configuración, al menos en cuanto al Hardware, ya que hay una vasta cantidad de Chipsets de Video diferentes y XFree86 no desarrolla(ba) facilidades de instalar un driver (gestor) correcto. La adaptación de X-Windows a una tarjeta gráfica específica entonces puede resultar una tarea tediosa.

Quien está interesado solamente en una configuraciones Workstation estándar pero encuentra dificultades con XFree86 puede pasar directamente al capítulo de la configuración de Hardware (Tarjetas gráficas).

En los próximos subcapítulos se explicará la arquitectura del sistema X-Windows en más detalle para dar el fundamento a la configuración más avanzada de los diferentes componentes que integran el sistema operativo, la red, el interfáz gráfico y las aplicaciones en un sistema operativo Linux.

X-Windows fue percebido en el MIT - Massachusets Institute of Technologie, donde posteriormente los derechos fueron trasladados a X-Consortium Inc. y finalmente a la fundación de Software abierto: Open Software Foundation[*].

Servidor y Clientes

En el capítulo 5.2 se hace mención de la estructura cliente - servidor del sistema X-Windows. 'X' es el programa servidor, que ``captura'' los recursos pantalla, teclado, dispositivo puntero (y eventualmente otros) a la hora de arrancar, y permite a los programas de aplicación solamente el acceso a través de un protocolo específico con él. En cambió provee funciones avanzados para la graficación que pueden ser usados por los programas.

Para que un programa (cliente) pueda acceder a las funciones gráficas, tiene que establecer una conexión con el servidor X. Con un servidor pueden conectarse zero, uno o varios clientes; en efecto normalmente son una gran cantidad, ya que cada ventana representa un cliente.

La conexión puede realizarse de varias formas diferentes.

\includegraphics[]{image/xdm.eps}

xinit, xstart.

Se puede utilizar solamente la ``interior'' parte de este esquema y correr un Servidor X. Para esto existen dos script: xinit y xstart. El segundo utiliza el primero para lanzar un servidor X local y algunos programas clientes, generalmente solo un gestor de ventanas o eventualmente de sessión. xstart provee un ambiente mas ``seguro'' y elaborado. La configuración de este modo de trabajo se efectua a través de los archivos xinitrc (global) y .xinitrc (individual por usuario).

Finalmente es posible correr solo una aplicación gráfica sin uso de un manejador de ventanas.

El comando para lanzar un servidor X es comúnmente ``X'', aunque en el sistema Linux (i386) normalmente es un enlace hacia un ejecutable diferente, p.ej. XFree_SVGA, que es para tarjetas SuperVGA. ``X'' No se lanza manualmente, sino se utiliza los comandos xinit, xstart o un gestor de pantallas para ello. Al lanzar ``X'' de la línea de comandos se observa simplemente una pantalla característica gris, en la cual se puede mover un cursor en forma de ``X''.

Gestor de Pantallas - xdm

xdm es el ``X Display Manager'', un programa que maneja conexiones entre clientes de X-Windows y Servidores a través de la red con un protocolo tcp/ip llamado xdmcp - ``xdm - control protocol''. xdm solamente ``negocia'' la conexión entre un servidor X y una ``sessión'', que es un programa que provee al/a la usuario/a con facilidades (gráficas) de lanzar programas de aplicaciones.

Vemos la parte de la conexión entre el servidor X y el xdm.

En la forma más sencilla, el servidor X corre en la misma máquina como el xdm. Normalmente entonces xdm lanza el o los servidores X según las indicaciones en el archivo /etc/X11/xdm/Xservers, cada línea describe un comando para lanzar un servidor X. La comunicación entre los dos programas se establece a traves de un socket unix, o sea mediante el núcleo del sistema y es muy eficiente. Varias tarjetas de video, pueden ser manejadas por un xdm, lo que se puede usar para efectos de pantalla grande, o p.ej. en programas avanzadas CAD donde una pantalla sirve para ingresar datos y comandos y otra para visualización del producto.

La segunda opción de conexión de un X server con su sessión es solicitar directamente una conexión con un server a través de la opción de la línea de commando -query. Ej. ``X -query toa.magma.com.ni''. Si en la computadora toa.magma.com.ni corre un xdm y accepta la conexión desde la computadora solicitante entonces se establece la conexión entre ellos a través de la red. El servidor X tiene que lanzarse entonces de otra manera, p.e. a través del archivo /etc/inittab. Lógicamente pueden residir los dos programas en la misma computadora, es decir, no se lanza el servidor X desde el archivo /etc/X11/xdm/Xserver con el mismo xdm, sino con otro mecanismo, pero se deja conectar el servidor X con la computadora en la que está corriendo. El beneficio de este modelo es, que pueden ahorrarse recursos del sistema al no lanzar el servidor X cuando no esté en uso.

La tercera opción es, que un servidor X solicita una conexión indirecta (X -indirect toa.magma.com.ni). De esta manera el xdm de contacto retransmite la solicitud de negociación a todos los xdm en la red, el servidor X por lo tanto se hace ``público'' en todas las computadoras conectadas (con xdm corriendo). En esta forma, se presente inicialmente un selector de hosts (``chooser'') en la pantalla de la computadora, en la cual se visualizan todas las comutadoras en la red, que permiten al servidor X establecer una conexión y por lo tanto correr programas. Al seleccionar una computadora se re-establece una conexión entre el xdm de aquella computadora y el servidor X (la pantalla gráfica), y realiza una sessión entre estas dos computadoras. También en este caso eventualemente se corre la sessión y el servidor en la misma computadora.

Vemos la parte de los programas clientes.

Estos solamente se pueden lanzar desde dentro de una ``session''. Para iniciar una sessión se requiere de un proceso de autentificación del usuario, en parte por la comprobación de derecho al acceso al recurso (del X server), pero en otra parte para preparar el ambiente de trabajo para el usuario, quiere decir las configuraciones individuales de todos los programas y aplicaciones.

Veamos los diferentes escencarios del punto de vista del/de la usuario/a que está sentado frente a un terminal en el cual corre un X server. Si el servidor usa conexión:

Indirecta:
xdm presenta una lista de todas las computadoras que ofrecen negociación mediante xdm a través del ``chooser''. El usuario selecciona una computadora con la cual quiere trabajar. Después pasa a la misma situación como en la conexión:
Directo/local
El xdm presenta una ventana de autentificación (login-widget) en la cual el usuario puede introducir nombre y clave. Tomese en cuenta, que estos textos pueden transmitirse a través de la red y de esta manera exponerse a un ``intruso'':
Después de la autentificación (exitosa) se lanzan programas definidos en /etc/X11/Xsession, que normalmente proveen un gestor de sessión, un gestor de ventanas y aplicaciones iniciales según configuración individual de cada usuario. Todos estos programas son clientes conectados con el servidor X a través de uno (local/directo) o dos (indirecto) servidores xdm. Cuando el último cliente hay terminado, lo que pasa normalmente al ``cerrar'' la sessión (el gestor de sessión) el servidor X se desconecta del servidor xdm y vuelve a conectarse con la solicitud directa o indirecta, o en caso de un servidor local va a ser lanzado de nuevo desde xdm.

A parte del tradicional ``xdm'' existen otras re-implementaciones del protocolo xdm, en específico: wdm - del ambiente Windowmaker, kdm - del Desktop KDE y gdm del Desktop Gnome. El último hasta ahora no provee la funcionalidad para conexiones indirectas.

Gestor de sessión:

tiene la función, de proveer el ``ambiente'' de la sessión. Este programa graba por ejemplo la posición de las ventanas, registra cuales programas están ``abiertos'' a la hora de terminar una sessión, y los vuelve a lanzar y poner en la misma posición la próxima vez cuando el/la usuario/a abre una sessión.

Gestor de ventanas:

Es el programa, que durante la sessión permite lanzar y cerrar programas (mediante su visualización en ventanas) y reorganizar su aspecto visual (iconificar, maximizar, redimensionar, etc.). Hay administradores que incorporan otros elementos de mando como iconos, barras de tareas, menúes desplegables (p.ej. qvwm), en otros sistemas estos elementos son programas independientes (Gnome Desktop: sawfish -Window Manager, panel - Barras de tareas y menúes, gmc - ``Explorador'').

Para crear una analogía al trabajo en modo texto (consola) de unix se puede decir que xdm es como el programa logín, que permite autentificarse al sistema, la sessión corresponde a las preconfiguraciones del interpretador de comandos de entrada (login shell, p.ej.: bash: /etc/profile, /.bash_profile, /.bashrc, /.profile), y el gestor de ventanas corresponde al interpretador de comandos, al shell - es un shell gráfico.

Configuración

En este capítulo resumimos primero algunos conceptos técnicos esenciales de los ambientes gráficos, para después mencionar varios programas que permiten crear la configuración de un servidor X para una determinada combinación de tarjeta de video, monitor y computadora.

Actualmente existen distribuciones Linux con la versión 3.3.6 de X-Windows, pero también con la versión 4.0. Las dos versiones tienen diferencias sustanciales en cuanto a la configuración: para la versión 3.3.6 se requiere mucho más conocimientos para la configuración correcta, que para la versión más nueva. Donde es posible se trataría ambas versiones, en cuanto hay diferencias relevantes se hará mención específica acerca de la versión en el texto.

Categorías de tarjetas gráficas

En los sistemas compatibles con el IBM-PC encontramos una ámplia gama de diferentes tarjetas gráficas. Su función es, crear una imagen visual en una pantalla de tubo de cátodos (CRT/Monitor), una pantalla de cristál líquido (LCD), o equivalente.

La comunicación entre el contenido visual y la computadora se realiza a través de un área secuencial de memoria RAM, en la cual la computadora escribe información binaria, que va siendo convertido en una imagen bidimensional en el dispositivo de visualización.

Distinguimos dos tipos principales de conversión binaria/visual:

Character mapped
donde en cada celda de memoria se escribe el código de cáracter: a, Z, !, etc. La memoria video se divide en secuencias de longitud fija (comúnmente 80), que corresponden a las líneas en la pantalla (comúnmente 24 o 25) .La tarjeta gráfica lee los caracteres secuentialmente línea por línea y los dibuja en la pantalla de la izquierda a la derecha, desde arriba hacia abajo. La conversión de la letra ``a'' a su figura gráfica se realiza dentro de la tarjeta gráfica, muchas mediante un ``generador de caracteres'', que muchas veces tiene programado fijamente en memoria ROM la aparencia de cada letra (en descomposición matrizial). En algunas tarjetas se pueden cambiar algunas letras o todo un juego completo (font) de caracteres.

Figure: Descomposición matricial ocho por ocho

Figure: Descomposición matricial 12x16


Table: Descomposición matricial
En las figuras 7.1 y 7.2 se presenta la descomposición matricial de la letra `A' con dos diferentes mátrizes. Se supone una representación monográfica donde un bit 0 en la memoria corresponde a un punto ``oscuro'' en la pantalla y un bit 1 corresponde a un punto ``iluminado''.
Mientras en la primera descomposición se utilizan solamente $8  Bits\times8=8  Bytes$ de memoria, queda muy restringida la reproducción gráfica.
En la segunda descomposición se utiliza una mátrix (un 'raster') de 12 por 16. Se consumen $12  Bits\times16=1.5  Bytes\times16=24  Bytes$


Bit mapped
donde cada celda de memoria representa un ``pixel'' - un punto gráfico en la pantalla. La pantalla está organizada como matríz en líneas (p.ej. 600), las cuales están dividas en puntos (p.ej 800). La tarjeta gráfica lee secuencialmente cada celda de memoria y exita la luminosidad y el color del pixel correspondente de la pantalla según su contenido. Si se pretende mostrar una letra en una determinada posición en la pantalla hay que realizar la descomposición matrizial según el ``font'', su tamaño en la pantalla y el color deseado, y escribir el contenido de las celdas de memoria correspondiente, sin apoyo de la tarjeta gráfica.
En la actualidad ya no se trabaja con tarjetas ``character mapped'', sino las tarjeteas gráficas proveen varios ``modos'', entre ellos modos ``texto'' donde simulan una tarjeta character mapped con diferentes cantidades de columnas y líneas y tipos de letras, y modos ``gráficos'' con diferentes cantidades de líneas y columnas de ``pixels''.

Existe una grán variedad de tipos de tarjetas para la computadora PC:

Monocromático
el adaptador gráfico del primero PC, que solo provee modo texto en un color. La luminosidad de una letra puede ser nula, baja, normal o alta (highlight) - negrilla. Requiere un monitor monocromático con un conector de nueve pines.
Hercules
que es un adaptador monocromático mejorado. Trabaja con el mismo monitor monográfico.
CGA
adaptador a colores, que provee modos gráficos y textos de baja resolución (vea más adelante) y hasta 16 diferentes colores. Requiere un monitor a color específico, también con un adaptador de nueve pines.
Estos adaptadores hoy día ya no se aplican.

VGA
es un adaptador bit mapped que provee varios modos gráficos y de texto, y hasta 256 colores en cada pixel. En su forma estándard tiene una resolución de 640x480 puntos. Aunque diferentes empresas producen diferentes circuitos integrados para realizar la conversión visual de la información a la pantalla, hay un estándar para su programación. En efecto, hoy en día se puede confiar, que cualquier computadora compatible puede trabajar en forma VGA básico.

A partir de la tarjeta VGA empiezan a surgir tarjetas gráficas con una diversificación de capacidades de colores y resoluciones, se hace accesible el ambiente del diseño gráfico en las computadoras personales.

Se requiere de un monitor específico para este tipo de tarjetas - el monitor VGA. Existen con conectores de nueve y de 15 pines.

SVGA
o Super-VGA, que es una extensión del modo VGA a una resolución de 800 por 600 puntos en la pantalla. En la actualidad solamente se producen adaptadores gráficos con capacidades SVGA y muy superior. Pueden usar monitores VGA o SVGA.
Con el aumento de la capacidad en cuanto a resolución matrizial y de color se van aumentando dos parametros fundamentales en la comunicación entre la computadora y la tarjeta gráfica: la cantidad de datos a transmitir por cada imagen en la pantalla y el tamaño de la memoria video necesario para almacenar la imagen.

Las primeras tarjetas gráficas usaron el bus (lento) de entrada/salida de la CPU intel mediante el conector ISA de ocho bits (transferencia de un caracter por transacción), a continuación expandiéndose al bus EISA de 16 bits, y finalmente el bus PCI de 32 bits y de mucho mayor velocidad (permitiendonos saltar otros buses que no tienen mucha importancia en la actualidad).

La memoria video siempre fue incorpordado en la tarjeta gráfica. Ya que requiere de una memoria de alta velocidad y por lo tanto de alto costo muchas veces la tarjeta puede provisionarse con menos o más chips de memoria de video, según necesidad y posibilidades económicos.

En la actualidad está en uso común el sistema AGP, donde la CPU comparte memoria principal con la tarjeta gráfica. Esto tiene la ventaja (mercadotécnica) de reducir sustancialmente el costo del adaptador gráfico, a costo de los recursos disponibles para los programas. El monto de memoria de video reservado para el adaptador gráfico se determina en la configuración CMOS de la tarjeta madre.

Una ventaja de este sistema se da en cuanto a la velocidad del acceso a la memoria de video, ya que solo se trata de copiar información a un lugar específico de la misma memoria principal. Esta ventaja se paga con una mayor carga de la CPU para el procesamiento de la información gráfica.

Esta forma de acceso compartido a la memora video también se denomina ``framebuffer'', donde ``frame'' es un marco - una imagen en la pantalla.

Para computadoras diferentes al PC se utiliza como concepto genérico de acceso, ya que en ellos no se puede contar con los mismos gestores de tarjetas VGA o SVGA.

El ``framebuffer'' es un modelo de abstracción de la memoria de video que ha hecho posible portar los programas gráficos (en especial el X-Windows en su forma de XFree86) en cuestión de muy poco tiempo a otras plataformas, como p.ej. el PowerPC de Macintosh.

Monitores

En las tarjetas VGA hubo solo pocos modos gráficos las cuales exigen a los monitores CRT cumplir con ciertas características, específicamente con frecuencias de sincronización horizonta y vertical fijas.

Con el aumento de la diversidad de los modos gráficos aumentó la cantidad de frecuencias y surgieron los monitores ``multisync'', que permiten un rango variado de frecuencia para la sintonización entre monitor y tarjeta de video y facilitan sustancialmente la configuración. Notese, que hay monitores de frecuencia fija que pueden dañarse electrícamente si la tarjeta de video no produce las frecuencias específicas de sincronización para el modelo de monitor respectivo.

Para uso normal de oficina se considera suficiente el tamaño de ``14 pulgadas'' en un monitor. Esta medida indica la longitud de la diagonal del tubo de imágenes. Esto corresponde a un ancho de la pantalla de aproximadamente diez pulgadas. Tomando en cuenta que algunos modelos dibujan dentro de un marco de una pulgada desde la orilla del tubo de imágen quedan monitores de un ancho visible de ocho pulgadas.

Para diseño gráfico o trabajo extenso de programación etc. se utilizan monitores de 20 pulgadas. Estos ya requieren mínimamente un modo gráfico con una resolución mínima de 800 por 600 puntos para proveer una imagen clara y por lo tanto no es recomendable emplearlos con tarjetas gráficas inferiores a SVGA. Su costo es además muy elevado, y para trabajos intermedios existen monitores de 17 pulgadas.

Los tamaños recomendables y accesibles de pantallas son entonces: 15, 17 y 20 pulgadas.

Resolución

El término resolución gráfica en adaptadores de video se refiere a la cantidad de puntos (pixel) horizontales en una línea, y de puntos (pixel) verticales en una columna, lo que corresponde a la cantidad de líneas (de pixels) visibles en la pantalla.

Generalmente se utiliza una relación de tres a cuatro entre la resolución vertical y horizontal, que es una aproximación a la proporción ideal de un rectángulo. Las resoluciones comunes son:

680x480
buena visibilidad en pantallas hasta máximamente 17 pulgadas.
800x600
 
1024x768
pantallas de mínimamente 14 pulgadas.
Si utilizamos una pantalla de 14 pulgadas con un ancho visible de nueve pulgadas y una resolución de 680x480 pixel, obtenemos aproximadamente 75 pixel (puntos) en cada pulgada. Esta ``densidad'' de puntos por área (es la misma en sentido vertical como horizontal) se mide en dpi - dot per inch o puntos por pulgada (ppp).

Dado la capacidad del ojo para resolver objetos hasta un cierto tamaño se considera, que 75 dpi resultan en imagenes o contornos ``suaves'' o ``continuos'', aunque en realidad están compuestos por una matríz rectangular de puntos individuales con diferente color y luminosidad. Si reducimos la densidad de puntos debajo de 75 dpi el ojo libre distingue facilmente los puntos individuales y comienza a perder el concepto de la imagen. Notese que en la técnica de impresión el término un punto (``one point'') también se utiliza como la medida de 1/72 pulgadas, lo que corresponde a una densidad de 72 dpi; por este término enraizado utilizamos en monitores preferiblemente el término de ``pixel'' para designar un punto visible, notesé que un pixel puede tener un tamaño variable en diferentes monitores o resoluciones, mientras ``one point'' siempre tiene el mismo diámetro de 1/72 pulgadas.

Si tratamos de dibujar 80 caracteres en una línea en una pantalla de resolución 640x480 obtenemos que podemos asignarle ocho puntos consecutivos de ancho a cada letra; dejando un punto de distanciamiento nos quedan siete puntos, lo que es suficiente para una descomposición matrizial legible de todo el abecedario.

Con esto conseguimos los límites inferiores de desempeño gráfico: Si utilizamos un monitor con un ancho visible de nueve pulgadas (diagonal de 14'') a una resolución de 680x480 pixel, podemos visualizar un objeto gráfico en su tamaño real siempre y cuando usamos un ráster de 75 dpi para la descomposición matrizial.

Para obtener una mayor calidad de resolución óptica podemos usar por ejemplo un monitor de 17 pulgadas, con un ancho visible de 14 pulgadas, para obtener una visibilidad a tamaño real con una resolución de 1024x768 y una densidad de 100 dpi.

En este modo (1024x768) podemos dibujar líneas de texto con 128 caracteres por línea, o por otro lado usar hasta 12 puntos para la descomposición matricial de una letra, asumiendo una línea de 80 caracteres.

Profundidad de color

En cada pixel de una pantalla se puede regular intensidad y en monitores a colores también el color. En la mayoría de las pantallas los colores se producen mediante superposición de los colores básicos aditivos azul, rojo y verde. En realidad un pixel se compone entonces de tres pixels, cada uno en un color báscio, y se regula la luminosidad mediante la composición de las luminosidades de los tres pixels de color.

Si utilizamos por ejemplo un número de 0 a 15 para regular la luminosidad de un pixel de 0 a 100%, requerimos de $3\times4  Bits=12  Bits=1.5Bytes$ para representar luminosidad total y color de un pixel. En este caso decimos que la profundidad de color es de 12 Bit. La mezcla de colores con todas las combinaciones posibles de los tres pixels de color básico puede producir $16\cdot16\cdot16=4096$ colores diferentes[*].

Una tarjeta moderna puede tener para cada color un byte, lo que corresponde a una profundidad de colores de 24 Bits.

Usando esta terminología podemos también clasificar pantallas monocromáticas.

  Profundidad/Bits Nº de colores
Monocromático
 
El concepto de la paleta de colores explicamos medianto un ejemplo: para cada color básico se utilizará una rango de luminosidad de 5 Bits. La paleta es una lista de números de 0 a 255, a los cuales se les asigna una combinación de luminosidades que utiliza 15 Bits o dos Bytes respectivamente.

De esta manera se pueden crear tonos intermedios, que no se pudieran realizar utilizando 8 Bits. Con ocho bits solo se pueden utilizar unidades de dos Bits para cada color básico resultando en cuatro niveles de luminosidad, y correspondiente a una profundidad de colores de 6 Bits, o 64 colores diferentes. Con la paleta se pueden crear cuatro veces más colores diferentes.

X-Windows tiene la posibilidad de usar paletas de colores privadas o compartidas. La paleta privada permite a cada aplicación utilizar en todas sus ventanas 256 diferentes colores. En el momento que el cursor sale del área de la ventana de la aplicación el servidor X cambia la paleta de colores, por lo que la ventana cambia bruscamente de color, lo que puede ser iritante. Muchas aplicaciones proveen una opción para utilizar una paleta compartida (shared colormap), que entonces no refleja fielmente algunos colores, pero evita este efecto (colormap switching).

Video Chipset

El estándar VGA/SVGA deja cierta libertad para extensiones, que han fomentado que diferentes producentes de circuitos electrónicos (Chips) han creado dispositivos con una variedad de características, que pueden ser determinado por un lado por mejorar la calidad de la imagen, la velocidad de la visualización o por el otro lado por una reducción en los costos de diseño y producción de las tarjetas de video. Algunas empresas se han destacados y creado familias de dispositivos, mejorando o ampliando paulatinamente sus diseños. Una série específica de dispositivos que en su conjunto integran la función de proveer a la CPU un interfáz VGA o SVGA y producen las señales de video para la pantalla se llama ``Chipset'', que significa nada más que ``conjunto de chips''.

Un resultado de esta diversificación es, que a pesar de ser un estándar, VGA y SVGA no permiten la creación de un gestor de hardware genérico, sino cada Chipset necesita su propio gestor para utilizar las capacidades específicas o ampliadas. Aunque algunas ``familias'' de Chipset pueden utilizar un solo gestor, esto no es válido para todos.

En la versión 3.3.6 del servidor X-Windows XFree86 el gestor de la tarjeta de video es compilado fijamente (estático) con el resto de las rutinas. Por lo tanto existen varios diferentes ``servidores'' o más preciso versiones del programa X, cuales incluyen los gestores para una o más familias específica de Chipsets.

Casi todas las tarjetas SVGA pueden ser usados con el servidor XFree86_SVGA, con excepción de algunos servidores ``accelerados''.

Tarjetas VGA usan el servidor XFree86_VGA y tarjetas monocromáticas el servidor XFree86_Mono. Vale mencionar, que una tarjeta SVGA también puede usarse en modo monocromático o VGA con el servidor ``inferior'' respectivo, así como la tarjeta VGA puede trabajar en modo monocromático con XFree86_Mono.

Usando una tarjeta en un modo inferior a su capacidad no es aberado, sino resulta en una reducción de memoria occupada, un aumento drástico de velocidad, o permite usar una resolución muy superior. Para ciertas aplicaciones donde la profundidad de colores no tiene importancia esto puede ser de ventaja.

La versión 4.0 del XFree86 se destaca por una separación de los gestores de la tarjeta del resto del código, lo que permite una mayor flexibilidad, y para las y los usuarias/os una instalación y configuració sustancialmente simplificada. Sin embargo no existen gestores para todas las tarjetas gráficas existentes en la versión 3.3.6, por lo que hay que tener cautela al adquirir una tarjeta gráfica nueva, para que sea compatible con la versión 4.0, o por otro lado hay que tomar en cuenta que puede ser necesario la instalación de la versión ``vieja'' de X-Windows, especialmente en tarjetas ``viejas''.

Servidor de tipos de letras

La tarea de presentar texto (font rendering) en el ámbiente gráfico casi en todos los sistemas es asumido por el programa servidor con funciones dedicadas a la visualización de texto. En modo texto la tarea es más fácil, ya que se utilizan una matríz de caracteres con ancho fijo por cada celda. El modo gráfico permite el uso de tipos de letras con ancho variable por cada letra, lo que produce un flujo del texto más legible para el ojo humano.

Los problemas técnicos que se presentan en este proceso es la determinación del espacio que ocupará un cierto texto, y la conversión del código de caractér en su correspondiente símbolo gráfico, en dependencia del tamaño requerido (rendering).

X-windows puede leer archivos de fuentes y realizar la visualización, pero existe también un protocolo ``font-server'' - servidor de tipos de letras (xfs), que le puede asignar a un programa eventualmente remoto asumir esta tarea. Un objetivo de esto puede ser el de desligar a una computadora de la tarea de calcular la forma visualizada de un texto, y de esta forma ahorrar recursos del procesador, tomando en cuenta que una computadora que alberga un programa font-server puede trazar los fuentes para muchas otras en la red. Otro objetivo puede ser el de solo mantener una base de datos de fuentes en una red. Cada archivo de fuente que es agregado a la computadora con el font-server automáticamente es disponible para todas las computadoras en la red. Esto ahora espacio en los discos duros, evita duplicidad y más que todo requiere menos trabajo de configuración y mantenimiento, ya que solo tiene que realizarse en un solo punto.

Entre los fuentes se reconocen, sin pretender de abarcar todos, cuatro tipos importantes en cuanto a su apariencia:

Roman
- fuentes con serifes - que son las colitas al final de las líneas réctas con que son formados las letras. Esta letra se utiliza por su gran diferenciación en textos largos como libros. Un ejemplo importante son las diferentes fuentes ``Times''. En MS-Windows Times New Roman, en Unix ``Times'' y en Tex/LATEX ``Computer Modern Times''.
Sans Serif
fuentes simples sin serifes, ``Arial'' en MS-Windows, Helvetica en StarOffice
Typewriter
fuentes fijos, o fuentes de ``máquinas'', donde cada letra tiene el mismo ancho. En MS-Windows: ``Courier''.
En cuanto a su representación como archivo de tipo de letra hay varios formatos. En primer lugar se puede diferenciar entre

Bitmapped fonts
donde el archivo contiene la descomposición matrizial que hemos visto en el capítulo sobre las tarjetas de video. Estas fuentes no se reproducen bien cuando son ampliados o reducidos de tamaño y además requieren mucho espacio para su almacenamiento.
Outline fonts
donde el archivo contiene parametros para una reconstrucción de la letra individual mediante algún algorítmo, p.ej. Postscript Type 1, o TrueType de Microsoft. La descomposición matrizial se realiza hasta el momento cuando es requerido una letra, y se realiza con los parámetros de densidad (dpi) y tamaño justo, por lo que estas letras tiene mucho mejor presentabilidad en la pantalla, u otro medio de reproducción.
Se puede diferenciar la información sobre la forma de la fuenta, y la ``métrica''. Para determinar el espacio que va a occupar un cierto texto solo se requiere las dimensiónes exteriores de cada letra usada y no su forma. En algunas representaciones de tipos de letras (fonts) la información métrica se almacena en un archivo separado de la forma de las letras.

Mientras los archivos de tipos de letras TrueType anteriormente solo podían ser usados en los sistemas operativos de Microsoft ahora igual el servidor X versión 4.0 soporta su formato, y también existe un programa servidor de fuentes xfs-tt que puede rasterizar fuentes estándard de Unix y de X-Windows, como las fuentes TrueType. Esto significa, que las aplicaciónes Linux pueden visualizar e imprimir documentos con métrica y forma idéntica a las aplicaciones de MS-Windows. Los tipos de letras básicos de Microsoft Windows son disponible gratuitamente en Internet, gracias a una política colaborativa de esta empresa; su manejo difiere en diferentes distribuciones. En la distribución Debian hay un soporte directo y una utilidad para descargar y actualizarlas directamente.

Xconfigurator

La distribución Linux de RedHat 7.1 todavía está usando la versión 3.3.6 de X-Windows, posiblemente por la mejor compatibilidad con la gran variedad de Chipsets de Video.

RedHat provee un programa excelente de configuración para X-Windows, llamado Xconfigurator, que es también parte del programa ``setup'', desde donde preferiblemente se llama.

El atractivo de la configuración X en RedHat es una base de datos de tarjetas de video y monitores con sus datos de configuración predifinidos, que permite una configuración mediante el nombre.

Se entiende que la configuración de X-Windows no puede realizarse en modo gráfico, pero RedHat utiliza un sistema semi-gráfico (en modo texto) para sus programas de configuración. Xconfigurator solicita al usuario los datos necesarios mediante menúes de selección, y crea desde allí un archivo de configuración para X-Windows, que normalmente es muy acertado.

Vale notar, que RedHat utiliza un enlaze simbólico /dev/mouse para definir el dispositivo donde está conectado el ratón. La configuración del sistema configura a gpm (el gestor del ratón en modo texto) y a X-Windows para que utilizan este enlace, y para que cada uno, gpm y X, utilizen su propio gestor correspondiente al tipo de ratón. Esto es diferente al concepto utilizado con la distribución Debian el cual se presentará a continuación.

La consecuencia de esta configuración es, que al cambiar el ratón posiblemente solo hay que cambiar el enlace simbólico y gpm y X reconocen autoáticamente el nuevo dispositivo, sin embargo hay que cambiar el gestor en ambos programas cuando se cambia el tipo de ratón también.

XF86Setup

Es un programa proveido por la misma distribución de XFree86. El concepto de este programa es, de lanzar un servidor X en modo VGA - estándar para tener un ambiente gráfico, desde el cual se selecciona todos los parámetros cómodamente.

Sin embargo, este programa en muchas situaciones no funciona. Si se dispone de una tarjeta gráfica no compatible con el servidor XFree86_VGA el programa no arranca, en caso que sí es compatible, muchas veces tarda en arrancar. Otro problema es, que no es fácil para XF86Setup adivinar dispositivo y tipo de ratón, por lo que muchas veces no son utilizables y los menús se hacen difícil de manejar, en especial la selección de la tarjeta de video en la lista, que es extremadamente larga.

XFree86 en la versión 3.3.6 provee una grán base de datos de tarjetas de video, y selecciona de ellos el programa servidor X correspondiente. Sin embargo muchas veces no funciona bien el archivo de configuración creado, y el servidor X no logra sincronizar la pantalla.

De mucha ayuda es el archivo de Monitores, donde hay las frecuencias y parámetros funcionales para una inmensa variedad de Monitores CRT, que pueden consultarse e insertarse manualmente en el archivo de configuración de X-Windows.

xf86config

Es la utilidad genérica para la configuracion de XFree86. Es un programa solo de texto, en el cual se contesta una variedad de preguntas, que son utilizadas para crear un archivo de configuración. Aunque sufre de los mismos defectos como XF86Setup en cuanto a la producción de archivos de configuración no funcionales.

Sin embargo lo considero como la herramienta básica para la configuración, que en muchos casos es la única forma de generar un archivo de configuración básica, que puede modificarse posteriormente. Por eso es válido utilizar este prógrama y tratar de conocer bien su conocimiento, además de que tiene texto de ayuda bien elaborado, que da al/a la usuario/a conocimiento importante sobre los aspectos de configuración de X-Windows.

dexconf

Es un programa de la distribución Debian de Linux, que normalmente no se utiliza manualmente, sino forma parte de la configuración automática. Se puede usar para crear una configuración base, que muchas veces ya es satisfactoria, o puede ser modificado facilmente para adaptarse a las necesidades individuales. dexconf existe desde la versión Woody (3.0) de la distribución Debian, donde se aplica ya el servidor XFree86 versión 4.0. En esta distribución es además muy bueno el programa de configuración, que puede volver a llamarse en cualquier momento con la línea de comando:

dpkg-reconfigure xserver-xfree86
El único defecto es, que el programa no toma en cuenta el tipo de teclado utilizado en la computadora, genera una entrada para el teclado inglés, y peór: aunque se corrige esta entrada manualmente se encontrará sobreescrito por la versión ``anglocéntrica'' en cada actualización de xserver-xfree86.

En Debian pueden instalarse la versión 3.3.6 y la versión 4.0 de XFree86 en paralelo. En la versión 2.2. (Potato) solo existe la versión 3.3.6, donde la configuración preferiblemente se realiza con las herramientas básicas descritas en las secciones anteriores.

XF86Config

Es el archivo de configuración para el X-server, que normalmente se encuentra en el directorio /etc/X11. Este archivo a propósito permite redundancia, quiere decir que pueden incluirse configuraciones para varios monitores, tarjetas gráficas o configuración de los dispositivos de ingreso - ratón (pointer device) y teclado.

De esta forma se pueden crear archivos de configuración, que son válidos para varias configuración de computadoras, lo que puede ser importante para administradores de sitios con muchas computadoras como centros de cómputo, universidades, etc. A la hora de leer el archivo de configuración el X-server valida o descarta las líneas individuales para formar la configuración correspondiente a sus capabilidades. El archivo XF86Config utiliza un ``lenguaje'' de configuración simple pero bien estructurado, mediante la cual se divide el archivo en diferentes secciones: ``Section's''. Dentro de cada sección se configura algún aspecto del servidor. Hay secciones globales, que albergan opciones globales de configuración de los servidores X de la computadora local, y secciones que pueden ser individuales, por lo que se declaran etiquetas, llamadas ``Identifier'', mediante en las últimas secciones se determina, cual parte del archivo de configuración se toma en cuenta en un servidor específico.

Un elemento importante para el éxito de la configuración son las líneas de modos gráficos, los ``Modelines'', y la configuración de frecuencias verticales y horizontales del monitor.

Los Modelines efectivamente programan el Chipset y determinan la resolución a utilizar. Pueden utilizarse varias en una sola sesión X y cambiarse de una resolución a otra mediante una combinación especial de teclas. Para cada combinación de monitor, tarjeta de video y resolución es preciso una correcta configuración para obtener una imagen en el monitor. En la configuración estándar se insertan muchas Modelines con la misma resolución, pero con frecuencias de sincronización ascendentes en XF86Config, o sea, las líneas para tarjetas y monitores inferiores vienen primero. A la hora de leer el archivo el X-server descarta todas las líneas que no pueden cumplir con las restricciones del monitor, y se queda la última y por lo tanto ``mejor'' línea de configuración para la resolución respectiva. Esta por su lado pueda que no funcione, cuando se especifico datos del monitor no correspondientes a su capacidad. En este caso se puede marcar la última línea (la usada sin éxito) como comentario y volver a probar arrancar el X-server de nuevo.

Un método de comprobar si el archivo de configuración es válido es, utilizar la línea de comando:

X -probeonly 2>xserver.txt
De esta forma, el X-server lee y ejecuta el archivo de configuración, pero sin cambiar al modo gráfico. Al terminar de ejecutarse, se puede analizar el archivo xserver.txt en el directorio actual, para determinar que opciones son usados por el servidor X y donde eventualmente habrá un problema. Notese, que hay problemas con X-Windows que no pueden dedectarse de esta forma, por ejemplo puede haber la ausencia de cierto tipos de caracteres en su sistema, lo cual solo se detecta hasta que se lance la sessión X ``real''.

XF86Config-4

La versión 4.0 utiliza un archivo de configuración con una estructura parecida a la de la versión 3.3.6, pero que no es compatible.

En especial hay cambios en cuanto a los dispositivos de entrada: teclado y ratón, en cuanto a la composición de los diferentes opciones para crear ``screens'' - configuraciones de una o más pantallas, y además hay que especificar cuál gestor de hardware utilizar, ya que no son parte interno del servidor.

Sin embargo, en total se ha facilitado la configuración sustancialmente y el servidor X realiza mucho trabajo de auto-configuración, tomando valores sensatos por defecto.

Para evitar problemas de competencia entre los dos versiones X, el servidor 4.0 trata de leer primero un archivo con nombre ``XF86Config-4'', y solo si no encuentra este utiliza el nombre ``XF86Config'' como patrón de búsqueda. Por lo tanto puede llamarse el archivo de las dos formas, pero se utiliza preferiblemente la primera, para permitir eventualmente correr un servidor anterior.


next up previous contents
Next: Red TCP/IP Up: Configuración Previous: Configuración   Contents
Georg Lehner 2003-10-28