Monthly Archives: December 2010

Preparando LPIC-1 106.2 Configurar un administrador de pantalla

En este topico vamos a ver ciertos comandos y archivos de configuracion de la grafica.

Comenzaremos con ver dos comandos para obtener info de nuestra X:

*xdpyinfo
*xwininfo

Xdpyinfo
A veces es útil saber acerca de las capacidades de la pantalla, porque este es manejado por el server X. La herramienta para este trabajo es xdpyinfo. Cuando escribe xdpyinfo, el resultado es lanzado en la salida estandard dandonos información de las unidades organizativas de la pantalla actual, como el número de versión X, la resolución
y profundidad de color de todas las pantallas actuales, y así sucesivamente. Mucha de esta información es muy de carácter técnico, por lo que no se puede entender todo. Eso está bien. Recomiendo ejecutar este programa y examinar la salida para ver qué puede aprender de ella. Si más adelante se desea para obtener información similar en la pantalla de otro ordenador, usted sabrá cómo obtenerlo.
Para obtener información aún más técnica, puede utilizar la opción -ext all con xpdyinfo.
La extensión es el nombre de una extensión X, que es un módulo de software que proporciona capacidades extendidas a X. (El comando xpdyinfo básico, sin opciones, muestra todos las extensiones disponibles.)

Ejemplos:
xdpyinfo
xdpyinfo con ext

Xwininfo

Puede obtener información técnica detallada acerca de una ventana específica con la xwininfo . En uso básico, el xwininfo , le pide que mueva el cursor del ratón sobre una ventana, y haga clic.
El resultado es una lista de datos variados sobre la ventana que ha hecho clic, tales como su tamaño, ubicación, y número de identificación. Alternativamente, puede utilizar -id id o -name name para especificar el id de ventana o por el número de identificación o nombre, o con -root se puede utilizar para especificar la raíz ventana, es decir,
toda la pantalla.

Ejemplos:
Xwininfo seleccionando una xterm
Xwininfo con -root

XDMCP

X es una red habilitada para Interfaz gráfica de usuario. Este hecho tiene muchas consecuencias importantes, y uno de ellos se refiere a la interfaz gráfica de usuario de sistema de acceso para Linux . Este sistema emplea un protocolo de inicio de sesión de red, el X Display Manager Control Protocol (XDMCP). Para controlar el acceso remoto, un servidor XDMCP se ejecuta en un ordenador y escucha las conexiones desde los servidores de equipos remotos . Para hacer frente a los inicios de sesión local, un XDMCP servidor se ejecuta en un equipo y empieza como un servidor del equipo local X. El servidor XDMCP a continuación gestiona el servidor X local de pantalla, es decir, pone un inicio de sesión clasico donde nos pide usuario y contraseña.

Introduciendonos:

Tres servidores de XDMCP son comunes en Linux: el gestor de pantalla X (XDM), el
KDE Display Manager (KDM), y el de GNOME Display Manager (GDM). Un poco más de
opciones de servidores XDMCP también están disponibles, pero estos tres son los más importantes. Como se puede adivinar por su nombre, KDM y GDM están asociados con el KDE y GNOME, respectivamente, pero no limita su elección de entorno de escritorio. La mayoría de las distribuciones de Linux puede funcionar tanto con GDM o KDM como el servidor por defecto XDMCP, pero se puede cambiar la que utiliza el sistema si no te gusta el valor por defecto.

Corriendo un servidor XDMCP:
Muchos metodos existen para poder arrancar un servidor XDMCP. Los dos mas conocidos son lazando este servicio tras el /etc/inittab o tras un demonio en con SysV script.
Independientemente de estos metodos muchas distrubuciones configuran este arranque de XDMCP cuando arranca en determino runlevel (5 o 3, dependiendo de la distribucion).
Como se vio anteriormente en el inittab tenemos algo como esto:
id:5:initdefault:
Pero en algunas distribuciones este se lanza atraves de script (gdm,xdm,kdm).
Tambien podemos configurar un poco esto con ciertos archivos:

Selección de archivo de configuración: algunas distribuciones ocultan la opción de servidor XDMCP en un archivo de configuración, a menudo en el directorio /etc/sysconfig . En Fedora, el archivo /etc/sysconfig/desktop establece la variable DISPLAYMANAGER a XDM, KDM o GDM. En SUSE Linux, /etc/sysconfig/displaymanager establece la variable DISPLAYMANAGER de una manera similar, pero usando los nombres de pantalla en minuscula.

Selección a través de script SysV: En distribuciones Debian y derivados, como Ubuntu, el displaymanager se establece a través de la elección del script SysV de inicio con una secuencia de comandos para usar gdm con gdm, kdm con KDM, y así sucesivamente. De forma predeterminada, sólo un servidor XDMCP está instalado, así que si quieres cambiar el servidor XDMCP, es posible que necesite instalar
el servidor deseado.

Configurando un Display Manager:
El gestor de ventanas es la herramienta para administrar las sesiones de X en las pantallas tanto físicas como a nivel local como a través de la red. Parte de su trabajo es manejar la autenticación de usuarios a través de una pantalla gráfica de login, que sustituye a la entrada familiar en modo texto.Hay tres gestores de visualización principal implementados con Linux: xdm, kdm y gdm.

Configurando XDM:

El gestor de pantalla X (XDM) es un programa que permite a una sesión gráfica
empezar en un servidor de X.
xdm se distribuye como parte de X. Org y está configurado por una serie de archivos que se encuentran en / etc/X11/xdm. Estos archivos incluyen:

Xaccess
Este archivo controla las solicitudes entrantes de sistemas remotos.
Xresources
Mantiene la configuración en formación de algunos recursos xdm, incluyendo la pantalla de login gráfica. Este archivo puede ser editado para modificar la apariencia de la pantalla de inicio xdm.
Xservers
Esto asocia los nombres X para mostrar (: 0, 1, …) ya sea con el servidor X local o una pantalla externa, como un terminal de X.
Xsession
Este archivo contiene unos script xdm que se inicia después de un inicio de sesión con éxito. Por lo general, busca. Xsession en el directorio home del usuario y ejecuta los comandos que se encuentran allí. Si dicho archivo no existe, Xsession arranca los valores por defectos de nuestro windows manager y sus aplicaciones.
Xsetup_0
Este archivo es un script iniciado antes de la pantalla gráfica de login. A menudo incluye
comandos para configurar los colores, gráficos de pantalla, o ejecutar otros programas. Este script es ejecutado como root.
xdm-config
Este asocia el archivo de configuración de recursos de xdm con los otros archivos en esta lista. Por lo general, no es necesario hacer cambios en este archivo a menos que un experto en administraciónr planea personalizar la configuración de xdm.

Si quisieramos instalar xdm tendriamos que buscar este paquete:
xorg-x11-xdm.i386 : X.Org X11 xdm – X Display Manager

Los archivos de xdm:

[root@localhost ~]# ls -la /etc/X11/xdm/
total 128
drwxr-xr-x 3 root root  4096 Nov 26 20:55 .
drwxr-xr-x 9 root root  4096 Nov 26 19:05 ..
drwx------ 3 root root  4096 Nov 26 19:08 authdir
-rwxr-xr-x 1 root root   510 Jan 26  2010 GiveConsole
-rwxr-xr-x 1 root root   244 Jan 26  2010 TakeConsole
-rw-r--r-- 1 root root  3608 Nov 26 19:41 Xaccess
-rw-r--r-- 1 root root  1422 Nov 26 19:36 xdm-config
-rwxr-xr-x 1 root root   191 Jan 26  2010 Xreset
-rw-r--r-- 1 root root  2642 Nov 26 20:55 Xresources
-rw-r--r-- 1 root root 12288 Nov 26 20:43 .Xresources.swp
-rw-r--r-- 1 root root   496 Nov 26 19:40 Xservers
-rwxr-xr-x 1 root root  1073 Jan 26  2010 Xsession
-rwxr-xr-x 1 root root  1017 Nov 26 20:39 Xsetup_0
-rwxr-xr-x 1 root root   189 Jan 26  2010 Xstartup
-rwxr-xr-x 1 root root   303 Jan 26  2010 Xwilling
[root@localhost ~]# 

XDM es el mas simple de todos los XDMCP. Este acepta usuarios y password pero no habilita a los usuarios a hacer otro tipo de accion, como elegir tipo de ambiente de escritorio queremos correr.(esto se hace atraves de archivos de configuracion de usuarios).
Uno de los archivos de configuracion el /etc/X11/xdm/xdm-config que ya viene por defecto para que funcione de manera local, se puede habilitar para que puede recibir conexiones remotas y para eso tendremos que mirar esta linea:

DisplayManager.requestPort: 0

