SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
El sistema de ventanas X-Windows
Introducción:
El sistema gráfico X-Windows es un sistema de ventanas basado en el modelo cliente-servidor, y por tanto
existen un mínimo de 2 procesos:
•

El Servidor X: Se encarga de dibujar ventanas, y ejecutar primitivas gráficas como líneas, polígonos, elipses,
circulos ….., también se encarga de gestionar los periféricos de entrada como el teclado y el ratón y enviar
mensajes a los clientes cuando se pulsa una tecla o se mueve un ratón en una ventana.

•

El Cliente X: Se conecta al Servidor X

Pero en la práctica hay un 3º proceso que es el Administrador de Ventanas, este último se encarga de poner un
marco a las mismas y de poner los botones de minimizar, maximizar y cerrar. Todo esto explica la lentitud del sistema
gráfico de UNIX.

Como puedes observar hay muchos cambios de contexto entre modo kernel y modo usuario y en conmutación
de procesos, en cambio en Windows, el Servidor Gráfico y el Administrador de ventas están integrados en un módulo de
núcleo llamado Win32K.sys(Este archivo existe y lo puedes buscar). Lo que hace que haya menos cambios de contexto
entre el modo usuario y el modo núcleo:

La principal ventanja de la arquitectura de X-Windows es que el cliente el servidor pueden residir en equipos
distintos. Los procesos se comunican entre si por sockets: http://es.wikipedia.org/wiki/Socket_de_Internet.
Como este sistema es muy lento para aplicaciones OpenGL(Juegos y Software 3D) y con el fin de aprovechar
la GPU de manera eficiente, los programas que usan OpenGL pueden renderizar directamente usando el controlador de
núcleo(nouveau, nvidia, intel, ati …) . A este sistema se le llama DRM(Direct Rendering Manager).

→ : Color Rojo: Transición lenta, implica un cambio de contexto, un proceso se comunica con otro proceso usando el
núcleo del sistema aunque no se dibuje: Comunicaión lenta.
→ : Color Azul: Transición rápida de modo usuario a modo kernel, llamada directa al núcleo: Comunicaión rápida.
→ : Color Negro: Llamada al subrutina, sólo cambio del contador de programa. Comunicación Ultrarápida.

Componentes:
Los princiaples componentes del sistema son:
•

Servidor X: Está formado por un programa, unas extensiones(glx) para el mismo que vienen en ficheros
separados, y los controladores para las tarjetas gráficas.

•

Librerías Cliente de X: Un conjunto de librerías dinámicas que las aplicacuiones clientes utilizan para
conectarse al Servidor Gráfixo X.

•

Administrador de ventanas: Es un cliente que se encarga de dibujar los marcos de la ventanas, así como de
gestionar las opciones de movimiento, redimensionado, maximizado y y minimizado de las ventanas, así como
gestionar el fondo de escritorio.

•

Aplicaciones cliente: Como firefox, libreoffice ..
Opcionalmente, y en la mayoría de los casos también puedes tener:

•

Panel: Aplicación que en conjunción con el administrador de ventanas coloca un panel don se ven las ventanas
minimizadas, se coloca un menú de aplicaciones, y diversos applets(complementos) que contienen un reloj,
control del volumen, administración de la red, …. Esto es propio de los entornos de escritorio como LXDE,
GNOME, XFCE y KDE. En Microsoft Windows esta función la cumple C:WindowsExplorer.exe.

•

Gestor Gráfico de Sesiones(Display Managers): Es un servicio que arranca el servidor gráfico y se conecta a
él. Pregunta por un usuario y contraseña para iniciar sesión en un entorno gráfico. Con el sistema básico de X-
Windows viene uno llamado XDM, Muchos entornos de escritorio tiene su propios Gestores Gráficos de
Sesiones aunque no estás obligado a usarlos. En Archlinux tienes: slim, lightdm, lxdm, xdm, gdm y kdm.
Los entornos de escritorio como LXDE, GNOME, XFCE y KDE no son más que aplicaciones cliente que
aumentan la experiencia de usuario, permitiendo un manejo básico del sistema y configuración de los mismos sin
utilizar comandos.
El Servidor X:
El Servidor X se encuentra ubicado en /usr/bin/X que es un enlace a /usr/bin/Xorg que es el programa principal,
pero existen otros componentes adicionales del Servidor X:
•

/usr/bin/xinit: Programa que arranca el Servidor X y luego ejecuta algunos scripts en /etc/X11/xinit y el archivo
.xinitrc del directorio HOME del usuario.

•

/usr/lib/xorg/modules/drivers: Contiene los controladores de los adapatadores gráficos, en algunos casos el
controlador se utiliza los servicios ofrecidos por el controlador del núcleo(ubicado generalmente en un
módulo).

•

/usr/lib/xorg/modules/dri: Parte 3D de controlador.

•

/usr/lib/xorg/modules/ext: Extensiones cargables del Servidor X.

•

/usr/lib/xorg/modules/input: Controladores de entrada(teclado, ratón, joystick ..)

•

/etc/X11: Arhivos de configuración:
◦

/etc/X11/xorg.conf: Archivo principal de configuración

◦

/etc/X11/xorg.conf.d: Directorio con arhivos de configuración complementarios.

◦

/etc/X11/xinit: Directorio de scripts para xinit.

Las librerías cliente:
Hay muchas libería clientes que sirven para comunicarse con el servidor gráfico, en general son /usr/lib/libX*.
Estas liberías son liberías de bajo nivel, para proporcionar rutinas a los programadores que faciliten la escritura de
programas para X-Windows y faciliten la portabilidad de los programas entre diferentes plataformas se han creado
diversas librerías de más alto nivel que los programas utilizan directamente. Estás liberías utilizan las liberías cliente
como base para “dibujar” y manejar los eventos del escritorio, algunos ejemplos son:
•

