DPD El sistema X Window
De Gleducar, http://www.gleducar.org.ar
Contenido |
XFree86 y Xorg
Entorno X
El sistema X Window fue desarrollado como el componente de visualización del Proyecto Athena en el MIT. El sistema X Window es un entorno gráfico amplio y potente para los sistemas UNIX. Desde que aparecieron las primeras versiones de X Window muchos distribuidores de UNIX la incorporaron a sus plataformas. La amplia disponibilidad de X Window en Unix ha hecho que se convierta en la interfaz gráfica estándar para los sistemas Unix. Prácticamente todos los sistemas Unix del mundo ruedan alguna variedad del sistema X Window.
La implementación del sistema X Window en Linux se basa en la adaptación distribuible de X Window versión 11 release 6 (habitualmente conocida como X11R6). Esta adaptación de libre distribución se conoce como Xfree86 para las familias de procesadores 08386/80486 y Pentium. Desde su adaptación inicial, Xfree86 ha estado disponible para otras plataformas incluyendo System V/386, 386BSD.
Actualmente, existe otro servidor gráficio que está siendo utilizado cada vez con mayor frecuencia. Se trata de Xorg. Éste ha surgido por la decisión de los desarrolladores de XFree86, de cambiar la licencia de la siguiente versión y que XFree86 deje de ser "totalmente" libre.
De todas formas, en un acto de gran inteligencia de los desarrolladores de Xorg, han tomado la forma de configuración de XFree86, de manera que todo lo que expliquemos para este, también es válido para Xorg.
La implementación Xfree86 (Xorg) incluye todos los fuentes, binarios, librerías y herramientas.
En primer lugar es necesario aclarar alguna terminología. El servidor X es el controlador de visualización y se encarga de controlar la pantalla en la estación de trabajo local. Esto contrasta con la definición típica de servidor, que es un recurso que suele encontrarse en un sistema remoto.
Los clientes X son los programas aplicativos como el administrador de archivos o el manejador de ventanas (por ejemplo KDE), con los que el usuario interactúa. Al contrario que el servidor que se encuentra en el equipo local, un cliente puede rodar tanto en el sistema local como en uno remoto.
Requerimientos de hardware
El sistema X Window está muy ligado al hardware de vídeo del sistema y una configuración incorrecta del servidor X podría dañar el monitor o la tarjeta de vídeo. No obstante, la mayoría de los monitores multisync actuales son bastante resistentes a este tipo de averías ya que son capaces de ajustarse automáticamente al sincronismo y frecuencia de refresco del adaptador. De todas formas es conveniente tener cuidado al modificar este tipo de ajustes.
Durante la instalación de Linux, el programa de instalación de X Window detecta el hardware de vídeo disponible y solicita verificación de dicha selección al usuario. Especialmente importante es el chipset de la tarjeta de vídeo que determinará que servidor X se utilizará.
Nota: Existe una lista de hardware soportado con los correspondientes chipsets en www.xfree86.org/4.0/Status.html.
Cada fabricante de adaptadores de vídeo utiliza un determinado chipset responsable de las funcionalidades gráficas del producto. Este chipset está indicado normalmente en la documentación del adaptador pero, en ocasiones, será necesario contactar con el fabricante para poder averiguarlo.
Para rodar X Window en un sistema Linux es necesario, como mínimo, un sistema 80486 con un adaptador de vídeo compatible con un mínimo de 8MB de RAM. Para unas prestaciones óptimas se recomienda más RAM y una tarjeta con acelerador de vídeo.
En todo caso, antes de comprar o intentar configurar un adaptador de vídeo es conveniente verificar su compatibilidad consultando la información de www.xfree86.org/4.0/Status.html.
También se recomienda añadir RAM a la PC, ya que un sistema con poca RAM puede ser hasta diez veces más lento que uno con la cantidad correcta (debido al swapping). El mínimo ideal para un sistema gráfico sería 128MB de RAM.
Instalando XFree86 (Xorg)
La mayoría de las distribuciones de Linux incluyen el sistema X Window con pequeñas diferencias en la instalación dependiendo del proveedor.
RedHat por ejemplo utiliza un programa de instalación para su sistema totalmente basado en X y, por tanto, el usuario ha de escoger y chequear la configuración de X Window antes de comenzar la instalación del sistema. Este método apenas requiere de configuración adicional a no ser que haya que configurar alguna función o prestación específica.
Generalmente no habrá que descargar los fuentes de Xfree86 por separado porque normalmente se instalan durante la instalación de Linux.
Antes de hacer nada más, se debe descargar y ejecutar el script Xinstall.sh, porque de esta forma conoceremos cualquier requisito necesario que haya que cumplir antes de continuar con la instalación.
Por ejemplo, al ejecutar Xinstall.sh podríamos obtener los siguientes resultados:
$ sh Xinstall.sh Welcome to the XFree86 4.0 installer You are strongly advised to backup your existing XFree86 installation before proceeding. This includes the /usr/X11R6 and /etc/X11 directories. The installation process will overwrite existing files in those directories, and this may include some configuration files that may have been customised. Do you wish to continue? (y/n) [n] y Checking which OS you're running... uname reports 'Linux' version '2.2.16-22smp', architecture 'i586'. Object format is 'ELF'. libc version is '6.1'. Checking for required files ... You need to download the 'extract' (or 'extract.exe') utility and put it in this directory. When you have corrected the problem, please re-run 'sh Xinstall.sh' to proceed with the installation.
En este ejemplo, el script Xinstall.sh script identifica algunos componentes que faltan, en particular, el programa de extracción. Lo único que hace falta para instalar XFree86 es conseguir la distribución binaria, crear el directorio /usr/X11R6 (como root), y desempaquetar los archivos desde /usr/X11R6.
Una vez que los archivos estén desempaquetados en /usr/X11R6, hay que añadir /usr/X11R6/bin al path de búsqueda editando el .profile o añadiéndolo al entorno actual, pero de esta última forma se perderán los cambios al desconectarse del sistema.
Aunque se hable de .profile será necesario editar el script de inicio de la shell que se esté utilizando, ya sea .profile o .cshrc o .login. Si el sistema tiene varios usuarios la mejor solución es editar los archivos de inicio generales del sistema /etc/profile o /etc/.login.
También se debe verificar que el enlazador en modo de ejecución (runtime linker) ld.so, puede encontrar las librerías compartidas que utiliza el sistema X Window. Esto se hace añadiendo la línea
/usr/X11R6/lib
Al archivos /etc/ld.so.conf (si es que ya no estaba allí). A partir de este momento ya podemos configurar el sistema X Window.
Repetimos que si se está utilizando una distribución Linux que incluya el sistema X Window system (como la mayoría de las actuales) posiblemente no sea necesaria más configuración adicional.
Configurando el sistema X-window
Cuando se lanzó por primera vez el sistema X Window, era todo un desafío poderlo configurar correctamente. No obstante, con las nuevas versiones de Xfree86 o Xorg y el trabajo realizado por varios distribuidores de Linux, la configuración se ha convertido en algo mucho más sencillo.
El servidor X ha cambiado para soportar módulos cargables dependiendo de la tarjeta de vídeo y del chipset utilizados, haciendo más fácil su manejo. El único secreto que tiene esta configuración en los sistemas Linux actuales es conocer el comando correcto de configuración del entorno X.
Normalmente será XF86Setup o xf86config. Otras distribuciones Linux pueden tener otros comandos diferentes: RedHat utiliza Xconfigurator, y Mandrake utiliza Xfdrake.
Todos estos comandos sirven para lo mismo, configurar el entorno X Window para que trabaje correctamente con el hardware de vídeo. Estos programas crean el archivo /etc/X11/XF86Config o en /etc/X11/xorg.conf, que define los parámetros y el comportamiento del servidor X, incluyendo la localización de los archivos, definiciones de fuentes, resoluciones de pantalla y configuraciones del monitor.
El programa XF86Setup arranca el servidor X VGA de 16 colores e interactúa con el usuario para definir los parámetros de configuración y chequear el servidor X seleccionado. RedHat y Debian Linux utilizan un programa llamado xf86config o Xconfigurator, que no inicia el servidor X hasta que no están listos para chequear la configuración.
La siguiente figura muestra al configurador Xconfigurator de RedHat confirmando el hardware de vídeo detectado:
El programa Xconfigurator es una versión mejorada de xf86config, que está totalmente basado en texto como se puede ver en la siguiente figura:
Todos los programas de configuración de X Window van pasando por una serie de pasos para verificar el hardware de vídeo, el ratón, el tipo de monitor, las resoluciones deseadas y la profundidad del color como se ilustra en la siguiente figura:
Con esta información, la herramienta de configuración intenta determinar que servidores X son los apropiados y, a continuación, los somete a un test para averiguar cual de ellos es el que funciona. El usuario debe decidir si la visualización es aceptable antes de que finalice el test o el programa decidirá que no es aceptable.
La documentación de X Window identifica un problema bastante molesto con los tipos de teclado, el programa XF86Setup considera que el teclado genérico es el de 102 teclas y no el típico de 101 teclas. Si se elige el de 101 teclas podríamos encontrarnos con problemas con el teclado numérico y otras teclas.
La selección de monitor es fundamental para que el servidor X conozca que prestaciones y que límites existen para la resolución y las frecuencias de refresco.
Si no estamos seguros del tipo del monitor o no apareciese en el listado, siempre será mejor intentar seleccionar los tipos genéricos y luego continuar con otros de nuestro mismo fabricante, posiblemente haya que contactar con el fabricante para conocer las características del monitor y, así, poder seleccionar el tipo adecuado.
Algunos de los programas de configuración X llaman a xvidtune, que nos permite trucar los ajustes para obtener la mejor visualización. Por eso aparece un banner de aviso diciendo que podríamos dañar el monitor. Esto podría suceder aunque, como se comentó antes los monitores multisync modernos son bastante resistentes.
El programa XF86Config asume que el ratón se encuentra en /dev/mouse. Esto debería ser lo correcto ya que es lo que normalmente se define en tiempo de instalación, de todas formas, si esto no funcionase habría que averiguar a que puerto está conectado el ratón y hacer un link entre ese puerto y /dev/mouse.
El arhivo XF86config
Todos los programas de configuración X terminan creando el archivo XF86Config que, normalmente, se guarda en /etc/X11.
Durante la inicialización, el servidor mira la configuración que hay en /etc/X11/XF86Config antes de presentar el interfaz X al usuario.
El servidor X busca el archivo XF86Config en los siguientes directorios:
Como usuario normal:
/etc/X11/<cmdline> /usr/X11R6/etc/X11/<cmdline> /etc/X11/$XF86CONFIG /usr/X11R6/etc/X11/$XF86CONFIG /etc/X11/XF86Config-4 /etc/X11/XF86Config /etc/XF86Config /usr/X11R6/etc/X11/XF86Config.<hostname> /usr/X11R6/etc/X11/XF86Config-4 /usr/X11R6/etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config.<hostname> /usr/X11R6/lib/X11/XF86Config-4 /usr/X11R6/lib/X11/XF86Config
Como usuario root:
<cmdline> /etc/X11/<cmdline> /usr/X11R6/etc/X11/<cmdline> $XF86CONFIG /etc/X11/$XF86CONFIG /usr/X11R6/etc/X11/$XF86CONFIG $HOME/XF86Config /etc/X11/XF86Config-4 /etc/X11/XF86Config /etc/XF86Config /usr/X11R6/etc/X11/XF86Config.<hostname> /usr/X11R6/etc/X11/XF86Config-4 /usr/X11R6/etc/X11/XF86Config /usr/X11R6/lib/X11/XF86Config.<hostname> /usr/X11R6/lib/X11/XF86Config-4 /usr/X11R6/lib/X11/XF86Config
El archivo XF86Config está dividido en secciones según la información específica de cada una:
| Sección | Descripción |
|---|---|
| Files | Localización de los archivos |
| Server Flags | Banderas o switches del servidor |
| Module | Carga dinámica de módulos |
| Input Device | Descripción de los dispositivos de entrada |
| Device | Descripción de los dispositivos gráficos |
| Video Adaptor | Descripción del adaptador de vídeo Xv |
| Monitor | Descripción del monitor |
| Modes | Descripción de los modos de vídeo |
| Screen | Configuración de la pantalla |
| ServerLayout | Presentación general |
| DRI | Configuración específica de DRI |
| Vendor | Configuración específica del proveedor/fabricante. |
Los nombres de sección obsoletos Keyboard y Pointer aún se reconocen pero solo por motivos de compatibilidad, en su lugar debe utilizarse la sección InputDevice.
Las secciones ServerLayout enlazan los dispositivos de entrada y de salida utilizados en una sesión. Los dispositivos de entrada se describen en las secciones InputDevice.
Los dispositivos de salida, normalmente, están formados por varios componentes independientes (como una tarjeta gráfica y un monitor). Las tarjetas gráficas se describen en las secciones Device y los monitores en Monitor. El monitor y la tarjeta de vídeo se tratan como uno solo en las secciones Screen, y a esos mismos conjuntos se hace referencia en la sección ServerLayout.
Se puede encontrar una documentación mas extensa sobre el formato y contenido del archivo XF86Config en las páginas man de Linux.
No debe hacerse ningún cambio en el archivo XF86Config sin consultar en las páginas del manual la información específica sobre la sección que se va a modificar.
El archivo XF86Config es bastante grande. (No es raro encontrar más de 400 líneas.)
El servidor de fuentes X proporciona al servidor X el trazado de las fuentes. Aunque normalmente esto siempre ha estado unido a la aplicación del servidor X, desde RedHat 6.0 se ha independizado del servidor y rueda por separado. El archivo XF86config tiene una sección que identifica la localización de las fuentes en el sistema.
Consideremos el siguiente ejemplo de un archivo XF86config:
# Multiple FontPath entries are allowed (they are #concatenated together) # By default, Red Hat 6.0 and later now use a font #server independent of # the X server to render fonts. FontPath "/usr/X11R6/lib/X11/fonts/TrueType" FontPath "unix/:7100"
Esto indica que la ruta de las fuentes corresponde al directorio /usr/X11R6/lib/X11/fonts/TrueType, y se especifica una conexión con un servidor de fuentes. Las especificaciones del servidor de fuentes utilizan la sintaxis:
<trans>/<hostname>:<port-number>
donde <trans> es el tipo de transporte utilizado para conectar con el servidor de fuentes (como unix para Unix-domain sockets o tcp para una conexión TCP/IP), <hostname> es el nombre de la máquina que rueda el servidor de fuentes, y <port-number> es el número de puerto donde el servidor de fuentes escucha las peticiones (normalmente 7100).
Teniendo esto en mente, miremos de nuevo al ejemplo:
FontPath "unix/:7100"
Sabemos que la ruta de fuentes apunta a un transporte del tipo Unix-domain socket. La ausencia de un nombre de máquina a la izquierda de los dos puntos implica que la conexión es con la máquina local en el puerto 7100. Si el servidor de fuentes que queremos utilizar estuviese en otra máquina diferente, la entrada anterior podría ser:
FontPath "unix/fontserver.mydomain.com:7100"
Cuando no se especifica la entrada FontPath en el archivo XF86Config, el servidor retorna al modo histórico de fuentes precompiladas:
/usr/X11R6/lib/X11/fonts/misc/ /usr/X11R6/lib/X11/fonts/Speedo/ /usr/X11R6/lib/X11/fonts/Type1/ /usr/X11R6/lib/X11/fonts/CID/ /usr/X11R6/lib/X11/fonts/75dpi/ /usr/X11R6/lib/X11/fonts/100dpi/
La lista FontPath recomendada consta de los siguientes elementos:
/usr/X11R6/lib/X11/fonts/local/ /usr/X11R6/lib/X11/fonts/misc/ /usr/X11R6/lib/X11/fonts/75dpi/:unscaled /usr/X11R6/lib/X11/fonts/100dpi/:unscaled /usr/X11R6/lib/X11/fonts/Type1/ /usr/X11R6/lib/X11/fonts/CID/ /usr/X11R6/lib/X11/fonts/Speedo/ /usr/X11R6/lib/X11/fonts/75dpi/ /usr/X11R6/lib/X11/fonts/100dpi/
Las rutas de fuentes que se detecte que sean incorrectas se eliminarán de la lista de rutas durante la inicialización del servidor. Si hubiese directorios adicionales de fuentes instaladas deberían añadirse a la lista mediante entradas FontPath. No obstante, el archivo XF86Config es utilizado por el servidor X y no por el servidor de fuentes X. El servidor de fuentes X, conocido normalmente como XFS, se arranca durante la inicialización del sistema. XFS lee su propio archivo de configuración que define su modo de operación independientemente del servidor X. Este archivo se encuentra en /etc/X11/fs/config. A continuación tenemos un ejemplo de un archivo de configuración XFS:
# # Default font server configuration file for Red Hat Linux # # allow a max of 10 clients to connect to this font server client-limit = 10 # when a font server reaches its limit, start up a new one clone-self = on # alternate font servers for clients to use #alternate-servers = foo:7101,bar:7102 # where to look for fonts # catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled, /usr/X11R6/lib/X11/fonts/75dpi:unscaled, /usr/X11R6/lib/X11/fonts/misc, /usr/X11R6/lib/X11/fonts/Type1, /usr/X11R6/lib/X11/fonts/Speedo, /usr/X11R6/lib/X11/fonts/75dpi, /usr/share/fonts/default/Type1 # in 12 points, decipoints default-point-size = 120 # 100 x 100 and 75 x 75 default-resolutions = 75,75,100,100 # use lazy loading on 16 bit (usually Asian) fonts deferglyphs = 16 # how to log errors use-syslog = on # don't listen to TCP ports by default for security reasons no-listen = tcp
Particularmente interesante es la palabra clave catalogue<code>, ya que es esencialmente equivalente a la palabra clave FontPath de CF86config. Por tanto, si se hacen cambios en la directiva FontPath de XF86config, también habría que hacer los mismos cambios en catalogue de <code>/etc/X11/xfs/config para que el servidor de fuentes se entere.
El servidor de fuentes X se inicia normalmente durante la inicialización del sistema en /etc/rc.d/init.d/xfs. Este script puede ser utilizado además para parar y/o reiniciar el servidor de fuentes X.
Se puede encontrar más información sobre el servidor de fuentes X en las páginas man correspondientes a XFS.
Controlando X
El servidor X puede controlarse para proporcionar determinadas configuraciones cuando arranquen los clientes utilizando el archivo .Xresources. Si existiese este archivo, debería encontrarse en la carpeta home del usuario. El archivo .Xresources no se crea automáticamente y hay una configuración por defecto válida para todo el sistema. Este archivo contiene directivas que se aplicarán al cliente X cuando se inicialice. El siguiente extracto de un archivo .Xresources indica como se mostrara el color en un xterm:
xterm_color*background: Black xterm_color*foreground: Wheat xterm_color*cursorColor: Orchid xterm_color*reverseVideo: false xterm_color*scrollBar: true xterm_color*saveLines: 5000 xterm_color*reverseWrap: true xterm_color*font: fixed xterm_color.geometry: 80x25+20+20 xterm_color*fullCursor: true xterm_color*scrollTtyOutput: off xterm_color*scrollKey: on xterm_color*VT100.Translations: #override\n\ <KeyPress>Prior : scroll-back(1,page)\n\ <KeyPress>Next : scroll-forw(1,page) xterm_color*titleBar: false
Cada una de estas directivas es una directiva del sistema X Window que describe como se visualizará el cliente. Cada línea consiste de un nombre de cliente seguido por un asterisco y del parámetro X.
A través de un archivo .Xresources cuidadosamente ensamblado, el usuario puede manipular y definir el aspecto que presentará cada aplicación al iniciarse.
Iniciando X
Hay dos métodos principales para iniciar una sesión X. Uno es conectando en un entorno de texto que, después, arranque el servidor X. El otro es utilizando el sistema de login gráfico de XDM. En esta sección se describirá como hacerlo desde una shell de texto.
Para tener acceso al servidor X y a los clientes locales relacionados, /usr/X11R6/bin ha de encontrarse en la variable PATH, si no estuviese habría que añadirlo en el .profile.
La forma más fácil de iniciar el sistema X Window es a través del comando startx. startx a su vez, llama a los programas necesarios para inicializar el entorno e inicializar el servidor X. Una vez arrancado el servidor X, se ejecuta el archivo .xinitrc situado en el directorio home del usuario. Si no existiese se ejecutaría por defecto el archivo /usr/X11R6/lib/X11/xinit/xinitrc.
Por ejemplo, el archivo xinitrc podría contener lo siguiente:
#!/bin/sh xterm -fn 7x13bold -geometry 80x32+10+50 & xterm -fn 9x15bold -geometry 80x34+30-10 & oclock -geometry 70x70-7+7 & xsetroot -solid midnightblue & exec twm
Este script arranca dos clientes xterm y un oclock, y selecciona el color de fondo de la ventana de root como midnight blue. Después arranca twm, el manejador de ventanas.
Hay que tener en cuenta que twm se ejecuta con el comando shell exec, lo que provoca que el proceso xinit sea reemplazado por twm. Una vez finalice el proceso twm, el servidor X se cerrará. El comando twm es un gestor de ventanas, hay muchos gestores disponibles como twm, kwm, y fvwm95, por nombrar solo unos pocos.
El último comando en .xinitrc debe ser arrancado con exec y no debe ser enviado al background. Si no se utilizase exec o se enviase el comando al background, el servidor X finalizaría justo después de completar la ejecución de los clientes del archivo xinitrc.
Administrador de acceso
Configuración del proceso de inicio
Después de ejecutarse LILO, el kernel ejecuta su primer proceso: init. Es importante resaltar que al ser el primer proceso, Init siempre tendrá el pid=1. Todos los demás procesos iniciados después de Init, son procesos hijos suyos. Eso puede verse reflejado en el siguiente fragmento:
$ ps -eaf UID PID PPID C STIME TTY TIME CMD root 1 0 0 Feb24 ? 00:00:00 init [5] root 2 1 0 Feb24 ? 00:00:00 [ksoftirqd/0] root 3 1 0 Feb24 ? 00:00:00 [events/0] root 4 3 0 Feb24 ? 00:00:00 [khelper] root 18 3 0 Feb24 ? 00:00:00 [kblockd/0]
Cuando se ejecuta Init, este obtiene su configuración del archivo /etc/inittab. Cada una de las entradas en el archivo /etc/inittab tiene la siguiente sintaxis:
id:runlevels:acción:proceso
En cualquiera de las líneas en las que aparezca el símbolo #, se ignorará todo su contenido a la derecha de este. La siguiente tabla describe los campos:
| Campo | Descripción |
|---|---|
| id | Una cadena única de uno a cuatro caracteres que identifica una entrada en el archivo inittab |
| runlevels | La lista de runlevels, o niveles de ejecución para los que la acción de esta entrada va a llevarse a cabo |
| Acción | Especifica la acción que se llevará a cabo |
| Proceso | El proceso que deberá ejecutarse |
| Acción | Descripción |
|---|---|
| Respawn | El proceso se regenerará en cuanto sea terminado. Lo podréis ver con el proceso de login getty, que necesita ser regenerado siempre |
| Wait | El proceso se iniciará una sola vez e Init esperará a que termine antes de continuar |
| Once | El proceso se iniciará una sola vez, cuando corresponda, en su runlevel. |
| Boot | El proceso se iniciará durante el arranque y se ignorará cualquier entrada de runlevel que pudiera tener |
| BootWait | El proceso se iniciará durante el arranque e Init esperará a que termine antes de continuar |
| InitDefault | Especifica el runlevel que se ejecutará por defecto durante el arranque |
| SysInit | Esta entrada se ejecutará durante el arranque, antes que cualquier otra entrada boot o bootwait. Init ignorará el campo runlevel para este tipo de entradas |
| PowerWait | Esta entrada se procesa cuando falla la toma de energía del sistema. Por ejemplo cuando lo indica un SAI. Init esperará a que termine antes de continuar |
| PowerFail | Esta entrada se procesa cuando falla la toma de energía del sistema, con la diferencia que Init no esperará a que termine para continuar |
| PowerOkWait | Esta entrada se ejecuta cuando la toma de energía vuelve a estar disponible e Init esperará a que termine antes de continuar |
| PowerFailNow | Esta entrada se ejecuta cuando el SAI indica al sistema que sus baterías están a punto de agotarse |
| Ctrl+Alt+Del | Esta entrada se procesa cuando un usuario pulsa la combinación de teclas Ctrl-Alt-Supr |
| KdRequest | Ejecuta el proceso indicado cuando se pulsa la combinación especial de teclas definida |
Veamos un ejemplo de un archivo /etc/inittab:
id:3:initdefault
Initdefault establece el runlevel por defecto que el sistema usará para arrancar, en este caso el runlevel 3.
# System initialization si::sysinit:/etc/rc.d/rc.sysinit
Esta linea ejecuta el script /etc/rc.d/rc.sysinit durante la inicialización del sistema. Este script va a ejecutarse antes que ningún otro, e init esperará a que acabe antes de proseguir.
l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6
Estas líneas configuran los scripts a ejecutar bajo cada runlevel. Si por ejemplo el sistema cambia a runlevel 5, se ejecutará “/etc/rc.d/rc 5�?. En este caso el tercer campo a “wait�? especifica que init también esperará a que finalice la ejecución antes de proseguir.
# Things to run in every runlevel ud::once:/sbin/update
Esta línea establece que /sbin/update deberá ser ejecutado en cualquier runlevel.
# Trap CTRL-Alt-Del ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Esta otra línea establece que cuando se pulse la combinación Ctrl-Alt-Del, deberá ejecutarse el comando “/sbin/shutdown -t3 -t now�?.
pf::powerfail:/sbin/shutdown -f -h +2 “Power failure: System shuting down�?
Esta linea establece que si ocurre un fallo en la toma de energía, debe apagarse el sistema.
pr:12345:powerokwait:/sbin/shutdown -c “Power restored: Shutdown cancelled�?
Esta línea aborta el cierre del sistema si este detecta que la energía ha sido restablecida.
1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6
El proceso “/sbin/mingetty�? se ejecutará para los runlevels 2,3,4 y 5. mingetty establece el login de las consolas. “Respawn�? indica que se deberá regenerar en caso de que finalice su ejecución.
x:5:respawn:/etc/X11/prefdm -nodaemon
Esta última línea inicia el sistema gráfico para el runlevel 5.
Arranques Gráficos
Dentro de los diversos tipos de arranques en modo gráfico, xdm (que viene de serie con Xfree86), es el más sencillo. xdm presenta una GUI sencilla para registrar el login en el sistema, cuando nos identificamos correctamente, aparecemos directamente en nuestra sesión X Window. Si salimos de la sesión, el sistema nos devolverá a xdm.
Activando y Desactivando XDM
Cuando está activado, xdm se inicia durante el arranque a través de un runlevel. En Debian por ejemplo, se activa usando un enlace a un script llamado S99xdm, mientras que en Red Hat, el sistema cambia de runlevel 3 al 5.
Configurando XDM
Xdm puede ser difícil y complicado de configurar, puesto que tiene varios archivos que deben ser mantenidos. Las secciones siguientes cubren la configuración de los archivos más importantes para configurar xdm.
xdm-config Este es el archivo de configuración principal de xdm. Este archivo establece la operativa básica de xdm, que para la mayoría de instalaciones no deberá ser cambiado nunca, pero si es necesaria la configuración del sistema para permitir logins remotos, deberá ser necesario realizar algún ajuste. No entraremos en mucho detalle, pero por ejemplo, si deseáramos permitir logins remotos a través de xdm, deberíamos cambiar la siguiente línea:
DisplayManager.requestPort: 0
Y comentarla para permitir a xdm escuchar consultas:
!DisplayManager.requestPort: 0
Xsession Xdm usa el script Xsession para varias cosas:
- Recoger los errores durante la inicialización de las sesión y redirigirlo al archivo ${HOME}/.xsession-errors.
- Cargar variables.
- Cargar los mapas de teclado correspondientes.
- Y averiguar que escritorio debe proporcionar a cada usuario para su sesión (KDE, Gnome ...)
Xresources En Xresources se definen los recursos que permiten personalizar la pantalla de login para xdm. Se usa el formato estándar Xresource, discutido más adelante, para cambiar colores, tipos de fuente y demás.
KDM y GDM
Kdm no es más que la versión del KDE del xdm, y el GDM la versión de Gnome. Con un aspecto mucho más mejorado y con más opciones. Para escoger que gestor de arranque utilizar en el arranque: Red Hat: hay que editar el archivo /etc/inittab, buscar la cadena xdm y reemplazarla con kdm o gdm. Debian: Editar el archivo /etc/X11/default-display-manager y poner el gestor deseado.
Entorno de ventanas
Bibliografía
- Unix Reviews
- Página LPI
- Apuntes IBM
- Manuales GPL
- Página de documentación libre de la UOC
- Documentación de capacitación de la empresa XTech



