ant

EL SISTEMA X WINDOWS
5.1

sig

5.1 El sistema X Window

X Window es un enorme entorno gráfico para sistemas UNIX, potente y también complejo. Originalmente fue desarrollado por el MIT, y desde entonces los desarrolladores de sistemas comerciales han convertido a las X en un estandar de las plataformas UNIX. Prácticamente todas las estaciones de trabajo UNIX del mundo utilizan X Window en alguna de sus variantes.

Existe, desarrollada por un equipo de programadores inicialmente liderados por David Wexelblat, una implementacion gratuita de las X Windows version 11, release 6 (X11R6) para sistemas UNIX con 80386/80486/Pentium. Esta implementación, llamada XFree86, se encuentra disponible en UNIX x86 como System V/386, 386BSD y por supuesto Linux. Incluye todos los binarios necesarios, ficheros de soporte, librerias y utilidades.

En esta sección, le daré una descripción de como instalar y configurar paso a paso XFree86 en Linux, pero necesitará completar la información con otra disponible en la documentación propia de XFree86 (Documentación que comentaré más adelante). Otra fuente interesante de información es la XFree86 HOWTO. Le animo a leer The X Window System: A User's Guide.

5.1.1 Requisitos de hardware

No todos los "chipsets" están soportados.
La documentación que se incluye con su adaptador de vídeo debería especificar cual es el "chipset" que utiliza. Si esta a punto de comprarse una nueva tarjeta gráfica, conviene pedir al vendedor el modelo exacto de tarjeta y "chipset" de vídeo. Esto supondrá, casi siempre, recurrir al servicio técnico, pero normalmente los vendedores no pondrán inconvenientes. La mayor parte de los vendedores de PCs se limitan a decir que sus ordenadores tienen tarjetas gráficas "SVGA estandar" que "tienen que funcionar" en su sistema. Explíqueles que su software (nombrando a Linux y XFree86, por supuesto) no soporta todos los "chipsets" y que usted necesita por eso información mas detallada.

De todas formas, puede determinar su "chipset" ejecutando el programa SuperProbe incluido con la distribucion de XFree86. De esto hablamos mas abajo.

Están soportados los siguientes "chipsets" SVGA (aquí van algunos...):



También están soportados los siguientes, con acelerador: o 8514/A (y clonicos) o ATI Mach8, Mach32 o Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235 o S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964 o Western Digital WD90C31, WD90C33 o Weitek P9000 o IIT AGX-014, AGX-015, AGX-016 o Tseng ET4000/W32, ET4000/W32i, ET4000/W32p

Todas las tarjetas gráficas que usan estos "chipsets" están soportadas, incluso para bus local Vesa o PCI. El soporte incluye los modos monocromáticos y de 256 colores, con la excepción de Avance Logic, MX y Vídeo 7, que están soportadas solo en 256 colores. Si su tarjeta gráfica tiene suficiente memoria DRAM, la mayor parte de los "chipsets" anteriores también están soportados para los modos de 16 y 32 bits por pixel (en concreto, algunas Mach32, P9000, S3 y Cirrus).

El servidor monocromático también soporta las tarjetas VGA genéricas, la Hercules, la Hyundai HGC1280, Sigma LaserView y Apollo. Para la Compaq AVGA, solo están soportadas 64Kb de memoria de vídeo en el servidor monocromático, y la GVGA no ha sido probada con mas de 64 Kb.

Indudablemente, esta lista seguirá creciendo conforme pase el tiempo. Las notas que encontrará junto a la version actual de XFree86 contendrán probablemente una completa lista de "chipsets" soportados en ese momento.

Un problema que se encuentran con frecuencia los desarrolladores de XFree86 es que algunos fabricantes de tarjetas gráficas utilizan mecanismos no estándares para determinar las frecuencias de reloj a usar en la tarjeta. Algunos de esos fabricante tampoco editan especificaciones que describan como programar la tarjeta, o exigen a los desarrolladores que firmen un documento de no divulgación para poder obtener la información. Esto, obviamente, dificulta la libre distribución del software de XFree86.

Durante mucho tiempo esto ha impedido trabajar con las tarjetas Diamond, pero desde la version 3.1 de XFree86, Diamond ya ha comenzado a colaborar con el equipo de desarrollo para la realización de drivers para esas tarjetas.

La configuración que se sugiere para ejecutar XFree86 con Linux es una maquina 486 con 8 megabytes de RAM por lo menos, y una tarjeta gráfica con un "chipset" soportado.

Para obtener un rendimiento óptimo, se sugiere utilizar una tarjeta acelerada, como las basadas en el "chipset" S3. Usted debe comprobar sobre la documentación de XFree86 que su tarjeta esta soportada antes de proceder al gasto que supone el nuevo hardware. Se han comparado rendimientos de diversos modelos de tarjetas, y sus resultados son enviados periódicamente a los grupos de news USENET comp.windows.x.i386unix y comp.os.linux.misc.