GTK1.2: Libería GTK(Gimp Tool Kit), inicialmente creada para desarrollar el programa de retoque fotográfico
GIMP. Esta versión hace años no se utiliza.

•

GTK2.x: Versión 2 de GTK, no compatible con la anterior, es utilizada por el entorno LXDE y XFCE.

•

GTK3.x: Versión 3 de GTK, no compatible con la anterior, es utilizada por GNOME 3, en todas las
distribuciones aparece como un paquete distinto a GTK2.x con el objetivo de poder tener las 2 instaladas
simultáneamente.

•

QT: Librería base para el entorno KDE.

Una de las consecuencias de tanta libería es que si no se configuran bien los temas de escritorios(No siempre se
puede), el aspecto de los botones, cuadros de dialogo y elementos de las aplicaciones difiere de una apliación a otra.
Administrador de ventanas:
El Administrador de ventanas se enacarga de gestionar el movimiento, el redimensionado, minimizado,
maximizado, el traer al frente o dejar al fondo, quitar o poner el foco del ratón y el teclado(Una ventana tiene el foco del
ratón o teclado si cualquier evento en los mismos, afecta a las ventana) … todo lo relacionado con las ventanas.
Actualmente se divide en 2 clases:
•

De pila: Cada vez que una ventana se pone al frente o se queda al descubierto una parte de la misma, se envía
un evento a la aplicación cliente informándole del mismo para que esta última emita las ordenes necesarias
para dibujarla.

•

Gestor de composición: En este caso las ordenes de dibujado no se realizan sobre la pantalla, sino sobre un
buffer de memoria reservado para esa ventana, ese buffer normalmente se ubica en la memoria del
adaptador. El Gestor de composición compone la pantalla a partir de los contenidos de los bufferes de
memoria de las ventanas. Esto permite aplicar efectos como transparecias, escalados, animaciones ….
Este segundo tipo de Administrador de ventana consme más recursos tanto de CPU como de GPU así como
memoria principal como de vídeo. Windows XP y Windows 2003 tiene un administrador de ventanas de pila, mientras
que Windows Vista en adelante tiene con gestor de composición. En Linux depende del Administrador de ventanas que
se use usará uno u otro, los antiguos utilizan los del primer tipo, así como los que vienen con LXDE y XFCE, GNOME
3, KDE, Cinnamon vienen con gestores de composición:
Gestor gráfico de sesiones:
Su misión es inicializar y preparar tanto al servidor gráfico, así como validar a los usuarios mediante
usuario/contraseña o cualquier otro método, una vez validado arranca una sesión gráfica ejecutando un script que
inicializa el escritorio(LXDE, GNOME, KDE ..)
Otros complementos:
Como una barra de tareas, applets para grestionar la red, cerrar sesión, cambiar de usuario …, suelen ser
programas separados, aunque la barra de tareas y el menú de inicio suelen ser un único programa.
Notas:
Recuerda que los entornos LXDE, XFCE, GNOME, Ciannamon y KDE, Traen varias aplicaciones para
conseguir un escritorio completo, entre ellos un Administrador de ventanas, una barra de tareas, menús y otros
complementos. LXDE es el que menos recursos consume y el que vamos a instalar.
Las ventanas se crean unas dentro de otras, la venta raiz(Root Window) es la ventana que se ubica en el fondo y
ocupa toda la pantalla, no tiene borde. En realidad representa el fondo de escritorio.

Funcionamiento de los clientes:
La variable de entorno DISPLAY contiene la cadena de conexión para que los clientes sepan a quien se tiene
que conectar, puede tener los siguientes formatos:
DISPLAY=:x
DISPLAY=host:x
Donde x es el número de Servidor X, puede haber varios Servidores X, 0, 1 …, en caso de que el campo host
esté vacío, se comunicará con la máquina local, pero no usando la dirección de localhost si no usando un socket unix
ubicado en /tmp/.X11-unix/Xx, en caso de aparecer, indica el nombre de máquina o dirección IP del Servidor X.
Pero no cualquier cliente puede conectarse, el Servidor X rechaza las conexiones que no tiene “La llave
mágica”, la llave mágica se ubica en $HOME/.Xauthority, este fichero es creado de varias maneras, la habitual es que el
el Gestor Gráfico de Sesiones lo fija para que ese usuario validado pueda conectarse al Servidor X y pueda ejecutar
aplicaciones del entorno de ventanas como Firefox, LibreOffice, Gimp ….
Para saber el valor de DISPLAY.
# echo $DISPLAY

Para probar la conexión y ver información sobre el Servidor X, uso el comando xdpyinfo:
# xdpyinfo | less

Para obtener información sobre la Renderizazión Directa:
# xdrinfo

Nota:
Si no tengo ejecutando el entorno gráfico y no estoy en un terminal del mismo, lo normal es que la variable
DISPLAY no esté definida.

Instalando el entorno gráfico completo:
Lo mejor para instalar el entorno gráfico es instalar el paquete xorg, pero antes actulizamos los repositorios y
los paquetes:
# pacman -Suy
# pacman -S xorg

El paquete xorg es un paquete que fuerza a instalar otros paquetes y otros paquetes de manera opcional,
pulsando intro, instalo todos ellos.
Con el siguiente comando puedo ver todos los paquetes correspondiente a los módulos del Servidor X
correspondiente a controladores de vídeo(Estos módulos no son módulos de núcleo):
#

pacman -Ss xf86-video | less

Opcionamente puedo instalar tipos de letra adicionales, inyeresa las fuentes TrueType:
# pacman -S ttf-dejavu ttf-droid

Tambien podemos necesitar xorg-server-devel y el reloj:
# pacman -S xorg-server-devel xorg-xclock