Esta linea permite que nadie se puede conectar al puerto convencional que escucha xdm.
Para activar este como un XDM que permita conexiones remotas tendriamos que ponerlo en 177, el puerto tradicional de xdmcp y luego restartear xdm.

El archivo /etc/X11/xdm/Xaccess es otro importante punto a tocar.
Si XDM esta configurado para permitir accesos remotos, este otro archivo es el que me va a indicar quien es capaz de acceder a nuestro servidor XDMCP.
El * indica que todos puende acceder.
* CHOOSER BROADCAST
y luego podriamos poner
*.educacionit.com
director.itrestauracion.com.ar
*.redhat.com

Tambien podriamos cambiar muchas mas cosas en /etc/X11/xdm/Xresources , en donde van a cambiar aquellos recursos que estan basados en programas X-based. Por ejemplos podriamos cambiar el texto de logueo tocando algunos de estos ejemplos:
Prestar atencion que los comentarios empiezan con !
! Xresources file
xlogin*borderWidth: 10
xlogin*greeting: Welcome to Linux on CLIENTHOST
xlogin*namePrompt: Login:\040
xlogin*fail: Login incorrect – try again!
xlogin*failColor: red
xlogin*Foreground: Yellow
xlogin*Background: MidnightBlue

Tambien podriamos configurar nuestro /etc/X11/xdm/Xservers para poder incluir lineas de comando que encontramos en /etc/X11/xorg.conf. Por ejemplo si quisieramos cambiar la profundidad de color, lo harias como -bpp (bit por pixel) para nuestra configuracion local.
# Xservers file
:0 local /usr/X11R6/bin/X -bpp 24

Para incluir programas adicionales o seteos en la pantalla de login podriamos ponerlo en /etc/X11/xmd/Xsetup_0. En el siguiente ejempño cambiariamos el color de fondo del X Display a un color color solido y agregariamos un reloj.

# Xsetup
/usr/bin/xsetroot -solid “#356390”
/usr/bin/xclock -digital -update 1 -geometry -5-5 &

Para lograr que nuesto XDM inicie automaticamente en un sistema redhat.
Tendriamos que tocar el archivo:
/etc/inittab y cambiar lo siguiente:
id:3:initdefault:
a
id:5:initdefault:

Y podriamos chequear esta otra linea.
x:5:respawn:/etc/X11/prefdm -nodaemon
como ven no hace referencia a prefdm pero si analizamos ese script.

[root@localhost ~]# cat /etc/X11/prefdm
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin

# shut down any graphical boot that might exist
if [ -x /usr/bin/rhgb-client ]; then
    /usr/bin/rhgb-client --quit
fi

# We need to source this so that the login screens get translated
[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n

# Run preferred X display manager
preferred=
if [ -f /etc/sysconfig/desktop ]; then
	. /etc/sysconfig/desktop
	if [ "$DISPLAYMANAGER" = GNOME ]; then
		preferred=/usr/sbin/gdm
	elif [ "$DISPLAYMANAGER" = KDE ]; then
		preferred=/usr/bin/kdm
	elif [ "$DISPLAYMANAGER" = XDM ]; then
	        preferred=/usr/bin/xdm
        elif [ -n "$DISPLAYMANAGER" ]; then
		preferred=$DISPLAYMANAGER
	fi
fi

shopt -s execfail

[ -n "$preferred" ] && exec $preferred "$@" >/dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 

Como ven en el script primero busca en el archivo que se define en /etc/sysconfig/desktop y si ahi no le encuentra prueba arrancar los clasicos gdm,kdm y por ultimo xdm.

Iniciando Sesion:

Para eso tendremos que crear este archivo en nuestro home directory.

[root@localhost ~]# cat .xsession
exec xterm &
exec xclock &
exec xeyes &
startkde
[root@localhost ~]#

Con este archivo lo que hacemos es una vez que inicie xdm y nos de login vamos a ingresar nuestro usuario y clave para que luego lea este archivo y arranque nuestra sesion

Con esto ya vimos un resumen de XDM pero ahora la mala noticia es que ya no se usa mas por default xdm por diversos temas de seguridad y porque kdm y gdm son mas chulos jeje.

Configurando GDM:
Para instalarlo en una version red hat:
yum groupinstall "GNOME Desktop Environment"

Archivos de configuracion:
[root@localhost gdm]# ls -l
total 80
-rw-r--r-- 1 root root 2633 Dec 26 23:47 custom.conf
drwxr-xr-x 2 root root 4096 Nov 25 23:58 Init
-rw-r--r-- 1 root root 4048 Sep 5 2009 locale.alias
drwxr-xr-x 2 root root 4096 Nov 25 23:58 modules
drwxr-xr-x 2 root root 4096 Nov 25 23:58 PostLogin
drwxr-xr-x 2 root root 4096 Nov 25 23:58 PostSession
drwxr-xr-x 2 root root 4096 Nov 25 23:58 PreSession
-rw-r--r-- 1 root root 71 Sep 5 2009 securitytokens.conf
-rwxr-xr-x 1 root root 5536 Sep 5 2009 XKeepsCrashing
lrwxrwxrwx 1 root root 21 Nov 25 23:58 Xsession -> ../X11/xinit/Xsession
[root@localhost gdm]#

El mas conocido y que podemos tocar mas cosas es el gdm.conf

Un ejemplo de su contenido con configuracion extra:

#
#
#
#
#
#
#
#
For full reference documentation see the GNOME help browser under
GNOME|System category. You can also find the docs in HTML form on
http://www.gnome.org/projects/gdm/
NOTE: Some values are commented out, but show their default values.
that begin with "#" are considered comments.
Lines
Have fun!
[daemon]
# Automatic login, if true the first local screen will automatically logged
# in as user as set with AutomaticLogin key.
AutomaticLoginEnable=false
AutomaticLogin=
# Timed login, useful for kiosks.
# amount of time.
TimedLoginEnable=false
TimedLogin=
TimedLoginDelay=30
Log in a certain user after a certain
# The GDM configuration program that is run from the login screen, you
# should probably leave this alone.
#Configurator=/usr/sbin/gdmsetup --disable-sound --disable-crash-dialog
# The chooser program. Must output the chosen host on stdout, probably you
# should leave this alone.
#Chooser=/usr/lib/gdm/gdmchooser
Change gdmlogin to gdmgreeter
# The greeter for xdmcp logins, usually you want a less graphically
# intensive greeter here so it's better to leave this with gdmlogin
#RemoteGreeter=/usr/lib/gdm/gdmlogin

En las versiones Ubuntu tenemos toda esta info en /etc/gdm/gdm.schemas

Para poder activar conexiones xdmp tan solo agregar en el modulo
[xdmcp]
Enable=1

Luego en el cliente cambiar /etc/hosts
comentar
#127.0.0.1
y agregar
ipremota localhost

Si se pueden conectar sin retocar esas lineas mejor, sino comentenlas y prueben.

Instalando KDM

yum install kdm

[root@localhost gdm]# ls -l /etc/kde
total 16
drwxr-xr-x 2 root root 4096 Nov 26 19:57 env
drwxr-xr-x 3 root root 4096 Nov 26 19:56 xdg
[root@localhost gdm]#

Cambiando entre desktops
En sistemas red hat:
[root@localhost menus]# yum install switchdesk-gui.noarch switchdesk.noarch

[root@localhost ~]# cat /etc/sysconfig/desktop
DESKTOP= "GNOME"
DISPLAYMANAGER= "gdm"
[root@localhost ~]# 

Bueno ahora supongamos que queremos ejecutar remotamente sesiones o aplicaciones de nuestro servidor en otra maquina.

Para hacer poder aprovechar los recursos de nuestra maquina servidor y usar las demas como cliente de ella vamos a hacer lo siguiente:

En una maquina cliente ejecutamos:
1)
xinit, si ya estamos en una grafica tan solo abrimos una terminal

2)Luego hacemos xhost +ipremota

3)Luego nos logueamos al equipo remoto con ssh.

4) Luego exportamos la variable DISPLAY, export DISPLAY=iplocal:0.0

5)Ahora podemos ejecutar una aplicacion.
Como ven estamos en la maquina remota ejecutando la aplicacion pero desde nuestra estacion fisica de trabajo.

6)Ahora podriamos probar levantar toda una grafica.

7) Por ultimo podemos hacer con ssh un forwardeo...

8) La yapa algo mas descabellado e inutil, levantar la grafica remota dentro de mi grafica..

Bueno esto es todo...