Su maquina necesitará al menos 16 megabytes de memoria física en RAM y 16 de memoria virtual (por ejemplo, 16 megabytes en RAM y otros 16 en swap). Recuerde que cuanta mas RAM tenga, menos tendrá el sistema que acudir al disco duro cuando no hay memoria suficiente. Dado que el swapping es inherentemente lento, tener 16 megabytes de RAM o más es necesario si quiere correr XFree86 de forma confortable. Un sistema con 8 megabytes de RAM correrá mucho mas lento (hasta 10 veces) que uno con 16 megabytes o más. (hoy en día lo recomendable son unos de 64 Mb para que las X funcionen optimamente).

5.1.2 Instalación de XFree86

La distribución en binario de XFree86 para Linux puede encontrarse en muchos servidores de FTP. En sunsite.unc.edu se encuentra en el directorio /pub/Linux/X11.
Es común que usted haya obtenido XFree86 como parte de una distribucion de Linux, en cuyo caso no necesitara obtener el software del servidor anterior.
Si en cambio los obtiene por esta vía, la siguiente tabla le informará de los ficheros de los que consta la distribucion XFree86.

FicheroDescripción
XF86-3.1-8514.tar.gzServidor para tarjetas tipo 8514.
XF86-3.1-AGX.tar.gzServidor para tarjetas tipo AGX.
XF86-3.1-Mach32.tar.gzServidor para tarjetas tipo Mach32.
XF86-3.1-Mach8.tar.gzServidor para tarjetas tipo Mach8.
XF86-3.1-Mono.tar.gzServidor monocromo.
XF86-3.1-P9000.tar.gzServidor para tarjetas tipo P9000.
XF86-3.1-S3.tar.gzServidor para tarjetas tipo S3.
XF86-3.1-SVGA.tar.gzServidor para tarjetas SVGA.
XF86-3.1-VGA16.tar.gzServidor para VGA en 16 colores.
XF86-3.1-W32.tar.gzServidor_para_tarjetas_tipo_ET4000/W32


Además, son necesarios todos los ficheros siguientes:

FicheroDescripción
XF86-3.1-bin.tar.gzBinarios de X11R6.
XF86-3.1-cfg.tar.gzFicheros de configuración para xdm, xinit y fs.
XF86-3.1-doc.tar.gzDocumentacion y paginas de manual.
XF86-3.1-inc.tar.gzFicheros include.
XF86-3.1-lib.tar.gzFicheros de soporte y librerias compartidas.
XF86-3.1-fnt.tar.gzFuentes básicas


Los siguientes ficheros son opcionales:

FicheroDescripción
XF86-3.1-ctrb.tar.gzDiversas contribuciones.
XF86-3.1-man.tar.gzPáginas de manual.
XF86-3.1-usrbin.tar.gzDaemons que residen en /usr/bin.
XF86-3.1-extra.tar.gzOtros servidores y binarios.
XF86-3.1-lkit.tar.gzKit para personalización de servidores.
XF86-3.1-fnt75.tar.gzFuentes de 75 ppp.
XF86-3.1-fnt100.tar.gzFuentes de 100 ppp.
XF86-3.1-fntbig.tar.gzOtras fuentes (Kanji...).
XF86-3.1-fntscl.tar.gzFuentes escalables (Speedo, Type1).
XF86-3.1-pex.tar.gzBinarios PEX y librerias.
XF86-3.1-slib.tar.gzLibrerias estáticas de X.
XF86-3.1-xdmshdw.tar.gzVersión de xdm para shadow password


El directorio de XFree86 debería contener los ficheros README y otras notas acerca de la instalación de la versión actual. Todo lo que se necesita para instalar XFree86 es obtener los ficheros anteriores, crear el directorio /usr/X11R6 (como root), y desempaquetar los ficheros desde ese directorio con un comando como el siguiente:
# gzip -dc XF86-3.1-bin.tar.gz | tar xfB -
Recuerde que esos ficheros tar se empaquetan con directorios relativos a /usr/X11R6, con lo que es imprescindible desempaquetarlos en el lugar indicado. Después de desempaquetar los ficheros, necesitará hacer un enlace del nombre /usr/X11R6/bin/X al servidor que vaya a utilizar.

Por ejemplo, si desea usar el servidor SVGA color, /usr/bin/X11/X debe ser un enlace a /usr/X11R6/bin/XF86_SVGA. Si desea utilizar el servidor monocromo en su lugar, el enlace apuntará a XF86_MONO con el comando
# ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X
El mecanismo es similar para cualquier otro servidor que quiera usar. Si no está seguro de que servidor debe usar, o no conoce el "chipset" de su tarjeta gráfica, puede ejecutar SuperProbe, un programa del directorio /usr/X11R6/bin (incluido en el fichero XF86-3.1-bin), que intentará identificar su "chipset" y otras informaciones. Anote su salida para posterior referencia.

Necesita asegurarse de que /usr/X11R6/bin se encuentra en el path. Esto puede hacerse editando el fichero /etc/profile o /etc/csh.login (según que shell utilice). O simplemente puede añadir el directorio a su path personal modificando su propio .bashrc o .cshrc.

Además, hay que asegurarse que /usr/X11R6/lib es localizable por ld.so, el enlazador dinámico. Para ello, realize como root:
# echo "/usr/X11R6/lib" | cat >> /etc/ld.so.conf
# /sbin/ldconfig