Estas últimas son las mismas que se incluyen en los dispositivos móviles que viene equipados con Android.
Si quiero habilitar los drivers de video para Sistemas Invitados bajo VirtualBox, debo instalar:
#

pacman -S virtualbox-guest-utils

Con esto tengo la base para instalar los clientes de X-Windows, pero aun no es completa la instalción.
Instalando los controladores X de Nvidia:
El controlador para X-Windows de Nvidia viene en el paqute nvidia-libgl, previamente habré instalado el
módulo de núcleo nvidia o nvidia-lts. Para instalar:
#

pacman -S nvidia-libgl

Me informa que nvidia-libgl tiene conflictos mesa-libgl y si quero borrarlo, pero cuando le contesto que si me
indica que no puede borrar mesa-libgl por problemas de dependecias. Para solucionarlo debo borrar previamente esas
dependencias:
# pacman -R nouveau-dri ati-dri intel-dri svga-dri

No debo borrar mesa-libgl porque puede hay paquetes que necesitan que la librería OpenGL esté
instalada y provocaría una cascada de borrado de paquetes. *
Ahora puedo continuar:
#

pacman -S nvidia-libgl

Ahora ya esta instalado y la libería OpenGL es provista por Nvidia.
Si hemos activado Multilib(Mira en el documento pacman.pdf) para instalar librerías de 32 bits:
# pacman -S lib32-nvidia-libgl

Pero ahora debemos indicarle que cargue el controlador, para ello se debe modificar el archivo
/etc/X11/xorg.conf, para ello ejecutamos:
# nvidia-xconfig --keyboard=es

Para más información:
# man nvidia-xconfig

Ya está operativo el controlador y la aceleración de los gráficos 3D por OpenGL.
El siguiente paso es instalar un entorno de escritorio completo.
*Nota:
Algunos paquetes como proveen un programa o librería, en este caso es libgl, muchos paquetes exigen que
haya un programa que provea libgl, no importando si es mesa-libgl o nvidia-libgl.
TrueType hace referncia al tipo de fuente, es un tipo de fuente vectorial, que escala bien a distintos tamaños que
realiza suaviazados de bordes para que se vean “perfectas” en pantalla. Se pueden portar desde o a MS Windows.
Instalando el entorno LXDE:
Para iniciar sesión en un entorno gráfico, necesito 2 cosas:
•

Una cuenta de usuario no root.

•

El entorno de escritorio y un gestor gráfico de sesiones.
Para lo primero creamos una cuenta como sigue:

# useradd -g users -G video,audo,optical -c 'Víctor Córcoles López' -m -d /home/victor -s
/bin/bash victor
# passwd victor

Ahora abrimos la segunda consola(Ctrl-F2) y probamos iniciar sesión con ese usuario, si algo falla, volvemos
a la primera consola(Ctrl-F1):
# userdel -r victor

Y volvemos a empezar.
Para instalar el entorno de escritorio:
# pacman -S lxde

Nos sugiere instalar gvfs y udisks2 para el montaje y desmontaje automático de dispositivos extraibles:
# pacman -S gvfs udisks2

El siguiente paso es habilitar el arranque automático del gestor gráfico de sesiones, pero antes debemos
asegurarnos que todo va a funcionar bien, de lo contrario podría inutilizarnos el terminal.
# systemctl start lxdm

Y probamos iniciar sesión con ese usuario, si todo va bien:
Inicio → Accesorios → LXTerminal
$ cat .xinitrc
$ cat .Xauthority

Estos 2 archivos los acaban de crear el LXDM.
*Notas:
El primer arhivo se ejecuta con cada inicio de sesión gráfica, en este caso, el LXDM lo crea, pero otros como el
SLIM o el XDM no lo hacen y hay que crearlos manualmente antes de iniciar la primera sesión gráfica meduante:
$ echo 'exec startlxde' > .xinitrc

Desde la consola de texto y con el usuario victor iniciado sesión.
El Segundo lo crea el Gestor Gráfico de Sesiones.
Entrando como root:
Desde el terminal de LXTerminal, me convierto en root, para ello ejecuta los siguientes comandos(La
contraseña que me pregunta es la de root):
$ su root
# echo soy root y mi sesion es $USER
# xclock # Funciona
# exit
$ su – root
# echo soy root y mi sesion es $USER
# xclock # No funciona las aplicaciones gráficas
# exit

En el segundo caso es un inicio de sesión completo como root.
El comando su me ejecuta un comando o una sesión de shell como otro usuario, para terminar dicha sesión
debo ejecutar exit. En Archlinux, el comando sudo no está configurado como en Ubuntu. En Debian funciona como en
ArchLinux.
Instalando un gestor de red:
Exiten gestores de red que permiten a un usuario configurar la red, desde el entorno gráfico, es muy util para
redes wifi, ya que permite almacenar perfiles de red, y activarlos según las vaya detectando. Se componen de 2
componentes:

•

Un servicio que debe arrancar automáticamente que es el que gestiona la red y los dispositivos. Para poder
administrar un dispositivo de red, este no debe ser gestionado por el servicio netctl.

•

Un cliente para comunicarse con ellos, en muchos casos ese cliente es un programa para X-Windows.
Existen 2 gestores de red principales, no puedes tener activos los 2 a la vez:

•

wicd: El más sencillo de los 2, su programa cliente wicd-gtk, permite administrarlo. Permite asociar una red
WIFI con su ESSID con una cofiguración IP(Dirección, DNS, …). El cliente funciona con GTK2. También
tiene un cliente para el modo texto llamado wicd-curses.

•

NetworkManager: El más potente de todos, permite crear perfiles de red, en que se se define una configuración
tanto completa tanto de la parteWIFI como la de TCP/IP, en cualquier momento se puede cambiar de un un
perfil a otro sin problema. Permite definir perfiles de WIFI, Ethernet, 3G, ….. Mediante plugins se puede
extender su funcionalidad. El cliente gráfico está hecho en GTK3.
Para instalarlos:
# pacman wicd wicd-gtk
# pacman networkmanager network-manager-applet