Fuentes:
[1]http://tldp.org/HOWTO/XDMCP-HOWTO/procedure.html
[2]http://codeghar.wordpress.com/2009/06/11/remote-login-with-gdm-and-vnc-on-fedora-11/
[3]http://www.linuxparatodos.net/portal/staticpages/index.php?page=11-como-x-remoto
[4]http://www.estrellateyarde.org/so/x-remoto-display-manager
[5]http://es.w3support.net/index.php?db=so&id=754707
[6]http://tldp.org/HOWTO/XDM-Xterm/config.html
[7]http://sicutdeux.wordpress.com/2009/08/12/acceso-remoto-bajo-gnulinux-xdmcp/
[8]http://www.mail-archive.com/debian-user-spanish@lists.debian.org/msg33394.html
[9]http://www.itrestauracion.com.ar/?p=1149
[10]http://tldp.org/HOWTO/XWindow-User-HOWTO/index.html
[11]http://www.faqs.org/docs/Linux-HOWTO/XDMCP-HOWTO.html
[12]http://linux.derkeiler.com/Mailing-Lists/RedHat/2005-11/0384.html
[13]http://www.faqs.org/docs/lnag/lnag_xwindows.html#GUI_login

Preparando LPIC-1 106.1 Instalar y configurar X11

Vamos a ver brevemente un poco de estos temas:

Antes empezaremos con una breve explicacion de que es una X:

Historia:
[4-5]
X Window System (en español sistema de ventanas X) es un software que fue desarrollado a mediados de los años 1980 en el MIT para dotar de una interfaz gráfica a los sistemas Unix. Este protocolo permite la interacción gráfica en red entre un usuario y una o más computadoras haciendo transparente la red para éste. Generalmente se refiere a la versión 11 de este protocolo, X11, el que está en uso actualmente. X es el encargado de mostrar la información gráfica de forma totalmente independiente del sistema operativo.

* X es un modelo de cliente/servidor.
* X fue diseñado primariamente para implementar clientes ligeros, donde mucha gente usaba simultáneamente la capacidad de procesamiento de un mismo computador trabajando en tiempo compartido. Cada persona usaba un terminal en red que tenía capacidades limitadas para dibujar la pantalla y aceptar la entrada del usuario. Debido a la ubicuidad del soporte para el software X en Unix, es usado en los computadores personales incluso cuando no hay necesidad del tiempo compartido.
* Mientras que los servidores de X manejan hardware estos no definen la forma en que se va a ver la pantalla y no ofrecen herramientas para manipular los clientes.
* El servidor X es el responsable de realizar el rendering the las formas y colares en la pantalla.

Ejemplos de lo que incluye:

Programas de X.org que controlan nuestra placa de video,
Programas de X.org que funcionan en redes diferentes mostrandonos la salida de los programas en nuestro equipo.
Otros sistemas de red Unix corren sus propios X server software (cuando corremos nuestra maquina local)
Clientes X son programas de usuarios como : firefox,opera,Evolution,OpenOffice,xterm

Cliente/Servidor
El sistema de ventanas X distribuye el procesamiento de aplicaciones especificando enlaces cliente-servidor. El servidor provee servicios para acceder a la pantalla, teclado y ratón, mientras que los clientes son las aplicaciones que utilizan estos recursos para interacción con el usuario. De este modo mientras el servidor se ejecuta de manera local, las aplicaciones pueden ejecutarse remotamente desde otras máquinas, proporcionando así el concepto de transparencia de red.
Debido a este esquema cliente-servidor, se puede decir que X se comporta como un terminal gráfico virtual.
El hecho que exista un estándar definido para X permite que se desarrollen servidores X para distintos sistemas operativos y plataformas, lo que hace que el código sea muy portable. Por ejemplo. permite tener clientes X ejecutándose en un potente servidor UNIX mientras los resultados son visualizados en una PC de escritorio con cualquier otro sistema operativo funcionando.
La comunicación entre el cliente X y el servidor se realiza por medio de un protocolo conocido como Xprotocol, que consiste en una serie de bytes interpretados como comandos básicos para generar ventanas, posicionarlas, o controlar eventos. Los clientes X acceden al Xprotocol mediante el uso de una biblioteca llamada Xlib, que evita al programador de clientes X tener que lidiar con el código binario del Xprotocol. Sin embargo, los aspectos de decoración de ventana y manejos de ventanas no están definidos en esta biblioteca.

Un programa de cliente especial llamado window manager es el responsable de las funciones mencionadas anteriormente que nos provee ademas de ventanas, cambio de tamaño, botones de cerrar y maximizar y muchas mas.
Este controla los demas clientes que corren bajo un Servidor X. Multiples window manager podemos encontrar para nuestro X Window System pudiendo asi poder elegir un estilo de interface que mas necesitemos para cada uso.
X no es un gestor de ventanas, necesita de uno para controlar el manejo de ventanas. Esto trae la ventaja de que permite al usuario instalar uno o más administradores de ventanas de su preferencia. También trae la ventaja de que hace de X estrictamente un sistema gráfico, de tal modo que un cliente X podría estar enviando un gráfico a una pantalla, a una impresora o a cualquier otro hardware sin darse cuenta, flexibilizando la salida gráfica.

Por otro lado, la desventaja que trae el hecho de no tener un único entorno gráfico es que los programadores de clientes X que desean hacer uso de los recursos de los entornos gráficos (botones, barras de deslizamientos, etc) deben elegir un entorno gráfico específico para programar y contar que el usuario tenga por los menos las bibliotecas de dicho entorno gráfico instalado. Las bibliotecas de los entornos gráficos se conocen como “Toolkits”, el estándar X provee sólo de un conjunto de herramientas básicas llamadas Xintrisics que permiten a los programadores de los entornos gráficos armar sus Toolkits sobre éstas.

Un completo set de escritorio graficos se encuentran disponible y contiene entre sus paquetes un window manager y una gran cantidad de aplicaciones que trabajan en conjunto para poder crear un ambiente de trabajo completo. Un ejemplo son los mas conocidos KDE y GNOME, por supuesto que hay muchos mas y mucha variedad pero estos son los mas conocidos.

Interfaces de Usuario:
X es primariamente una definición de primitivas de protocolo y gráficas, y deliberadamente no contiene especificaciones de diseño de interfaz de usuario, como estilos de botón, menú, barra de título para las ventanas. En vez de eso, un software de aplicación (tal como los manejadores de ventana, Widget toolkits de GUI y ambientes de escritorio, o las interfaces gráficas de usuario específicas de una aplicación) definen y proporcionan tales detalles. Como resultado, no hay interfaz X típica y varios ambientes de escritorio han sido populares entre los usuarios.
Un manejador de ventana controla la colocación y la apariencia de las ventanas de aplicación. Esto puede resultar en interfaces semejantes a las de Microsoft Windows o Macintosh (los ejemplos incluyen Metacity en GNOME, KWin en KDE, Xfwm en Xfce, o Compiz) o tener controles radicalmente diferentes (tales como tiling window manager, como wmii o Ratpoison). Los manejadores de ventana abarcan en sofisticación y complejidad desde los más simples (ej., twm, el manejador de ventana básico suministrado con X, o evilwm, un manejador de ventana extremadamente liviano) hasta los ambientes de escritorio más completos tales como Enlightenment.
Muchos usuarios usan X con un ambiente de escritorio, que, independientemente del manejador de ventana, incluyen varias aplicaciones usando una interfaz de usuario consistente. GNOME, KDE y Xfce son los ambientes de escritorio más populares. El ambiente estándar de Unix es Common Desktop Environment (CDE). La iniciativa freedesktop.org se dirige a la interoperabilidad entre el escritorio y los componentes necesarios para un escritorio X competitivo.

Puesto que el X es responsable de la interacción entre el teclado y el ratón con el escritorio gráfico, ciertos atajos de teclado han llegado a estar asociados con X. Control-Alt-Backspace típicamente termina la sesión actualmente corriendo en X, mientras que el Control-Alt conjuntamente con una tecla de función cambia a la consola virtual asociada. Sin embargo, esto es un detalle dejado al diseño de una implementación de servidor X y no es universal; por ejemplo, las implementaciones de servidor X para Windows y Macintosh típicamente no proporcionan estos atajos de teclado.

Terminales X
Un terminal X es un cliente ligero que solamente corre un servidor X. Esta arquitectura llegó a ser popular para construir paquetes de terminales baratos para que muchos usuarios usaran simultáneamente el mismo gran servidor de computadora para ejecutar programas de aplicación como clientes de cada terminal X. Este uso está muy cerca con la intención original del proyecto MIT.

Los terminales X exploran la red (el dominio de difusión local) usando el protocolo de control del X Display Manager para generar una lista de anfitriones disponibles que son permitidos como clientes. Uno de los anfitriones de clientes debe correr un X display manager.

El hardware dedicado para terminales X ha llegado a ser menos común; un PC o un moderno cliente ligero con un servidor X proporciona típicamente la misma funcionalidad a igual o más bajo costo.

