Diferència entre revisions de la pàgina «Exercici X Windows»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 1: Línia 1:
Abans de fer aquest exercici cal que llegiu els articles de teoria de la Wikipedia.
+
X-Windows és un sistema gràfic ideat durant els anys 80 per màquines Unix. Té una arquitectura client-servidor nativa per facilitar l'execució de processos i visualitzacions en màquines diferents.
  
X-Winodows, al ser un sistema amb clara separació del client i <u>servidor gràfic</u> (X-Windows server) ens permet fer funcions ben diferents que no permeten altres arquitectures com W32:
+
Per exemple, per poder executar programes en una màquina remota i visualitzar-la a la nostra, es pot fer a través de la senzilla funció:
 +
$ ssh -X usuari@maquina
 +
 
 +
El paràmetre "-X" fa que es crei un túnel SSH entre les 2 màquines per transferir la informació de les X-Windows (protegida). Si voleu examinar què fa de difernt podeu fer un cop d'ull a la variable d'entorn DISPLAY:
 +
$ echo $DISPLAY
 +
 
 +
això ens dirà on s'executaran les aplicacions que requereixin interfície de X-Windows. Normalment els displays locals son ":0" o ":1", però en remot apareixen altres ports on s'ha creat el túnel (ho gestiona el propi SSH, no cal que fem res).
 +
 
 +
 
 +
== Teoria X-Windows ==
 +
Les X-Windows estan totalment pensat amb una arquitectura client-servidor, pel que aïlla la part gràfica de cada aplicació de la part de procés (càlcul, accés a disc, dur, xarxa, etc.). AL TANTO que la denominació "X-server" i "X-client" pot confondre fàcilment:
 +
* El '''X-server''' controla el hardware de la targeta gràfica i el teclat i ratolí. La màquina X-server executa la part gràfica i per tant rep ordres del X-client del tipus "pinta una ratlla aquí" o "fes un quadrat blau allà".
 +
* El '''X-client''' és la màquina on l'aplicació de procés funciona. Al tanto perquè normalment sol ser el "servidor" de dades corporatiu o similar, i en canvi des del punt de vista de les X és el client.
 +
 
 +
X-Winodows, al ser un sistema amb clara separació del client i <u>servidor gràfic</u> (X-Windows server) ens permet fer funcions ben diferents que no permeten altres arquitectures monolítiques com W32:
 
* Executar aplicacions remotament en la nostra pantalla local.
 
* Executar aplicacions remotament en la nostra pantalla local.
* Executar aplicacions corrents en una màquina qualsevol sobre altres displays.
+
* Executar aplicacions executant-se en una màquina sobre displays d'altres màquines.
 +
* Iniciar sessions d'escriptori remot de manera nativa.
  
 +
Característiques d'aquesta arquitectura:
 +
* Un punt menys de velocitat ja que l'estructura client-servidor (i més si hi ha xarxa entremig) és més complexa.
 +
* Alliberació de les tasques gràfiques en el X-client, que sol ser el servidor central de dades. Això atorga més capacitat de càlcul al servidor de procés.
 +
* Sistema més estable a l'aïllar la part gràfica on se solen donar molts errors d'execució. Si hi ha un problema, l'aplicació gràfica no s'executa en mode kernel sinó en mode usuari i no penja tota la màquina.
  
Per exemple, per poder executar programes en una màquina remota i visualitzar-la a la nostra, es pot fer a través de la senzilla funció:
+
Altres arquitectures com W32 són monolítiques (un sol bloc) i no estan pensades com a client-servidor. Les característiques de les arquitectures monolítiques son:
$ ssh -X usuari@maquina
+
* Un mica més de velocitat d'execució (o millor ''performance'').
 +
* Més inestabilitat al sistema a l'executar-se la part gràfica dins el kernel (la màquina es penja amb més facilitat).
  
 +
Cal que llegiu aquests articles de la Wikipèdia:
 +