Para habilitarlos en el arranque del sistema(Recuerda hacerlo solo con uno de ellos):
# systemctl enable wicd
# systemctl enable NetworkManager

Poniendo bonito todo:
Las aplicaciones GTK2 y GTK3 se ven diferentes, para que se vean iguales se debe usar un tema de escritorio
común a a las 2 librerías, los temas de escritorio se ubican en /usr/share/themes. El único tema que he encontrado que
funcione en ambos entornos es Adwaita. Ubicado en el paquete gnome-themes-standard.
# pacman -S gnome-themes-standard
# ls -l /usr/share/themes

Ahora debéis hacer:
Inicio → Preferencias → Personalizar apariencia y comportamiento.
Desde ahí podéis ajustar la apariencia. En LXDE no viene activo por defecto el control de volumen de audio.
Para activarlo:
Botor derecho del ratón sobre el panel→ Añadir/quitar elementos del panel → Añadir → Control de volumen.
Y añadir un programa de configuración de audio como gnome-alsa-mixer:
# pacman -S gnome-alsa-mixer

Se invita al alumno a experimentar por los menús para ponerlo a su gusto.
Haciendo que el entorno arranque automáticamente cuando arranque el equipo:
Como usuario root debo ejecutar:
# systemctl enable lxdm

Si estoy como usuario victor, previamente:
$ su – root
# systemctl enable lxdm

Añadiendo aplicaciones:
Se pueden añadir aplicaciones interesantes como, algunas están escritas en GTK3:
•

Firefox en Castellano: #

•

Plugin de Flash para Firefox: #

•

Visor de PDF potente: #

•

Visor de PDF ligero:

•

Editor de textos ligero:

•

Editor de textos potente de GNOME:

# pacman -S gedit

•

Editor de textos potente de GNOME:

# pacman -S gedit

•

Medidor de rendimiento de temas para GTK2: #

pacman -S firefox-i18n-es-es
pacman -S flashplugin

pacman -S evince

# pacman -S epdfview
# pacman -S leafpad

pacman -S gtkperf #

Ejecutar desde terminal como:

gtkperf -a

•

Cliente VNC:

•

Cliente VNC para GNOME:

•

Cliente de escritorio remoto multiprotocolo(RDP, VNC, XDMCP):

•

Suit de ofimática Libreoffice:

•

Herramienta de cálculo genius: #

•

Utilidad para ejecutar aplicaciones de escritorio que necesiten pivilegios de root:

# pacman -S gtk-vnc
# pacman -S vinagre
# pacman -S remmina

# pacman -S libreoffice
pacman -S genius
# pacman -S gksu

Algunas aplicaciones no aparecen en el menú de inicio, se deven invocar desde la linea de comandos, para
saber el comando busco los ficheros que integran el paquete y los ficheros ejecutables se ubicaran bajo /usr/bin:
# pacman -Ql gtk-vnc | less

Ya sé que el comando es gvncviewer.
Las aplicaciones para GNOME funcionan en LXDE sin problemas, por lo menos la mayoría.
Si hemos instalado el driver propietario de Nvidia se habrá instalado un programa de administración de la
tarjeta gráfica llamado nvidia-settings. Para volverlo a reinstalar:
# pacman -S nvidia-settings

Más contenido relacionado

La actualidad más candente

La actualidad más candente (6)

Materia de computacion espea
Materia de computacion espeaMateria de computacion espea
Materia de computacion espea
 
Programas y herramientas Windows
Programas y herramientas WindowsProgramas y herramientas Windows
Programas y herramientas Windows
 
Eqpo 9 entorno de trabajo
Eqpo 9 entorno de trabajoEqpo 9 entorno de trabajo
Eqpo 9 entorno de trabajo
 
Modulo 1 sistemas operativos
Modulo 1 sistemas operativosModulo 1 sistemas operativos
Modulo 1 sistemas operativos
 
Sistema Operativo Windows XP
Sistema Operativo Windows XPSistema Operativo Windows XP
Sistema Operativo Windows XP
 
Slide share
Slide shareSlide share
Slide share
 

Similar a X windows

31 el sistema x window
31  el sistema x window31  el sistema x window
31 el sistema x windowAprende Viendo
 
Escritorios 3D en Linux (actualizado para el 2008)
Escritorios 3D en Linux (actualizado para el 2008)Escritorios 3D en Linux (actualizado para el 2008)
Escritorios 3D en Linux (actualizado para el 2008)Miguel Useche
 
Escritorios 3D en Linux
Escritorios 3D en LinuxEscritorios 3D en Linux
Escritorios 3D en LinuxMiguel Useche
 
Gestores de arranque, ventana y escritorio.
Gestores de arranque, ventana y escritorio.Gestores de arranque, ventana y escritorio.
Gestores de arranque, ventana y escritorio.j3s1cc4
 
Gestores de arranque, ventana y escritorio. 2da Edicion
Gestores de arranque, ventana y escritorio. 2da EdicionGestores de arranque, ventana y escritorio. 2da Edicion
Gestores de arranque, ventana y escritorio. 2da Edicionj3s1cc4
 
Que necesitas para instalar linux 2010 no fondos
Que necesitas para instalar linux 2010 no fondosQue necesitas para instalar linux 2010 no fondos
Que necesitas para instalar linux 2010 no fondosManuel Mujica
 
Ivan durango presentacion_serviciodevisualizacionremota
Ivan durango presentacion_serviciodevisualizacionremotaIvan durango presentacion_serviciodevisualizacionremota
Ivan durango presentacion_serviciodevisualizacionremotaivydb
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoKLLS
 