X Display Manager[5]
En el X Window System, un X Display Manager (XDM), gestor de pantalla X, o gestor de pantalla X, es una parte opcional del sistema X Window que permite comenzar una sesión sobre un servidor X desde la misma u otra computadora. Un gestor de pantalla presenta al usuario con una pantalla de autenticación (login) que solicita el nombre de usuario y su contraseña. Una sesión comienza cuando el usuario entra con éxito una combinación válida de nombre de usuario y contraseña.

Cuando el gestor de pantalla corre en la computadora del usuario, inicia el servidor X antes de presentar al usuario la pantalla de login (autentificación), opcionalmente repitiendo esto cuando el usuario cierra la sesión (logs out). En esta condición, el gestor de pantalla realiza en el X Window System la funcionalidad del init, getty y autentifica al usuario en el terminal en modo de caracteres. Cuando el gestor de pantalla corre en una computadora remota, actúa como un servidor de telnet, solicitando el nombre de usuario y la contraseña y comenzando una sesión remota.

Piense en XDM como proveedor de la misma funcionalidad que la utilidad getty(8). Esto quiere decir que se encarga de los ingresos del sistema en la pantalla a la que está conectado y arranca el gestor de sesiones para el usuario (normalmente un gestor de ventanas X). XDM entonces espera a que este programa termine, señalando que el usuario ha terminado y que se debería desconectar de la pantalla. En este punto XDM puede mostrar las pantallas de entrada al sistema y de selección de pantalla para que el siguiente usuario intente acceder al sistema.

Esto es útil para diferentes situaciones tales como “Terminales X” con escritorios mínimos y grandes servidores de red (LTSP, cliente liviano). Como X Window System es independiente del protocolo y de la red hay muchas posibles configuraciones para ejecutar clientes y servidores X en diferentes equipos conectados a una red. XDM da una interfaz gráfica para elegir a qué pantalla se quiere conectar y solicitar la información de autenticación, como el nombre de usuario y le contraseña.

También es útil para múltiples usuarios trabajando con un mismo computador (configuración multiseat), en donde cada usuario tiene su propio pantalla, teclado y ratón, y comparten los recursos del computador, como el CPU, la tarjeta madre, la memoria RAM, el disco duro, etc., abaratando significativamente los costos.

Seleccionando e instalando un X-Server:
X.Org es el standard X Window System de la mayoria de las distribuciones de Linux.
X.Org es mantenida por X.Org Fundation que es una comunidad sin fines de lucro donde se colabora con el desarrollo y documentacion
El codigo de X11 de X.Org esta basado en XFree86 que fue usado como X Windows en muchas distribuciones de Linux. Freedesktop.org es un proyecto colaborativo donde se desarrolla software para los sistemas X Windows.
El proyecto X.Org tiene soporte para una gran cantidad de hardware. Esto se debe a la cooperacion de muchos fabricantes que liberan el codigo de sus drivers y sus documentaciones.A traves del tiempo se vio que muchos fabricantes fueron interesandose en dejar cierta informacion a la comunidad X.Org para que puedan darle soporte a su hardware y es por eso que X.Org ya posee una inmesa compativilidad con el hardware de hoy en dia.

Configurando el entorno X Window System
Lo primero que tenemos que hacer es recopilar la información necesaria, para la correcta configuración del servidor gráfico Xorg

La información mínima necesaria es la siguiente:

* Especificaciones del monitor
* Chip y cantidad de memoria de la tarjeta gráfica (vídeo)
* Especificaciones del ratón
* Especificaciones del teclado

Ver la version de nuestro X:

Red Hat:

[rino@oc4037774485 ~]$ X -version

X.Org X Server 1.9.1
Release Date: 2010-10-22
X Protocol Version 11, Revision 0
Build Operating System: x86-02 2.6.32-72.el6.bz634452.x86_64
Current Operating System: Linux oc4037774485.ibm.com 2.6.35.9-64.fc14.x86_64 #1 SMP Fri Dec 3 12:19:41 UTC 2010 x86_64
Kernel command line: ro root=UUID=1f15bf0f-79bd-4dae-a644-f4ad768504ef rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=la-latin1 rhgb quiet selinux=0
Build Date: 09 November 2010  08:15:25PM
Build ID: xorg-x11-server 1.9.1-3.fc14
Current version of pixman: 0.18.4
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[rino@oc4037774485 ~]$


Chipset de Video:

Los driver de video X.Org son escrito para los chipset graficos no para las placas de video en donde estan installadas. Muchas placas de video de varios fabricantes tienen el mismo chipset de video haciendo a estas que tengan la misma funcionalidad.
Por eso hay que mirar si el chipset que tenemos es soportado por X.org para poder usar las opciones de graficos mas avanzadas. Ver la lista de chipset soportados en la wiki de X.Org
El chip de la tarjeta gráfica también llamada tarjeta de vídeo, define que controlador utilizaremos para que funcione correctamente.
La memoria de la tarjeta gráfica determina la resolución máxima y la profundidad de color máxima con la que el sistema puede trabajar.

Especificaciones del monitor
Usaremos las especificaciones del monitor para determinar la resolución y frecuencia de refresco a la que funcionara. Dichas especificaciones vienen en la documentación del monitor, o bien la obtenemos desde la web del fabricante.

Necesitamos tres rangos muy importantes:

* Frecuencia de refresco horizontal
* Frecuencia de refresco vertical
* Resolución máxima.

Con esta información sabemos como hemos de configurar nuestro monitor para no dañarlo o quemarlo.

Especificaciones del mouse

Las especificaciones del ratón son muy fáciles, basta con observar dicho ratón para saber:

* El tipo de conector: USB, PS2, Serial, etc…
* El numero de botones: 1, 2, 3, 4, etc…
* Si tiene rueda y cuantas tiene: 1, 2

Especificaciones del teclado

Las especificaciones del teclado al igual que las del ratón, con observar dicho teclado conocemos la información:

* El tipo de conector: USB o PS2
* Que mapa de caracteres que usa: QWERTY, AZERTY, etc..
* El numero de teclas: 101, 102, 104, 105 o microsoft

Instalando X.Org
Es raro que tengamos que instalar X.Org nosotros a mano porque este ya fue instalado generalmente cuando instalamos nuestro sistema si tenemos planeado usar la grafica (X).
Casi todas las distribuciones de linux contienen los paquetes de X.ORg en sus instaladores.

La forma de instalar el sistema de ventanas x window en su equipo sera de la siguiente manera:

Para sistemas operativos de la familia Red Hat teclee lo siguiente:

[BASH] # yum install xorg-x11

Para sistemas operativos de la familia Debian teclee lo siguiente:

[BASH] # apt-get install x-window-system

Configurando un Servidor X y su archivo de configuracion xorg.conf
El archivo de configuracion de X.Org difiere a lo largo de las distintas distribuciones de linux y de las versiones de X.Org. Este archivo es creado durante la instalacion y segun los dispositivos que fueron detectados ira armando la configuracion.
Generalmente no hace falta cambiar nada de este archivo porque es manejado por el sistema. El servidor X usa este archivo de configuracion cuando se inicia para setear la configuracion del teclado, mouse, fuentes (fonts) y resolucion del monitor.

Fichero xorg.conf

La configuración del servidor gráfico xorg se encuentra en el fichero xorg.conf, en la siguiente ruta:

/etc/X11

Y se encuentra dividido en las siguientes secciones:

Section “Files” Ruta o path de los archivos
Section “Modules” Carga módulos dinámicos
Section “InputDevice” Descripción de los dispositivos periféricos
Section “Device” Descripción de los dispositivos gráficos
Section “Monitor” Descripción del monitor
Section “Screen” Configuración de la pantalla
Section “ServerLayout” Esquema global

Cada sección comienza con la instrucción Section seguido del nombre de la “sección entre comillas” las opciones, driver, etc.. y terminada con EndSection.

Seccion “Files”

Esta sección define la ruta de archivos necesarios para levantar el servidor X.

  • Define la ruta de los tipos de letras en las entradas ” FontPath”
  • Especifica la ubicación de la base de dartos de colores RGB “RgbPath”

Ejemplo:

Section “Files”
         RgbPath     “/usr/lib/X11/rgb”
EndSection

Seccion “Modules”

La sección Module especifica que módulos cargará el servidor gráfico X, dichos módulos añaden funcionalidad adicional al servidor X.

Section “Module”
         Load     “dbe”
         Load     “extmod”
         Load     “type1”
         Load     “freetype”
         Load     “glx”
EndSection

Seccion “InputDevice”

Cada sección InputDevice configura un dispositivo de entrada para el servidor X. Los sistemas Xorg tienen mínimo dos secciones InputDevice:

  • Un Mouse
  • Un Teclado

Configuracion tipica de un mouse

Ejemplo:

Section “InputDevice”
         Identifier   “Mouse0”
         Driver       “mouse”
         Option       “Protocol” “Auto”
         Option       “Device”   “/dev/psaux”
         Option       “Emulate3Buttons” “no”
         Option       “ZaxisMapping” “4 5”
