Un po' di storia X nasce nel 1984 al Massachusetts Institute of Technology da una collaborazione tra Jim Gettys dell'athena Project e Bob Scheifler del MIT Laboratory for Computer Science, per uniformare la gestione alla grafica tra diversi sistemi Unix Nel settembre 87 viene rilasciata la prima versione di X11, la versione del protocollo ancora in uso. Gennaio 88,viene creato il MIT X Consortium, in febbraio viene rilasciato X11R2. Ottobre 88, X11R3, viene rilasciato XDM. 1993, il controllo passa a X Consortium Maggio 94, X11R6 (la versione attuale), nasce Xfree86. 1997, nasce The Open Group 1999, The Open Group crea la X Org Foundation Nel gennaio 2004, in risposta all'introduzione di licenze non libere in Xfree86, X.Org Foundation decide di creare un fork di Xfree86. Ad aprile esce il primo rilascio di X.Org. In breve tempo le maggiori distribuzioni abbandonano Xfree86 per X.Org. 1
La struttura di X Con X si parla di client e server. Il server X e' il programma che interfaccia le varie periferiche (mouse, tastiera, schermo), i client sono le singole applicazioni grafiche che ne fanno uso. E' possibile, come per altri protocolli, che client e server 'girino' su macchine diverse e comunichino attraverso la rete. Un singolo computer puo' ospitare piu' X server, gestendo quindi piu' postazioni grafiche. Il server X fornisce solo primitive grafiche di basso livello, cioe' non determina l'aspetto di quello che appare sullo schermo. Questo dipende dai client e da programmi specializzati chiamati Window Manager che gestiscono l'apparenza e la funzionalita' delle finestre. 2
Display e schermi All'interno di un elaboratore possono funzionare teoricamente più serveri grafici per controllare altrettante stazioni grafiche di lavoro. Inoltre, sempre teoricamente, una stazione grafica può utilizzare più di uno schermo grafico contemporaneamente. Nel gergo di X la stazione grafica è il display, che viene identificato da un numero a partire da zero, nella forma :n. Se una stazione grafica è dotata di più di uno schermo, quando si deve fare riferimento a uno di questi occorre aggiungere all'indicazione del numero della stazione grafica quello dello schermo. Anche in questo caso, il primo corrisponde a zero. La forma diventa quindi :n.m, dove n è la stazione grafica e m è lo schermo. La figura dovrebbe chiarire il meccanismo. Il valore predefinito di stazione grafica e schermo è zero, per cui, quando non si specificano queste informazioni, si intende implicitamente lo schermo :0.0. 3
L'avvio di X Startx Quando il computer e' configurato per fare il login in modalita' testo, e' abitualmente presente uno script chiamato startx che si occupa di avviare l'ambiente grafico. Il Display Manager Il sistema puo' essere configurato, tramite gli scripts di init, per avviare un programma chiamato display manager, che si occupa di inizializzare il display e gestire il login in modalita' grafica, quindi iniziare una sessione di lavoro. Al termine della sessione, il controllo torna al display manager. Tra i piu' comuni display manager in ambiente Linux abbiamo xdm, gdm e kdm. Il primo e' il piu' semplice, ed e' fornito con X, gli altri fanno parte rispettivamente dei progetti Gnome e KDE, e contengono molte funzionalita' aggiuntive. 4
Il window manager Il window manager e' il programma che si occupa di far si che le finestre create dalle varie applicazioni abbiano tutte la stessa funzionalita' (menu, bottoni per iconizzare, massimizzare, chiudere), e di fornire un sistema di menu per il lancio delle applicazioni. Senza di esso e' comunque possibile usare X, ma l'interfaccia che ci si puo' aspettare e' veramente spartana (vedi immagine). Esistono moltissimi window managers. La loro scelta e' dettata dai gusti personali, ed eventualmente dal fatto che un window manager piu' leggero puo' rendere molto piu' utilizzabile un computer non proprio recentissimo. Tra i wm piu' diffusi ricordiamo: twm, fvwm, wmaker, blackbox, enlightment, xfce, etc... Se si utilizza un Desktop Environment, generalmente viene utilizzato il wm fornito con questo ambiente. 5
Il Desktop Environment Il Desktop Environment e' un insieme di programmi che realizza un'implementazione della famosa metafora della scrivania, sviluppata originariamente dalla Xerox e ormai adottata praticamente da tutti i sistemi operativi commerciali e non. Tralasciando quelli 'storici' come OpenLook della Sun e CDE, al momento le scelte piu' diffuse su Linux sono 2, Gnome e KDE. 6
Alcuni files importanti Il file di configurazione /etc/x11/xorg.conf (XF86Config-4 per Xfree86 versione 4) contiene tutte le informazioni di configurazione per le periferiche gestite dal server X. Questo file viene scritto dal programma di configurazione di X, ma puo' capitare di doverlo modificare a mano. Nelle distribuzioni piu' recenti la configurazione e' spesso automatica, in altri casi puo' essere necessario conoscere la configurazione esatta del proprio hardware. Il file di configurazione di X è diviso in sezioni (quelle normalmente presenti sono: Files, ServerFlags, InputDevice, Monitor, Device, Screen), la cui sintassi ad esempio puo' essere: Section "Device" Identifier "Standard VESA" Driver "vesa" EndSection Il file /var/log/xorg.0.log (Xfree86.0.log per Xfree86) e' ovviamente il file di log del server X. Se il server non si dovesse avviare, e' spesso utile consultarlo per individuare la causa del problema. Il file /etc/x11/xinit/xinitrc e' il file di inizializzazione di X, qui ad esempio si possono specificare dei programmi da avviare automaticamente. Il file.xinitrc nella home di un utente ha la stessa funzione, ovviamente limitatamente a quell'utente. 7
Uso delle periferiche Installando un moderno desktop grafico come Gnome e KDE, la gestione delle periferiche (mount) viene spesso affidata al sistema di Hotplug, che si occupa di riconoscere automaticamente l'inserimento di Cdrom, penne USB, etc, e di far comparire un icona associata ad essi, resta comunque all'utente il compito di provvedere all smontaggio (umount) del dispositivo prima della sua rimozione fisica, e questo con un menu associato all'icona del dispositivo. Anche in mancanza del sistema di Hotplug, e' comunque possibile creare delle icone a cui e' associato un menu contenenti i comandi necessari al montaggio e allo smontaggio dei dispositivi. 8
Scorciatoie di tastiera Alcune delle piu' comuni scorciatoie di tastiera: Ctrl-Alt-Del causa il riavvio del sistema (questo anche lavorando in modalita' testo) Ctrl-Alt-Backspace Uccide la sessione X e torna al prompt (se X e' stato avviato da prompt (altrimenti ne causa il riavvio) Ctrl-Alt-+ e - cambiano la risoluzione video, ciclando tra quelle definite nel file di configurazione di X Ctrl-Alt-numero (Alt-Numero in una sessione testuale) Cambia sessione. Con molte distribuzioni, le sessioni da 1 a 6 sono console testuali, la 7 e' quella grafica Alt-Tab Cambia l'applicazione attiva. Alt-F4 Chiude l'applicazione attiva 9
Usare X senza il mouse In mancanza di un mouse, e' possibile controllare il puntatore usando il tastierino numerico. Questa modalità richiede che NON sia presente nel file di configurazione (o sia commentata) l'opzione XkbDisable e viene attivata e disattivata con Ctrl-Shift- BlocNum. 10
Bibliografia Wikipedia: http://en.wikipedia.org/wiki/x_window_system Xfree86: http://www.xfree86.org X.Org: http://www.x.org/ KDE: http://www.kde.org GNOME: http://www.gnome.org/ GNU: http://www.gnu.org/philosophy/x.html Appunti di informatica libera: http://a2.swlibero.org 11