Sistema Operativo Windows
Sistema Operativo WindowsSistema Operativo Windows
Sistema Operativo WindowsRichard Joel
 
Escritorios en Ubuntu 12.10 por David Guerrero
Escritorios en Ubuntu 12.10 por David GuerreroEscritorios en Ubuntu 12.10 por David Guerrero
Escritorios en Ubuntu 12.10 por David GuerreroNamsohj Ozarazil
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosyolo566
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosyolo566
 
Sistemas operativos
Sistemas operativos Sistemas operativos
Sistemas operativos yolo566
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosyolo566
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoyolo566
 

Similar a X windows (20)

30 el sistema x window
30  el sistema x window30  el sistema x window
30 el sistema x window
 
31 el sistema x window
31  el sistema x window31  el sistema x window
31 el sistema x window
 
Escritorios 3D en Linux (actualizado para el 2008)
Escritorios 3D en Linux (actualizado para el 2008)Escritorios 3D en Linux (actualizado para el 2008)
Escritorios 3D en Linux (actualizado para el 2008)
 
Escritorios 3D en Linux
Escritorios 3D en LinuxEscritorios 3D en Linux
Escritorios 3D en Linux
 
Pechakucha escritorio remoto
Pechakucha escritorio remotoPechakucha escritorio remoto
Pechakucha escritorio remoto
 
Acceso remoto Linux
Acceso remoto LinuxAcceso remoto Linux
Acceso remoto Linux
 
Gestores de arranque, ventana y escritorio.
Gestores de arranque, ventana y escritorio.Gestores de arranque, ventana y escritorio.
Gestores de arranque, ventana y escritorio.
 
Gestores de arranque, ventana y escritorio. 2da Edicion
Gestores de arranque, ventana y escritorio. 2da EdicionGestores de arranque, ventana y escritorio. 2da Edicion
Gestores de arranque, ventana y escritorio. 2da Edicion
 
Alondradrh
AlondradrhAlondradrh
Alondradrh
 
Que necesitas para instalar linux 2010 no fondos
Que necesitas para instalar linux 2010 no fondosQue necesitas para instalar linux 2010 no fondos
Que necesitas para instalar linux 2010 no fondos
 
ESCRITORIOS DE TRABAJO
ESCRITORIOS DE TRABAJOESCRITORIOS DE TRABAJO
ESCRITORIOS DE TRABAJO
 
Ivan durango presentacion_serviciodevisualizacionremota
Ivan durango presentacion_serviciodevisualizacionremotaIvan durango presentacion_serviciodevisualizacionremota
Ivan durango presentacion_serviciodevisualizacionremota
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistema Operativo Windows
Sistema Operativo WindowsSistema Operativo Windows
Sistema Operativo Windows
 
Escritorios en Ubuntu 12.10 por David Guerrero
Escritorios en Ubuntu 12.10 por David GuerreroEscritorios en Ubuntu 12.10 por David Guerrero
Escritorios en Ubuntu 12.10 por David Guerrero
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativos Sistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 