EndSection

Identifier: Especifica un nombre para esta sección

Driver: Especifica el controlador que debe cargar para el correcto funcionamiento del ratón. “mouse”: soporta cuatro tipos de mouse:

  • Serial
  • Bus
  • PS/2
  • USB

Option: Especifica las opciones necesarias pertinentes al dispositivo

Para un mouse, las opciones son las siguientes:

Protocol: Indica el protocolo define el tipo de mouse que tenemos

  • “ImPS/2”
  • “ExplorerPS/2”
  • “MouseMan”
  • “Microsoft”
  • “Mousesystems”
  • “IntelliMouse”
  • “ThinkingMouse”
  • “ThinkingMousePS/2”
  • “NetScrollPS/2”
  • “NetMousePS/2”
  • “GlidePoint”
  • “GlidePointPS/2”
  • “MouseManPlusPS/2”

NOTA:

  • Los mouse seriales antiguos de dos o tres botones estan normalmente soportados por el protocolo “Microsoft” o “MouseMan”
  • Los mouse seriales con rueda los soporta el protocolo “IntelliMouse”
  • Los mouse PS/2 los soporta el protocolo “ImPS/2”
  • El protocolo “auto” se usa siempre que este es capaz de detectar el mouse.

CorePointer: Indica que el ratón definido es el mouse principal

Device: Indica la ubicación del dispositivo físico (donde se encuentra conectado), las opciones son las siguientes:

  • /dev/input/mice (conectado al puerto USB)
  • /dev/psaux (conectado al puerto PS/2)
  • /dev/ttyS0 (conectado al puerto Serial 0)
  • /dev/ttyS1 (conectado al puerto Serial 1)

Emulate3Buttoms: Especifica si un mouse de dos botones se comporte como uno de tres botones, cuando se presionen ambos botones simultáneamente.

ZAxisMapping: Especifica que funcione la rueda que incorpora el mouse.

Configuracion tipica de un teclado

Ejemplo:

Section “InputDevice”
         Identifier   “Generic Keyboard”
         Driver       “kbd”
         Option       “CoreKeyboard”
         Option       “XkbRules”   “xorg”
         Option       “XkbModel” “pc105”
         Option       “XkbLayout” “es”
EndSection

Identifier: Especifica un nombre para esta sección.

Driver: Especifica el controlador que debe cargar para el correcto funcionamiento del teclado.

Option: Especifica las opciones necesarias pertinentes al dispositivo

Para un teclado las opciones son las siguientes:

CoreKeyboard: Especifica que es el teclado principal

XkbModel: Especifica el tipo de teclado. Los valores mas comunes son:

  • “pc101”
  • “pc102”
  • “pc104”
  • “pc105”
  • “microsoft”

XkbLayout: Especifica el lenguaje que usaremos, “es” (español), “us” (ingles)

Seccion “Device”

Esta sección es la que define y configura la tarjeta gráfica (vídeo)

Ejemplo:

Section “Device”
         Identifier   “Device0”
         Driver       “nvidia”
         VendorName   “NVIDIA Corporation”
         Option       “RenderAccel”  “true”
         Option       “AllowGLXWithCompisite”   “true”
         Option       “dpms”
EndSection

Identifier: Especifica un nombre para esta sección.

Driver: Especifica el controlador que debe cargar para el correcto funcionamiento del vídeo.

VendorName: Este parámetro es opcional, especifica el fabricante de la tarjeta de vídeo.

BusID: Este parámetro es opcional, especifica el bus en el que se encuentra conectada la tarjeta gráfica, Esta opción únicamente es necesaria para sistema con múltiples tarjetas gráficas.

Screen: Este parámetro es opcional, especifica que conector del monitor en la tarjeta gráfica configura la sección Device. Esta opción en muy útil solamente para tarjetas con múltiples conectores.

Si dos monitores o mas son conectados en diferentes conectores en la misma tarjeta gráfica, deben existir en xorg.conf secciones Device separadas y cada una de estas secciones debe tener un valor Screen diferente.

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

Option “nombre_opción”: Este parámetro es opcional. Reemplace “nombre_opción” con una de las opciones listadas para esta sección en la pagina man de xorg.conf

Una de las opciones mas habituales es “dpms” (Display Power Management Signalling), se usa para activar el estado de ahorro de energía del monitor.

Seccion “Monitor”

Esta sección es la que define y configura los parámetro del monitor

Ejemplo:

Section “Monitor”
         Identifier   “Acer X203W”
         Option       “DPMS”
         HorizSync    30-83
         VertRefresh  “55-75”
EndSection

Identifier: Especifica un nombre para esta sección. Puede existir varias secciones “Monitor” en el archivo xorg.conf, cada una con diferente identificación (Identifier), esto es causado porque disponemos de dos o mas monitores conectados al ordenador.

HorizSync: Especifica la frecuencia de barrido horizontal del monitor, expresado en kHz. Puede ser una frecuencia fija (30.5), multiples frecuencias fijas (30.5, 35.8), un rango (30-110), o varios rangos (15-25, 30-64)

VertRefresh: Especifica la frecuencia de barrido vertical del monitor, expresado en Hz, los valores son iguales a la opción HorizSync.

Seccion “Screen”

Esta sección es la que va a definir la pantalla, vinculando una tarjeta gráfica (Device) con la sección “Monitor” Ejemplo:

Section “Screen”
         Identifier     “Default Screen”
         Device         “nvidia geforce mx400”
         Monitor        “AcerX203W”
         DefaultDepth   24
         Options        “AddARGBGLXvVisuals”   “True”
         Subseccion “Display”
            Depth    1
            Modes    “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400”
         Subseccion “Display”
            Depth    4
            Modes    “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400”
         Subseccion “Display”
            Depth    8
            Modes    “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400”
         Subseccion “Display”
            Depth    15
            Modes    “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400”
         Subseccion “Display”
            Depth    16
            Modes    “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400”
         Subseccion “Display”
            Depth    24
            Modes    “1600x1050” ”1200x1024” ”1024x768” ”800x600” “640X400”
EndSection

Identifier: Especifica un nombre unico para esta sección

Device: Especifica el nombre de una sección “Device” existente en el fichero xorg.conf

Monitor: Especifica el nombre único de una sección “Monitor” existente en fichero xorg.conf

Observación: las entradas “Device y Monitor” tienen que tener el mismo valor que la entrada “Identifier” de las secciones “Device” y “Monitor”. De esta manera se entrelazan las configuraciones de las diferentes secciones.

DefaultDepth: Especifica la profundidad de color por defecto en bits.

SubSection “Display”: Especifica los modos disponibles de la pantalla para una profundidad de color en particular.

Observación: Una sección “Screen” puede tener múltiples subsecciones “Display”, pero debe existir al menos una para la profundidad de color especificada en la entrada “DefaultDepth”

Depth: Especifica la profundidad de color de la subsección, los valores posibles son: 1, 4, 8, 15, 16 y 24 bits

Modes: Especifica las resoluciones que podremos visualizar según nuestro monitor. Puede especificarse una sola resolución “1680×1050” (si sabemos que nuestro monitor la soporta), o un listado de estas: “1680×1050” “1280×1024” “1024×768” “800×600” “640×480”. Por defecto se usa la primera en la lista, siempre que este soportada por nuestro monitor, si no se usa la siguiente, y asi hasta la ultima resolución que tengamos listada.

Nota: Dependiendo de nuestro monitor y tarjeta grafica (si son de gama “media baja” o inferior), puede darse los siguientes casos:

* A mayor profundidad de color “24 bits” obtenemos menor resolución “800×600” * A menor profundidad de color “8 bits” obtenemos mayor resolución “1680×1050”

Option “nombre de opción”: Especifica parámetros extras para la sección. Reemplace “nombre de opción” con una opción valida listada para esta sección en la pagina man de xorg.conf

Seccion “ServerLayaout”

Esta sección es la que vincula los dispositivos de entrada y salida que controla el servidor xorg.

Como mínimo, esta sección debe especificar un dispositivo de salida (monitor) y al menos dos de entrada ( un teclado y un ratón)

En Particular esta sección junta todos los identificadores “Identifier” de cada sección.

Section “ServerLayout”
         Identifier     “Default Layout”
         Screen         “Default Screen”
         InputDevice    “Generic Layout”
         InputDevice    “Configured Mouse”
EndSection

Identifier: Especifica un nombre para esta sección.

Screen: Especifica el nombre de la sección “Screen” a ser usado por el servidor xorg. Pueden estar presente más de una opción “Screen”
Crear una nueva configuracion de xorg[6-7]

X Fonts