* [http://en.wikipedia.org/wiki/X_Window_System Sistema X-Windows]. Aquest article té una versió raonable en espanyol.
 +
* [http://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture Arquitectura X-Windows]. Aquest article no té cap versió traduïda de qualitat suficient.
  
 +
<br>
 
== Exercicis Xorg ==
 
== Exercicis Xorg ==
 
El realitzarem amb una màquina tipus Ubuntu Server, és a dir, sense cap interfície gràfica (FUNKYSERVER). '''Comenceu amb una instal·lació neta del funkyserver.'''
 
El realitzarem amb una màquina tipus Ubuntu Server, és a dir, sense cap interfície gràfica (FUNKYSERVER). '''Comenceu amb una instal·lació neta del funkyserver.'''

Revisió del 08:03, 17 abr 2012

X-Windows és un sistema gràfic ideat durant els anys 80 per màquines Unix. Té una arquitectura client-servidor nativa per facilitar l'execució de processos i visualitzacions en màquines diferents.

Per exemple, per poder executar programes en una màquina remota i visualitzar-la a la nostra, es pot fer a través de la senzilla funció:

$ ssh -X usuari@maquina

El paràmetre "-X" fa que es crei un túnel SSH entre les 2 màquines per transferir la informació de les X-Windows (protegida). Si voleu examinar què fa de difernt podeu fer un cop d'ull a la variable d'entorn DISPLAY:

$ echo $DISPLAY

això ens dirà on s'executaran les aplicacions que requereixin interfície de X-Windows. Normalment els displays locals son ":0" o ":1", però en remot apareixen altres ports on s'ha creat el túnel (ho gestiona el propi SSH, no cal que fem res).


Teoria X-Windows

Les X-Windows estan totalment pensat amb una arquitectura client-servidor, pel que aïlla la part gràfica de cada aplicació de la part de procés (càlcul, accés a disc, dur, xarxa, etc.). AL TANTO que la denominació "X-server" i "X-client" pot confondre fàcilment:

  • El X-server controla el hardware de la targeta gràfica i el teclat i ratolí. La màquina X-server executa la part gràfica i per tant rep ordres del X-client del tipus "pinta una ratlla aquí" o "fes un quadrat blau allà".
  • El X-client és la màquina on l'aplicació de procés funciona. Al tanto perquè normalment sol ser el "servidor" de dades corporatiu o similar, i en canvi des del punt de vista de les X és el client.

X-Winodows, al ser un sistema amb clara separació del client i servidor gràfic (X-Windows server) ens permet fer funcions ben diferents que no permeten altres arquitectures monolítiques com W32:

  • Executar aplicacions remotament en la nostra pantalla local.
  • Executar aplicacions executant-se en una màquina sobre displays d'altres màquines.
  • Iniciar sessions d'escriptori remot de manera nativa.

Característiques d'aquesta arquitectura:

  • Un punt menys de velocitat ja que l'estructura client-servidor (i més si hi ha xarxa entremig) és més complexa.
  • Alliberació de les tasques gràfiques en el X-client, que sol ser el servidor central de dades. Això atorga més capacitat de càlcul al servidor de procés.
  • Sistema més estable a l'aïllar la part gràfica on se solen donar molts errors d'execució. Si hi ha un problema, l'aplicació gràfica no s'executa en mode kernel sinó en mode usuari i no penja tota la màquina.

Altres arquitectures com W32 són monolítiques (un sol bloc) i no estan pensades com a client-servidor. Les característiques de les arquitectures monolítiques son:

  • Un mica més de velocitat d'execució (o millor performance).
  • Més inestabilitat al sistema a l'executar-se la part gràfica dins el kernel (la màquina es penja amb més facilitat).

Cal que llegiu aquests articles de la Wikipèdia:


Exercicis Xorg

El realitzarem amb una màquina tipus Ubuntu Server, és a dir, sense cap interfície gràfica (FUNKYSERVER). Comenceu amb una instal·lació neta del funkyserver.

IMPORTANT: Respon a les preguntes que es formulen a la pràctica i fes pantallades de cada apartat.

  1. Esbrina la comanda adequada per veure quant espai de disc dur està en us. Quant s'utilitza en una instal·lació bàsica de Ubuntu Server?
  2. Esbrineu quin paquet cal instal·lar en una màquina sense interfície (funkyserver) per aconseguir una execució remota de la típica aplicació XEYES. Pista: intenta instal·lar xeyes aviam què et suggereix fer.
    Respon (mirant la sortida del apt-get):
    • Quants paquets et demana instal·lar?
    • Quant espai de disc dur requereixen?
  3. Prova de llançar remotament altres aplicacions com xcalc o xterm. Pots assegurar a simple vista que s'estan executant en el funkyserver?
  4. Instal·la les xorg bàsiques.
    • Quin espai de disc dur ocuparan segons el apt-get?
    • Com s'ha d'iniciar la sessió X des de la consola de la pròpia màquina?
    • Executa xeyes localment i examina com es comporta. Com l'apagues i segueixes treballant amb la consola?
    • A quina consola virtual creus que estàs? Comprova-ho canviant de consola virtual.
    • Quina és la consola gràfica per defecte?
  5. Executa la següent comanda i comenta què creus que deu ser cadascun dels processos que apareixen:
    $ ps -ef | grep X
  6. Com pots aturar la consola gràfica creada? Busca dues maneres de fer-ho.
  7. Busca com executar REMOTAMENT una aplicació senzilla (xeyes, xlogo, xcalc) al funkyserver i que la interfície també aparegui en el propi funkyserver (caldrà que hagis arrencat les X prèviament).


Gestors d'escriptoris

A part de les xorg bàsiques cal que instal·lem el gestor d'escriptori si volem una màquina gràfica amb funcionalitat complerta. Provarem els diferents escriptoris per veure les seves diferències.

Abans de començar modifiqueu la màquina virtual per executar-se amb 1 GB de RAM.

De cadascun dels escriptoris treballats cal que:

  • Prengus nota de quant ocupen en el disc dur.
  • Agafis una pantallada.
  • Examinis les seves principals característiques.
  • Esbrina quina quantitat de RAM hi ha disponible només arrencar l'escriptori.

Els escriptoris a provar son:

  • LXDE
  • XFCE
  • KDE
  • Gnome
  • Unity


Consoles gràfiques

Busca com crear una segona consola gràfica sobre la teva màquina. Com canvies entre les diferents consoles virtuals?

La comanda serà una variant de xinit amb algun paràmetre per que s'obri en el display :1 enlloc del display :0

Quins números de consoles gràfiques són el DISPLAY :0 i el DISPLAY :1 ?

Desktop Manager i connexió remota X-windows amb XDMCP

Els Desktop Managers son un servei del sistema que facilita l'inici de sessió (login) de forma gràfica. Cada escriptori té els seu Desktop Manager, com per exemple:

  • Xorg: XDM (és el més bàsic)
  • Gnome: GDM (Gnome Desktop Manager)
  • LXDE: LXDM
  • KDE: KDM
  • Unity: LightDM

Recordeu que al ser un servei cal gestionar-lo amb la comanda:

$ sudo service gdm {start|stop|restart}

Podeu tenir un Desktop qualsevol amb un Desktop Manager diferent, per exemeple, podeu tenir el LXDE amb el XDM. Per canviar de Desktop Manager per defecte només cal que reconfigureu algun dels paquets, per exemple:

$ sudo dpkg-reconfigure xdm

...i us deixarà triar amb quin DM començar les sessions.

En els següents exercicis es tracta de realitzar allò pel què s'han pensat les X-Windows: obrir una sessió remota des d'una altra màquina. Per poder fer això cal tenir un Desktop Manager i activar la sessió remota a través de 'XDMCP (X-Windows Desktop Manager Control Protocol).

Podeu mirar aquí per saber més del XDMCP (HOWTO). També XDMCP a la Wikipèdia en anglès o en castellà.

Per realitzar la connexió cal reconfigurar el vostre DM triat i activar el XDMCP. Podeu consultar aquest HOWTO. No us espanteu per l'article que és molt llarg, només cal tocar un parell de línies dels arxius de conf:

  • Si utilitzeu XDM aneu al punt 2.6 apartat 2 i 3 (calen els 2!!)
  • Si utilitzeu GDM aneu al punt 2.6 apartat 4


Exercici

Utilitza la màquina amfitriona per connectar-te remotament a la màquina virtual (hauràs d'obrir la sessió X en una segona consola gràfica com has fet a l'exercici anterior).

La comanda per obrir una sessió X sobre una altra màquina remota és la següent (xinit afegint el paràmetre -query <ip>). Abans, però, llegiu com habilitar el XDMCP del Display Manager per que la màquina accepti la connexió.

$ xinit (...algunes opcions per obrir un 2n terminal gràfic...) -query <ip_del_xserver>