X windows

  • 1. El sistema de ventanas X-Windows Introducción: El sistema gráfico X-Windows es un sistema de ventanas basado en el modelo cliente-servidor, y por tanto existen un mínimo de 2 procesos: • El Servidor X: Se encarga de dibujar ventanas, y ejecutar primitivas gráficas como líneas, polígonos, elipses, circulos ….., también se encarga de gestionar los periféricos de entrada como el teclado y el ratón y enviar mensajes a los clientes cuando se pulsa una tecla o se mueve un ratón en una ventana. • El Cliente X: Se conecta al Servidor X Pero en la práctica hay un 3º proceso que es el Administrador de Ventanas, este último se encarga de poner un marco a las mismas y de poner los botones de minimizar, maximizar y cerrar. Todo esto explica la lentitud del sistema gráfico de UNIX. Como puedes observar hay muchos cambios de contexto entre modo kernel y modo usuario y en conmutación de procesos, en cambio en Windows, el Servidor Gráfico y el Administrador de ventas están integrados en un módulo de núcleo llamado Win32K.sys(Este archivo existe y lo puedes buscar). Lo que hace que haya menos cambios de contexto entre el modo usuario y el modo núcleo: La principal ventanja de la arquitectura de X-Windows es que el cliente el servidor pueden residir en equipos distintos. Los procesos se comunican entre si por sockets: http://es.wikipedia.org/wiki/Socket_de_Internet.
  • 2. Como este sistema es muy lento para aplicaciones OpenGL(Juegos y Software 3D) y con el fin de aprovechar la GPU de manera eficiente, los programas que usan OpenGL pueden renderizar directamente usando el controlador de núcleo(nouveau, nvidia, intel, ati …) . A este sistema se le llama DRM(Direct Rendering Manager). → : Color Rojo: Transición lenta, implica un cambio de contexto, un proceso se comunica con otro proceso usando el núcleo del sistema aunque no se dibuje: Comunicaión lenta. → : Color Azul: Transición rápida de modo usuario a modo kernel, llamada directa al núcleo: Comunicaión rápida. → : Color Negro: Llamada al subrutina, sólo cambio del contador de programa. Comunicación Ultrarápida. Componentes: Los princiaples componentes del sistema son: • Servidor X: Está formado por un programa, unas extensiones(glx) para el mismo que vienen en ficheros separados, y los controladores para las tarjetas gráficas. • Librerías Cliente de X: Un conjunto de librerías dinámicas que las aplicacuiones clientes utilizan para conectarse al Servidor Gráfixo X. • Administrador de ventanas: Es un cliente que se encarga de dibujar los marcos de la ventanas, así como de gestionar las opciones de movimiento, redimensionado, maximizado y y minimizado de las ventanas, así como gestionar el fondo de escritorio. • Aplicaciones cliente: Como firefox, libreoffice .. Opcionalmente, y en la mayoría de los casos también puedes tener: • Panel: Aplicación que en conjunción con el administrador de ventanas coloca un panel don se ven las ventanas minimizadas, se coloca un menú de aplicaciones, y diversos applets(complementos) que contienen un reloj, control del volumen, administración de la red, …. Esto es propio de los entornos de escritorio como LXDE, GNOME, XFCE y KDE. En Microsoft Windows esta función la cumple C:WindowsExplorer.exe. • Gestor Gráfico de Sesiones(Display Managers): Es un servicio que arranca el servidor gráfico y se conecta a él. Pregunta por un usuario y contraseña para iniciar sesión en un entorno gráfico. Con el sistema básico de X-
  • 3. Windows viene uno llamado XDM, Muchos entornos de escritorio tiene su propios Gestores Gráficos de Sesiones aunque no estás obligado a usarlos. En Archlinux tienes: slim, lightdm, lxdm, xdm, gdm y kdm. Los entornos de escritorio como LXDE, GNOME, XFCE y KDE no son más que aplicaciones cliente que aumentan la experiencia de usuario, permitiendo un manejo básico del sistema y configuración de los mismos sin utilizar comandos. El Servidor X: El Servidor X se encuentra ubicado en /usr/bin/X que es un enlace a /usr/bin/Xorg que es el programa principal, pero existen otros componentes adicionales del Servidor X: • /usr/bin/xinit: Programa que arranca el Servidor X y luego ejecuta algunos scripts en /etc/X11/xinit y el archivo .xinitrc del directorio HOME del usuario. • /usr/lib/xorg/modules/drivers: Contiene los controladores de los adapatadores gráficos, en algunos casos el controlador se utiliza los servicios ofrecidos por el controlador del núcleo(ubicado generalmente en un módulo). • /usr/lib/xorg/modules/dri: Parte 3D de controlador. • /usr/lib/xorg/modules/ext: Extensiones cargables del Servidor X. • /usr/lib/xorg/modules/input: Controladores de entrada(teclado, ratón, joystick ..) • /etc/X11: Arhivos de configuración: ◦ /etc/X11/xorg.conf: Archivo principal de configuración ◦ /etc/X11/xorg.conf.d: Directorio con arhivos de configuración complementarios. ◦ /etc/X11/xinit: Directorio de scripts para xinit. Las librerías cliente: Hay muchas libería clientes que sirven para comunicarse con el servidor gráfico, en general son /usr/lib/libX*. Estas liberías son liberías de bajo nivel, para proporcionar rutinas a los programadores que faciliten la escritura de programas para X-Windows y faciliten la portabilidad de los programas entre diferentes plataformas se han creado diversas librerías de más alto nivel que los programas utilizan directamente. Estás liberías utilizan las liberías cliente como base para “dibujar” y manejar los eventos del escritorio, algunos ejemplos son: • GTK1.2: Libería GTK(Gimp Tool Kit), inicialmente creada para desarrollar el programa de retoque fotográfico GIMP. Esta versión hace años no se utiliza. • GTK2.x: Versión 2 de GTK, no compatible con la anterior, es utilizada por el entorno LXDE y XFCE. • GTK3.x: Versión 3 de GTK, no compatible con la anterior, es utilizada por GNOME 3, en todas las distribuciones aparece como un paquete distinto a GTK2.x con el objetivo de poder tener las 2 instaladas simultáneamente. • QT: Librería base para el entorno KDE. Una de las consecuencias de tanta libería es que si no se configuran bien los temas de escritorios(No siempre se puede), el aspecto de los botones, cuadros de dialogo y elementos de las aplicaciones difiere de una apliación a otra. Administrador de ventanas: El Administrador de ventanas se enacarga de gestionar el movimiento, el redimensionado, minimizado, maximizado, el traer al frente o dejar al fondo, quitar o poner el foco del ratón y el teclado(Una ventana tiene el foco del ratón o teclado si cualquier evento en los mismos, afecta a las ventana) … todo lo relacionado con las ventanas. Actualmente se divide en 2 clases: • De pila: Cada vez que una ventana se pone al frente o se queda al descubierto una parte de la misma, se envía un evento a la aplicación cliente informándole del mismo para que esta última emita las ordenes necesarias para dibujarla. • Gestor de composición: En este caso las ordenes de dibujado no se realizan sobre la pantalla, sino sobre un
  • 4. buffer de memoria reservado para esa ventana, ese buffer normalmente se ubica en la memoria del adaptador. El Gestor de composición compone la pantalla a partir de los contenidos de los bufferes de memoria de las ventanas. Esto permite aplicar efectos como transparecias, escalados, animaciones …. Este segundo tipo de Administrador de ventana consme más recursos tanto de CPU como de GPU así como memoria principal como de vídeo. Windows XP y Windows 2003 tiene un administrador de ventanas de pila, mientras que Windows Vista en adelante tiene con gestor de composición. En Linux depende del Administrador de ventanas que se use usará uno u otro, los antiguos utilizan los del primer tipo, así como los que vienen con LXDE y XFCE, GNOME 3, KDE, Cinnamon vienen con gestores de composición: Gestor gráfico de sesiones: Su misión es inicializar y preparar tanto al servidor gráfico, así como validar a los usuarios mediante usuario/contraseña o cualquier otro método, una vez validado arranca una sesión gráfica ejecutando un script que inicializa el escritorio(LXDE, GNOME, KDE ..) Otros complementos: Como una barra de tareas, applets para grestionar la red, cerrar sesión, cambiar de usuario …, suelen ser programas separados, aunque la barra de tareas y el menú de inicio suelen ser un único programa. Notas: Recuerda que los entornos LXDE, XFCE, GNOME, Ciannamon y KDE, Traen varias aplicaciones para conseguir un escritorio completo, entre ellos un Administrador de ventanas, una barra de tareas, menús y otros complementos. LXDE es el que menos recursos consume y el que vamos a instalar. Las ventanas se crean unas dentro de otras, la venta raiz(Root Window) es la ventana que se ubica en el fondo y ocupa toda la pantalla, no tiene borde. En realidad representa el fondo de escritorio. Funcionamiento de los clientes: La variable de entorno DISPLAY contiene la cadena de conexión para que los clientes sepan a quien se tiene que conectar, puede tener los siguientes formatos: DISPLAY=:x DISPLAY=host:x Donde x es el número de Servidor X, puede haber varios Servidores X, 0, 1 …, en caso de que el campo host esté vacío, se comunicará con la máquina local, pero no usando la dirección de localhost si no usando un socket unix ubicado en /tmp/.X11-unix/Xx, en caso de aparecer, indica el nombre de máquina o dirección IP del Servidor X. Pero no cualquier cliente puede conectarse, el Servidor X rechaza las conexiones que no tiene “La llave mágica”, la llave mágica se ubica en $HOME/.Xauthority, este fichero es creado de varias maneras, la habitual es que el el Gestor Gráfico de Sesiones lo fija para que ese usuario validado pueda conectarse al Servidor X y pueda ejecutar aplicaciones del entorno de ventanas como Firefox, LibreOffice, Gimp …. Para saber el valor de DISPLAY. # echo $DISPLAY Para probar la conexión y ver información sobre el Servidor X, uso el comando xdpyinfo: # xdpyinfo | less Para obtener información sobre la Renderizazión Directa: # xdrinfo Nota: Si no tengo ejecutando el entorno gráfico y no estoy en un terminal del mismo, lo normal es que la variable DISPLAY no esté definida. Instalando el entorno gráfico completo:
  • 5. Lo mejor para instalar el entorno gráfico es instalar el paquete xorg, pero antes actulizamos los repositorios y los paquetes: # pacman -Suy # pacman -S xorg El paquete xorg es un paquete que fuerza a instalar otros paquetes y otros paquetes de manera opcional, pulsando intro, instalo todos ellos. Con el siguiente comando puedo ver todos los paquetes correspondiente a los módulos del Servidor X correspondiente a controladores de vídeo(Estos módulos no son módulos de núcleo): # pacman -Ss xf86-video | less Opcionamente puedo instalar tipos de letra adicionales, inyeresa las fuentes TrueType: # pacman -S ttf-dejavu ttf-droid Tambien podemos necesitar xorg-server-devel y el reloj: # pacman -S xorg-server-devel xorg-xclock Estas últimas son las mismas que se incluyen en los dispositivos móviles que viene equipados con Android. Si quiero habilitar los drivers de video para Sistemas Invitados bajo VirtualBox, debo instalar: # pacman -S virtualbox-guest-utils Con esto tengo la base para instalar los clientes de X-Windows, pero aun no es completa la instalción. Instalando los controladores X de Nvidia: El controlador para X-Windows de Nvidia viene en el paqute nvidia-libgl, previamente habré instalado el módulo de núcleo nvidia o nvidia-lts. Para instalar: # pacman -S nvidia-libgl Me informa que nvidia-libgl tiene conflictos mesa-libgl y si quero borrarlo, pero cuando le contesto que si me indica que no puede borrar mesa-libgl por problemas de dependecias. Para solucionarlo debo borrar previamente esas dependencias: # pacman -R nouveau-dri ati-dri intel-dri svga-dri No debo borrar mesa-libgl porque puede hay paquetes que necesitan que la librería OpenGL esté instalada y provocaría una cascada de borrado de paquetes. * Ahora puedo continuar: # pacman -S nvidia-libgl Ahora ya esta instalado y la libería OpenGL es provista por Nvidia. Si hemos activado Multilib(Mira en el documento pacman.pdf) para instalar librerías de 32 bits: # pacman -S lib32-nvidia-libgl Pero ahora debemos indicarle que cargue el controlador, para ello se debe modificar el archivo /etc/X11/xorg.conf, para ello ejecutamos: # nvidia-xconfig --keyboard=es Para más información: # man nvidia-xconfig Ya está operativo el controlador y la aceleración de los gráficos 3D por OpenGL. El siguiente paso es instalar un entorno de escritorio completo. *Nota:
  • 6. Algunos paquetes como proveen un programa o librería, en este caso es libgl, muchos paquetes exigen que haya un programa que provea libgl, no importando si es mesa-libgl o nvidia-libgl. TrueType hace referncia al tipo de fuente, es un tipo de fuente vectorial, que escala bien a distintos tamaños que realiza suaviazados de bordes para que se vean “perfectas” en pantalla. Se pueden portar desde o a MS Windows. Instalando el entorno LXDE: Para iniciar sesión en un entorno gráfico, necesito 2 cosas: • Una cuenta de usuario no root. • El entorno de escritorio y un gestor gráfico de sesiones. Para lo primero creamos una cuenta como sigue: # useradd -g users -G video,audo,optical -c 'Víctor Córcoles López' -m -d /home/victor -s /bin/bash victor # passwd victor Ahora abrimos la segunda consola(Ctrl-F2) y probamos iniciar sesión con ese usuario, si algo falla, volvemos a la primera consola(Ctrl-F1): # userdel -r victor Y volvemos a empezar. Para instalar el entorno de escritorio: # pacman -S lxde Nos sugiere instalar gvfs y udisks2 para el montaje y desmontaje automático de dispositivos extraibles: # pacman -S gvfs udisks2 El siguiente paso es habilitar el arranque automático del gestor gráfico de sesiones, pero antes debemos asegurarnos que todo va a funcionar bien, de lo contrario podría inutilizarnos el terminal. # systemctl start lxdm Y probamos iniciar sesión con ese usuario, si todo va bien: Inicio → Accesorios → LXTerminal $ cat .xinitrc $ cat .Xauthority Estos 2 archivos los acaban de crear el LXDM. *Notas: El primer arhivo se ejecuta con cada inicio de sesión gráfica, en este caso, el LXDM lo crea, pero otros como el SLIM o el XDM no lo hacen y hay que crearlos manualmente antes de iniciar la primera sesión gráfica meduante: $ echo 'exec startlxde' > .xinitrc Desde la consola de texto y con el usuario victor iniciado sesión. El Segundo lo crea el Gestor Gráfico de Sesiones. Entrando como root: Desde el terminal de LXTerminal, me convierto en root, para ello ejecuta los siguientes comandos(La contraseña que me pregunta es la de root): $ su root # echo soy root y mi sesion es $USER # xclock # Funciona
  • 7. # exit $ su – root # echo soy root y mi sesion es $USER # xclock # No funciona las aplicaciones gráficas # exit En el segundo caso es un inicio de sesión completo como root. El comando su me ejecuta un comando o una sesión de shell como otro usuario, para terminar dicha sesión debo ejecutar exit. En Archlinux, el comando sudo no está configurado como en Ubuntu. En Debian funciona como en ArchLinux. Instalando un gestor de red: Exiten gestores de red que permiten a un usuario configurar la red, desde el entorno gráfico, es muy util para redes wifi, ya que permite almacenar perfiles de red, y activarlos según las vaya detectando. Se componen de 2 componentes: • Un servicio que debe arrancar automáticamente que es el que gestiona la red y los dispositivos. Para poder administrar un dispositivo de red, este no debe ser gestionado por el servicio netctl. • Un cliente para comunicarse con ellos, en muchos casos ese cliente es un programa para X-Windows. Existen 2 gestores de red principales, no puedes tener activos los 2 a la vez: • wicd: El más sencillo de los 2, su programa cliente wicd-gtk, permite administrarlo. Permite asociar una red WIFI con su ESSID con una cofiguración IP(Dirección, DNS, …). El cliente funciona con GTK2. También tiene un cliente para el modo texto llamado wicd-curses. • NetworkManager: El más potente de todos, permite crear perfiles de red, en que se se define una configuración tanto completa tanto de la parteWIFI como la de TCP/IP, en cualquier momento se puede cambiar de un un perfil a otro sin problema. Permite definir perfiles de WIFI, Ethernet, 3G, ….. Mediante plugins se puede extender su funcionalidad. El cliente gráfico está hecho en GTK3. Para instalarlos: # pacman wicd wicd-gtk # pacman networkmanager network-manager-applet Para habilitarlos en el arranque del sistema(Recuerda hacerlo solo con uno de ellos): # systemctl enable wicd # systemctl enable NetworkManager Poniendo bonito todo: Las aplicaciones GTK2 y GTK3 se ven diferentes, para que se vean iguales se debe usar un tema de escritorio común a a las 2 librerías, los temas de escritorio se ubican en /usr/share/themes. El único tema que he encontrado que funcione en ambos entornos es Adwaita. Ubicado en el paquete gnome-themes-standard. # pacman -S gnome-themes-standard # ls -l /usr/share/themes Ahora debéis hacer: Inicio → Preferencias → Personalizar apariencia y comportamiento. Desde ahí podéis ajustar la apariencia. En LXDE no viene activo por defecto el control de volumen de audio. Para activarlo: Botor derecho del ratón sobre el panel→ Añadir/quitar elementos del panel → Añadir → Control de volumen. Y añadir un programa de configuración de audio como gnome-alsa-mixer:
  • 8. # pacman -S gnome-alsa-mixer Se invita al alumno a experimentar por los menús para ponerlo a su gusto. Haciendo que el entorno arranque automáticamente cuando arranque el equipo: Como usuario root debo ejecutar: # systemctl enable lxdm Si estoy como usuario victor, previamente: $ su – root # systemctl enable lxdm Añadiendo aplicaciones: Se pueden añadir aplicaciones interesantes como, algunas están escritas en GTK3: • Firefox en Castellano: # • Plugin de Flash para Firefox: # • Visor de PDF potente: # • Visor de PDF ligero: • Editor de textos ligero: • Editor de textos potente de GNOME: # pacman -S gedit • Editor de textos potente de GNOME: # pacman -S gedit • Medidor de rendimiento de temas para GTK2: # pacman -S firefox-i18n-es-es pacman -S flashplugin pacman -S evince # pacman -S epdfview # pacman -S leafpad pacman -S gtkperf # Ejecutar desde terminal como: gtkperf -a • Cliente VNC: • Cliente VNC para GNOME: • Cliente de escritorio remoto multiprotocolo(RDP, VNC, XDMCP): • Suit de ofimática Libreoffice: • Herramienta de cálculo genius: # • Utilidad para ejecutar aplicaciones de escritorio que necesiten pivilegios de root: # pacman -S gtk-vnc # pacman -S vinagre # pacman -S remmina # pacman -S libreoffice pacman -S genius # pacman -S gksu Algunas aplicaciones no aparecen en el menú de inicio, se deven invocar desde la linea de comandos, para saber el comando busco los ficheros que integran el paquete y los ficheros ejecutables se ubicaran bajo /usr/bin: # pacman -Ql gtk-vnc | less Ya sé que el comando es gvncviewer. Las aplicaciones para GNOME funcionan en LXDE sin problemas, por lo menos la mayoría. Si hemos instalado el driver propietario de Nvidia se habrá instalado un programa de administración de la tarjeta gráfica llamado nvidia-settings. Para volverlo a reinstalar: # pacman -S nvidia-settings