X.Org viene con una coleccion de fuentes para usos mas comunes incluyendo estas para los textos a mostrar en las ventanas de terminales y navegadores. Para muchos usuarios
las fuentes por defectos son las adecuadas pero para otros les esencial agregar mas fuentes al sistema.
Una gran variedad de fuentes hay disponibles y estan son libres y otras pagas.
Muchas de ellas son desarrolladas por personas que las distribuyen por internet y siempre hay que buscar que sean para X.Org.
X.Org hace que las fuentes esten disponibles para los programas clientes. Una ruta para una fuente basica es compilada para que este adentro de nuestro X-Server pero nosotros podemos indicar tambien otra ruta de fuentes para que pueda ser utilizada en la directiva de FontPath asi tendremos mas fuentes en nuestro xorg.conf.

La sintaxis es la siguiente:
FontPath “path”
Por Ejemplo:
Section “Files”
FontPath “/usr/share/X11/fonts/misc”
FontPath “/usr/share/X11/fonts/cyrillic”
FontPath “/usr/share/X11/fonts/100dpi/:unscaled”
FontPath “/usr/share/X11/fonts/75dpi/:unscaled”
FontPath “/usr/share/X11/fonts/Type1”
FontPath “/usr/share/X11/fonts/100dpi”
FontPath “/usr/share/X11/fonts/75dpi”
FontPath “/usr/share/fonts/X11/misc”
# path to defoma fonts
FontPath “/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType”
EndSection
Este grupo de FontPath crea una ruta de fuentes que consiste de ocho directorios todos debajo de /usr/share/X11/fonts. Cuando arranca nuestra X este va a incluir todas las fuentes que fueron definidas en xorg.conf durante nuestra sesion grafica.

Instalando Fuentes:
Añadir nuevas fuentes es sencillo.
En primer lugar, un directorio adecuado debe ser creado para las nuevas fuentes, como por ejemplo / usr/share/X11/fonts/local o /usr/local/ fonts. Si lo desea, para separar sus propias fuentes de los directorios por default de X. Org para protegerlos durante las actualizaciones. Despues que las fuentes son instaladas en el nuevo directorio, la utilidad mkfontdir se ejecuta para agregar al catálogo las nuevas fuentes en el nuevo directorio.
Las nuevas entradas se agregan al archivo xorg.conf para incluir la ruta de acceso de las nuevas fuentes.
Por ejemplo:

FontPath
“/usr/local/fonts”
En este punto, el servidor de X puede ser reiniciado para reconocer las nuevas fuentes, o las fuentes pueden ser agregadas de forma dinamica con le comando xset.
# xset fp+ /usr/local/fonts

El servidor de fuentes X
En una red con múltiples estaciones de trabajo, la gestión de las fuentes de forma manual para cada sistema puede llevar mucho tiempo. Para simplificar este problema, el administrador puede instalar todas las fuentes que desee en un solo sistema y ejecutar xfs, el servidor de fuentex x, en ese sistema. En un sistema local, xfs deja fuera las cargas de trabajo de la reproduccion de fuentes en el servidor X,lo que significa que el servidor X puede realizar otras tareas mientras que las fuentes están siendo renderizadas. Esto es
especialmente notable en los sistemas más lentos o sistemas sin una unidad de punto flotante (FPU).
Section “Files”
RgbPath
FontPath
EndSection
“/usr/share/X11/fonts/rgb”
“unix/:-1”
Si instala xfs de un paquete de su distribución, es probable que sea de forma automática
configurado para iniciarse en el momento del arranque y correr continuamente ,sirviendo a las fuentes locales y programas clients remotos.
Para iniciar xfs manualmente, simplemente escriba el comando xfs. Para mayor seguridad
, es posible que desee ejecutar xfs como usuario root pero no lo haga. xfs se configura con su archivo de configuración, /etc/X11/fs/config
Controlando Aplicaciones X con .Xresources.

El sistema de ventanas X también tiene muchas características integradas de personalización. Muchas aplicaciones X se programan con una variedad de recursos, que son de configuraciónes ajustes que se pueden manipular externamente. En lugar de tener una utilidad de configuración integrada en cada aplicación, las aplicaciones pueden ser escritas para examinar el contenido de un archivo en el directorio home del usuario. El archivo. Xresources contiene una línea para cada configuracion de recursos que figura en el siguiente Ejemplo:

program*resource: value
Esta linea debe ser traducida asi:

• El programa es el nombre de un programa configurable, como emacs o xterm.
• los recursos son una de las opciones configurables permitidas por el programa, tales como colores.
• El valor es la opcion que se va aplicar a los recursos.
Por Ejemplo, el sisguiente es un ejemplo de como configuramos los colores para un xterm con el archivo .Xresources.
xterm*background: Black
xterm*foreground: Wheat
xterm*cursorColor: Orchid
xterm*reverseVideo: false

Fuentes:
[1]http://www2.linuxparatodos.net/web/comunidad/base-de-conocimiento/-/wiki/Base%20de%20Conocimiento/Certificaci%C3%B3n%20LPI%20102#section-Certificaci_C3_B3n+LPI+102-InstalarYConfigurarXWindowSystem
[2]http://en.wikibooks.org/wiki/LPI_Linux_Certification/Install_%26_Configure_X11
[3]http://www.itrestauracion.com.ar/?p=1149
[4]http://es.wikipedia.org/wiki/X_Window_System
[5]http://es.wikipedia.org/wiki/X_Display_Manager
[6]http://fedoraproject.org/wiki/How_to_create_xorg.conf
[7]http://www.my-guides.net/en/content/view/161/26/2/13/
[8]http://www.rru.com/~meo/pubsntalks/xrj/xdm.html
[9]http://www.tldp.org/HOWTO/XDMCP-HOWTO/index.html
[10]http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-xdm.html

Preparando LPIC-1 108.1 Mantener el reloj del sistema

Vamos a intentar explicar de una forma amena como se maneja este sistema.

Una razon importante para tener un sistema de reloj que me permita sincronizar el tiempo entre todos nuestros equipos para poder tener bien controlado cuando sucesido cada evento cuando se generan los logs. Otro ejemplo podria ser cuando varios equipos usan un recurso compartido con NFS por ejemplo.
Para esto se usa —> Network Time Protocol (NTP) http://www.ntp.org.

Los servidores de NTP proporcionan servicios de sincronizacion al cliente que se conecte a ellos, y ellos mismos se sincronizan gracias a servidores superiores de tiempo.
Las capas en este modelo se llaman strata, con el nivel superior , stratum 0, consiste en un hardware de hora dedicado, como pueden ser relojes atomicos o receptores por satelite. Lo servidores conectados a estas fuentes de hora stratum 0 se llaman servidores stratum 1. Los servidores que se sincronizan por los servidores stratum 1 son lo servidores stratum 2, y asi con el resto. [2]

Los servidores NTP se pueden utilizar de dos formas. Una es ejecutando una utilidad cliente llamada ntpdate, que sincroniza el reloj del sistema una vez. La otra forma es ejecutar un servicio NTP que sincroniza automaticamente el reloj del sistema en cuanto su hora no sea la correcta. Hay una gran cantidad de sistemas que utilizan ambos metodos. Si el reloj del sistema y el reloj atomico difieren mucho, puede llevarle al sistema un tiempo el sincronizarse con un servidor de tiempo superior. Para solventar esto, se llama a la utilidad ntpdate y se sincroniza el reloj antes de iniciar el servicio NTP.

Ej:
[root@localhost etc]# ntpdate pool.ntp.org
2 Dec 07:47:09 ntpdate[5399]: step time server 200.11.116.1 offset 1.817247 sec
[root@localhost etc]#

Como ven aca teniamos defaso el reloj casi dos segundos.
Aca esta utilidad se conecto al servidor pool.ntp.org y ajusto nuestra hora.

Podriamos poner una entrar en el crontab para que haga esto cada dos horas.

0 * /2 * * * root /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1

Parametros del ntpdate:

-b Con esta opción, la hora del sistema se establece en lugar de ser poco a poco ajustado, no importa cuán lejos de la hora local es.
-d Modo debug donde vemos mucha info pero la hora no se ajusta
-p n el numero de muestra que va a capturar para setear la hora, (default 4)

-q con esta opcion hace una consulta a un servidor
[root@oc4037774485 sysconfig]# ntpdate -q ar.pool.ntp.org
server 200.3.168.192, stratum 2, offset -0.039172, delay 0.04465
server 200.11.116.1, stratum 2, offset -0.040442, delay 0.04062
server 200.59.8.234, stratum 3, offset -0.037901, delay 0.03978
12 Dec 23:02:40 ntpdate[6000]: adjust time server 200.11.116.1 offset -0.040442 sec
[root@oc4037774485 sysconfig]#

-s con esta opcion la salida es el archivo syslog y no la salida estandar.
-t n se setea el timeout de respuesta
-u se puede especificar que puerto udp va utilizar
-v verbose mode
-B con esta opcion se toma mas tiempo para sincronizar nuestro reloj.

No obstante, necesitara instalar y mantener una entrada en crontab en cada uno de sus hosts, y ademas, dependiendo de la calidad del hardware, el reloj del sistema puede desincronizarse en ese intervalo de dos horas. Puede asegurarse de que el reloj del sistema este sincronizado cada vez que piense que puede no estarlo, instalando y ejecutnado un servidor NTP en su host. Esto mantendra su host sincronizado y ademas le permitira utilizarlo para sincronizar otros hosts de su red.

Vamos a ver un ejemplo de archivo de configuracion:

/etc/ntp.conf ( escucha en el puerto 123 udp)
Tambien podemos ver como se inicia el demonio ntpd

en /etc/sysconfig o en /etc/default
[root@oc4037774485 sysconfig]# cat ntpd
# Command line options for ntpd
OPTIONS="-g"
[root@oc4037774485 sysconfig]#

Vamos a dividirlo en dos secciones:

La primera es la configuracion de la fuente real de la hora:

# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()’ing
# it to the file.
driftfile /var/lib/ntp/drift

statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org

Explicacion:

La directiva driftfile proporciona al servidor un sitio donde guardar la informacion sobre la idionsincracia del reloj del sistma loca. Cuando pase el tiempo, utilizara esta informacion para calcular la hora con mas precision entr elos intervalos de sincronizacion, dado que el demonio sabe como mantener la hora local correcta.
Los informes estadisticos corresponden a la directiva statistics y se activaran cada uno como dice el archivo.
loopstats –> informacion de actualizaciones por el servidor local
peerstats –> registra informacion sobre todos los peers (tanto servidores superiores como clientes que utilizan nuestra reloj para sincronizar)
clockstats –> escibre informacion estadistica del reloj local en el archivo del registro.
Directiva filegen le indica al demonio en que arhivo queremos que se escriba esta informacion estadistica y con que frecuencia se necesita cambiar el archivo (type day)
Por ultimo la opcion server le indica a ntpd que servidor superior debe utilizar para la sincronizacion.

Ahora en esta otra parte define como los host pueden acceder a nuestro servidor ntp.

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

La palabra clave restrict se utiliza para definir las clases de acceso. Tambien se definen los mismos niveles de acceso para los clientes ipv4 y ipv6 utilizando parametros 4 y -6

La palabra calve default es un comodin que se corresponde con todas las direcciones posibles. Kod se utiliza para ralentizar los clientes que excedan la velocidad limite definad, enviandoles un paquete de respuesta especial. No tenemos definidos esos limites, por lo que esto no se utiliza aca. notrap rechaza cualquier paquete de control que se envie, mientras que nomodify anula los intentos de modificar la hora del servidor. nopeer asegura que el servidor no empezara a utilizar un cliente conectado como servidor ntp, y por ultimo noquery evita que el servidor sea consultado por estadisitas peer y otras.
El segundo ejemplo de conjunto de directivas restric garantiza que las conexiones desde la maquina local puedan configurarse e interrogar al servidor NTP. No obstante, ninguna de estas evita que un cliente se sincronice con nuestro servidor NTP.[3]

Parametros que podemos usar el comando ntpd ntpd[1]

-c file ( le indicamos un archivo de configuracion)
-g Esta opción le permitirá ntpd iniciar en un sistema con un reloj que está mas afuera por que el umbral de pánico (1000 por defecto , segundos)
-n Normalmente ntpd se ejecuta como un demonio, pero con esta opcion deshabilita ese comportamiento
-q Se le comunica a ntpd que se finalize luego de sincronizar.
-N Arranca ntpd con el nivel de prioridad mas alto posible.

Opciones de parametros para ntpq:

-c comando
-i modo interactivo
-n no resuelve nombres
-p consulta de peers o usar -c peers

Ejemplo:
[root@oc4037774485 sysconfig]# ntpq -c peers -n ar.pool.ntp.org
remote refid st t when poll reach delay offset jitter
==============================================================================
+216.244.192.3 193.190.230.65 2 u 994 1024 377 7.538 -17.797 5.992
200.220.152.62 200.189.40.8 3 u 1945 1024 376 165.686 -134.38 8.285
+200.137.65.85 200.137.64.20 3 u 917 1024 377 269.163 -15.150 19.308
*200.189.40.8 200.20.186.76 2 u 173 1024 377 50.197 -18.401 19.196
[root@oc4037774485 sysconfig]#

Para hacer una consulta:
[root@localhost log]# ntpq -4 -p localhost
remote refid st t when poll reach delay offset jitter
==============================================================================
core01.ses.net. 146.164.48.5 2 u 6 64 1 553.248 196.365 0.001
core-vgg-1-lo0. 192.43.244.18 2 u 7 64 1 213.474 29.357 0.001
LOCAL(0) .LOCL. 10 l 6 64 1 0.000 0.000 0.001
[root@localhost log]#

Ahi me muestra todos los peers que estan conectados con ipv4
Fijense, tengo localmente este servidor NTP en mi red
[root@localhost log]# ntpq -4 -p localhost
remote refid st t when poll reach delay offset jitter
==============================================================================
core-vgg-1-lo0. 192.43.244.18 2 u 12 64 1 259.571 58.708 0.001
host800234.cote 200.3.168.192 3 u 12 64 1 498.984 173.922 0.001
host151.186-109 .INIT. 16 u – 64 0 0.000 0.000 0.000
LOCAL(0) .LOCL. 10 l 10 64 1 0.000 0.000 0.001
[root@localhost log]#

Ntptrace:
Podemos ratrear los servidores de ntp.

$ /usr/sbin/ntptrace ntp0.cornell.edu
cudns.cit.cornell.edu: stratum 2, offset -0.004214, synch distance 0.03455
dtc-truetime.ntp.aol.com: stratum 1, offset -0.005957, synch distance
0.00000, refid ‘ACTS’
$ /usr/sbin/ntptrace ntp-2.mcs.anl.gov
mcs.anl.gov: stratum 2, offset -0.004515, synch distance 0.06354
clepsydra.dec.com: stratum 1, offset 0.002045, \
synch distance 0.00107, refid ‘GPS

Comando hwclock

Hwclock es una herramienta que nos permite:

* Acceder al Reloj del Hardware
* Mostrar la hora actual
* Poner el Reloj del Hardware a una hora especificada
* Poner el Reloj del Hardware a la Hora del Sistema
* Poner el Tiempo del Sistema desde el Reloj del Hardware.

también puede ejecutar hwclock periódicamente para insertar o quitar tiempo del Reloj del Hardware para compensar desviaciones sistemáticas en las que el reloj gana o pierde tiempo consistentemente a una cierta velocidad si se deja solo.

Sintaxis:
[BASH]# hwclock [opciones]

hwclock –-show
hwclock –systohc
hwclock –-hctosys
hwclock –adjust
hwclock –version

Opciones Descripcion
–show Lee el reloj del hardware y muestra la hora en la salida estándar.
–set Pone el reloj del hardware a la hora dada por la opción –date
–hctosys Pone el tiempo del sistema a partir del reloj del hardware. Ésta es una buena opción para poner en uno de los guiones de arranque del sistema.
–systohc Pone el reloj del hardware a la hora del sistema actual.
–adjust Añade o sustrae tiempo del reloj del hardware para tener en cuenta el desvío sistemático desde la última vez que el reloj se puso o se ajustó. Vea la discusión al respecto más adelante.
–utc Indica que el reloj del hardware se mantiene en el tiempo universal coordinado (UTC). Es cosa suya si mantiene su reloj en hora local o UTC, pero nada en el reloj le dice qué es lo que ha escogido. Así que con esta opción es como le da esa información a hwclock.

Ejemplos:
Preguntar por la hora del reloj del sistema
[root@oc4037774485 etc]# hwclock –show
Sun 12 Dec 2010 10:17:57 PM ART -0.547218 seconds
[root@oc4037774485 etc]#

Setear el reloj de hardware con el del sistema
[root@oc4037774485 etc]# hwclock –systohc
Todos los valores del reloj de hardware son seteados en numeros de segundos desde el 1 de Enero de 1970.
Este numero es convertido en un formato que lo podamos interpretar. El tiempo es representado o en UTC o en nuestro hora local.
UTC es un estandar universal de tiempo y que siempre es el mismo en todas las zonas.
El tiempo local que usamos es simplemente una combinacion de UTC en el cual posee un offset negativo o positivo dependiendo de la zona que configuremos.
Un ejemplo es el siguiente en donde en argentina seria UTC+3 (esta adelantado 3 horas)
Como administrador de sistemas podemos setear nuestra hora con UTC o con nuestro propia hora local.Podriamos tener el reloj en UTC y luego setear en nuestras aplicaciones el tiempo local que gustemos.
Aca un ejemplo:

[root@oc4037774485 etc]# hwclock –show –localtime
Sun 12 Dec 2010 10:20:31 PM ART -0.875240 seconds
[root@oc4037774485 etc]# hwclock –show –utc
Sun 12 Dec 2010 07:20:40 PM ART -0.375265 seconds
[root@oc4037774485 etc]#

Si luego lo quisiera pasar a utc ..
[root@oc4037774485 etc]# hwclock –adjust –utc
[root@oc4037774485 etc]# hwclock –show
Sun 12 Dec 2010 07:28:31 PM ART -0.969133 seconds
[root@oc4037774485 etc]#

Comando date
Este programa se utiliza para mostrar o establecer la hora del sistema

Sintaxis:

[BASH]# date [opciones] [+FORMATO]

Opciones Descripcion
Una literal %
%a Localización del nombre abreviado del día de la semana (Sun,Sat)
%A Localización del nombre completo del día de la semana (Sunday,Saturday)
%b Localización del nombre abreviado del nombre del mes
%c Localizacion de fecha y hora (Sat Nov 04 12:02:33 EST 1989)
%C Siglo (año dividido por 100 y truncado a un entero) 00-99
%d Dia del mes (01..31)
%D Fecha (mm/dd/yy)
%e Dia del mes (1..31,), a diferencia de %d este suprime el espacio en blanco
%F Lo mismo que %Y-%m-%d
%h Lo mismo que %b
%H Hora (00..23)
%I Hora (01..12)
%j Dia del año (001..366)
%k Hora (0..23)
%l Hola (1..12)
%m Mes (01..12)
%M Minutos (00..59)
%n Una nueva linea
%N Nanosegundos (000000000..999999999)
%p Indicacion de PM o AM en mayusculas
%P Indicacion de pm o am en minusculas
%r Tiempo en 12 horas ( hh:mm:ss AP M)
%R Tiempo en 24 horas ( hh:mm )
%s Segundos desde `00:00:00 1970-01-01 UTC’ (una extesion de GNU )
%S Segundos (00..60);
%t Un tabulador horizontal
%T Tiempo , 24 horas (hh:mm:ss)
%u Dia de la semana (1..7) el dia 1 representa el lunes
%U Número de semana del año con el domingo como primer día de la semana (00..53)
%V Número de semana del año con el lunes como primer día de la semana (00..53)
%w Dia de la samana (0..6); 0 representa el Domingo
%W Numero de la semana del año con Lunes como primer dia de la semana (00..53)
%x Representacion de la fecha local (mm/dd/yy)
%X Representacion de la hora local (%H:%M:%S)
%y Los ultimos dos digitos del año (00..99)
%Y Año (1970..)

Ejemplos:[6]
[root@oc4037774485 sysconfig]# echo `date +%Y%m%d`
20101212
[root@oc4037774485 sysconfig]#
[root@oc4037774485 sysconfig]# echo `date +%a”-“%d”-“”Siglo:”%C`
Sun-12-Siglo:20
[root@oc4037774485 sysconfig]#

Bue lo demas es probarlos 🙂

Fuente:
[1]http://www.eecis.udel.edu/~mills/ntp/html/ntpd.html
[2] www.akadia.com/services/ntp_synchronize.html
[3] www.cis.udel.edu/~mills/ntp/html/
[4] http://www2.linuxparatodos.net/web/comunidad/base-de-conocimiento/-/wiki/Base%20de%20Conocimiento/Certificaci%C3%B3n%20LPI%20102#section-Certificaci_C3_B3n+LPI+102-AjustesDeTiempoYDeLasZonasHorarias
[6]http://enavas.blogspot.com/2008/03/el-shell-de-linux-comando-date.html

Preparando LPIC-1 107.3 Localización e Internacionalización

Buenas:

Aca vamos aver brevemente este topico:
Estos archivos que vamos a tocar tienen que ver con la configuracion de los diferentes idiomas y configuraciones regionales.
El time zone de linux es un enlace simbolico que esta en /etc/localtime a un archivo que corresponda segun la zona (/usr/share/zoneinfo), generalmente esto se setea
en el proceso de instalacion del equipo pero tambien lo podriamos hacer de forma manual con el comando tzconfig o tzselect.

[root@oc4037774485 zoneinfo]# ls -l /etc/localtime
-rw-r–r–. 1 root root 1061 Aug 3 10:35 /etc/localtime
[root@oc4037774485 zoneinfo]#

[root@oc4037774485 share]# cd zoneinfo/
[root@oc4037774485 zoneinfo]# ls
Africa Asia Canada Cuba EST Factory GMT0 Hongkong Iran Japan Mexico Navajo Poland PRC ROK Universal W-SU
America Atlantic CET EET EST5EDT GB GMT-0 HST iso3166.tab Kwajalein Mideast NZ Portugal PST8PDT Singapore US zone.tab
Antarctica Australia Chile Egypt Etc GB-Eire GMT+0 Iceland Israel Libya MST NZ-CHAT posix right Turkey UTC Zulu
Arctic Brazil CST6CDT Eire Europe GMT Greenwich Indian Jamaica MET MST7MDT Pacific posixrules ROC UCT WET
[root@oc4037774485 zoneinfo]

Aca veamos como podemos cambiar interactivamente la zona.
[root@oc4037774485 zoneinfo]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none – I want to specify the time zone using the Posix TZ format.
#? q

O podriamos cambiarla de forma manual:

ln -s /usr/share/zoneinfo/America/Buenos_Aires/etc/localtime

Si nos referimos a las zonas horarias estandar que se usan UTC o GMT [1]

[root@oc4037774485 zoneinfo]# date
Sun Dec 12 21:52:24 ART 2010
[root@oc4037774485 zoneinfo]# date -u
Mon Dec 13 00:52:27 UTC 2010
[root@oc4037774485 zoneinfo]#
Para mas info de como se calcula UTC ver el link.

Si quisiera saber unicamente la zona que tenemos (en sigla)
[root@oc4037774485 zoneinfo]# date +%Z
ART
[root@oc4037774485 zoneinfo]#

Despues tenemos un conjunto de variables que van a definir valores que los van a utilizar las diferentes aplicaciones:
LANG
Defines all locale settings at once, while allowing further individual customi-
zation via the LC_* settings described next.
LC_COLLATE
Defines alphabetical ordering of strings. This affects the output of sorted di-
rectory listings, for example.
LC_CTYPE
Defines the character-handling properties for the system. This determines
which characters are seen as alphabetic, numeric, and so on. This also deter-
mines the character set used, if applicable.
LC_MESSAGES
This defines the programs’ localizations for applications that use a message-
based localization scheme. This includes the majority of GNU programs.
LC_MONETARY
Defines currency units and the formatting of currency type numeric values.
LC_NUMERIC
Defines formatting of numeric values that aren’t monetary. This affects things
such as the thousands separator and decimal separator.
LC_TIME
Defines the formatting of dates and times.
LC_PAPER
Defines the default paper size.
LC_ALL
A special variable for overriding all other settings

Con el comando locale podemos ver como son nuestros valores:
[root@oc4037774485 zoneinfo]# locale
LANG=en_US.UTF-8
LC_CTYPE=”en_US.UTF-8″
LC_NUMERIC=”en_US.UTF-8″
LC_TIME=”en_US.UTF-8″
LC_COLLATE=”en_US.UTF-8″
LC_MONETARY=”en_US.UTF-8″
LC_MESSAGES=”en_US.UTF-8″
LC_PAPER=”en_US.UTF-8″
LC_NAME=”en_US.UTF-8″
LC_ADDRESS=”en_US.UTF-8″
LC_TELEPHONE=”en_US.UTF-8″
LC_MEASUREMENT=”en_US.UTF-8″
LC_IDENTIFICATION=”en_US.UTF-8″
LC_ALL=
[root@oc4037774485 zoneinfo]#

vamos a ver la salida y que tipo de codificacion de carateres usamos.
UTF[2] Ver link.

En sistemas basados en red hat para cambiar el idioma podemos usar este comando:
[root@oc4037774485 sysconfig]# system-config-language

O editar este archivo que esta en /etc/sysconfig
[root@oc4037774485 sysconfig]# cat i18n
LANG=”en_US.UTF-8″
SYSFONT=”latarcyrheb-sun16″
[root@oc4037774485 sysconfig]#

Tambien podemos mirar el archivo que esta en /etc/profile.d
[root@oc4037774485 profile.d]# cat lang.sh
Como ya saben lo que esta alli se va a exportar cuando nuestro usuario inicie una sesion.

Fuente: http://es.wikipedia.org/wiki/Tiempo_universal_coordinado[1]
http://es.wikipedia.org/wiki/UTF-8[2]