PREV
Capitolo 5 - Configurazione della Rete
NEXT
Capitolo 7 - Sequenza di Boot

Torna all'indice

Capitolo 6. Il Sistema X Window

Il sistema X Window e' l'interfaccia grafica (GUI) di tutte le piattaforme UNIX, Linux compreso. A differenza di Windows e MacOS, in Linux e Unix l'interfaccia grafica e' separata dal resto del sistema. Cio' conduce ad una maggiore stabilita': il crash dell'interfaccia grafica non provoca il malfunzionamento dell'intero sistema.

Un problema di X e' che, storicamente, e' sempre stato abbastanza difficile da configurare. Tuttavia, a partire dalla Slackware 7, e' stato introdotto un X che non richiede alcuna configurazione e che usa il driver framebuffer. Cio' significa che non si e' obbligati a seguire le procedure descritte alla sezione "xf86config" ne' quelle alla sezione "XF86Setup". Il framebuffer funziona con qualunque scheda compatibile VESA 2.0: praticamente tutte le schede video moderne sono in grado di funzionare sotto X. Tuttavia, la configurazione in framebuffer e' notevolmente piu' lenta rispetto ad una appositamente creata per il proprio sistema.

Nel caso si decida di utilizzare il server framebuffer, si deve installare il pacchetto xxfb.tgz dalla serie X. E' consigliato anche scegliere una risoluzione per la console durante la fase di configurazione. Il valore proposto e' probabilmente il migliore nella maggior parte dei casi.

Se si sceglie di configurare X per il proprio sistema, seguire le istruzioni contenute nella sezione "xf86config" oppure quelle della sezione "XF86Setup". La prima descrive l'uso di xf86config(1), un programma di configurazione a linea di comando. La seconda descrive XF86Setup(1), una versione grafica dello stesso programma di configurazione.


top

Torna all'indice

xf86config

xf86config e' uno dei due programmi che si possono usare per configurare X sul proprio sistema. Il funzionamento di base e' molto semplice: vengono poste una serie di domande, con risposte multiple. Scegliere la risposta che piu' si avvicina alla configurazione del sistema.Una volta terminate le domande, verra' scritto il file /etc/XF86Config(5) e si e' pronti ad usare X. Se, in ogni momento, si commette un errore basta terminare il programma usando control-c e ricominciare da capo.

E' utile avere a portata di mano quante piu' informazioni possibili sul proprio monitor e sulla scheda video prima di lanciare xf86config. Si possono ottenere le informazioni in questione usando il programma SuperProbe:

# SuperProbe

Si verra' avvertiti sulla possibilita' di un blocco del sistema. Se si e' preoccupati, e' possibile interrompere il processo premendo control-c prima che scadano i cinque secondi a disposizione. Altrimenti, si otterra' alcune informazioni sulla configurazione del proprio sistema video:

        First video: Super-VGA
        Chipset: ATI 264GT3 (3D Rage Pro) (Port Probed)
        Memory: 4096 Kbytes
        RAMDAC: ATI Mach64 integrated 15/16/24/32-bit 
                DAC w/ clock
                (with 8-bit wide lookup tables)
                (programmable for 6/8-bit wide lookup tables)
        Attached graphics coprocessor:
                Chipset: ATI Mach64
                Memory: 4096 Kbytes

Queste sono le informazioni riportate in relazione a una scheda video ATI Rage Pro. Annotarsi le informazioni ricavate, oppure passare ad un'altra console virtuale (usando la combinazione alt-tasti funzione) e lanciare da li' xf86config. Le informazioni sulla scheda video serviranno piu' tardi. xf86config deve essere lanciato da root, poiche' va a scrivere file e link simbolici in punti dove solo a root e' permesso farlo:

# xf86config

Una volta lanciato xf86config, si presentera' una schermata di testo che informa su cosa sta per fare il programma. Da ricordare: non c'e' modo di tornare indietro se si sbaglia, per cui si faccia molta attenzione prima di fornire una risposta. In caso contrario, ci si potrebbe trovare a ripetere la procedura piu' volte. Premete invio, come da istruzioni.

Protocollo del mouse

Si scelga il proprio tipo di mouse dalla lista. Oggi, la maggior parte dei mouse e' di tipo PS/2 oppure Microsoft Intellimouse. I mouse piu' vecchi richiederanno, probabilmente, la selezione di una voce diversa.

Emulazione del terzo tasto

Se si ha un mouse con solo due tasti, e' possibile simulare il terzo tasto. La pressione simultanea dei tasti destro e sinistro sara' interpretata come la pressione del terzo tasto. Poiche' molti programmi fanno uso del terzo tasto, si consiglia di abilitare questa funzione. Possedendo un mouse con tre tasti, questa impostazione verra' ignorata.

Nome del dispositivo del mouse

Normalmente, e' sufficiente accettare l'impostazione predefinita, /dev/mouse. Tuttavia, se il proprio mouse si collega a qualche porta particolare, probabilmente si dovra' effettuare una scelta diversa. Per la maggior parte dei mouse seriali e PS/2 questa impostazione funziona senza problemi.

Estensioni XKEYBOARD

Con ogni probabilita', si vorra'usare le estensioni alla tastiera di X. Non usarle provoca comportamenti inusuali dei tasti Indietro e Canc. Abilitandole, i tasti lavoreranno nel modo consueto.

Collegamenti tramite tasti alt

Nel caso si abbia bisogno di digitare caratteri appartenenti ad altre lingue, si dovra' abilitare i collegamenti tramite i tasti alt.

Sincronia orizzontale

Questa e' la prima delle domande relative al monitor, ed e' molto importante fornire risposte il piu' possibile aderenti alla realta'. Non selezionare un intervallo di frequenza al di fuori delle specifiche del proprio monitor. Ha poca importanza nel caso dei monitor nuovi, che sono dotati di meccanismi di protezione nel caso si tenti di farli lavorare a frequenze fuori specifica, ma i monitor piu' vecchi potrebbero rimanere danneggiati. In caso di dubbi, selezionare un intervallo sicuramente supportato.

Sarebbe ideale avere sottomano la documentazione del monitor mentre si risponde alle domande. Per la maggior parte dei monitor nuovi, si puo' selezionare 31.5-48.5 oppure 31.5 - 57.0. Coloro dotati di monitor di altissima qualita' possono selezionare frequenze superiori. In alternativa, nel caso in cui nessuno degli intervalli elencati sia adatto, si puo' fornire il proprio.

Sincronia verticale

Ancora una volta, si ha bisogno di conoscere le specifiche del monitor per poter rispondere alla domanda. Si hanno dei dubbi? Si scelga allora un intervallo piu' ristretto. Normalmente, 50-90 o 50-100 sono scelte sicure.Se non si trova un intervallo adatto, si puo' fornirlo direttamente.

Etichette di identificazione

Si presentano ora tre domande relative all' identificazione del proprio monitor. Le risposte non hanno particolare importanza, si puo' semplicemente premere invio oppure rinominarle a piacimento. Queste etichette verranno usate in seguito, nel file di configurazione, per identificare il monitor.

Database delle schede video

La prossima fase della configurazione di X e' molto importante e riguarda la scheda video. Si avra' bisogno della documentazione della scheda e dei risultati del comando SuperProbe.E' consigliabile rispondere si' alla domanda e sfogliare il database delle schede video, in modo da poter selezionare quella in proprio possesso.Premendo invio si salta questa sezione per passare a quella successiva.

Ci sono piu' di 800 schede nel database. La colonna di sinistra contiene un numero per ogni scheda e il nome della stessa. La colonna di destra contiene il chipset impiegato dalla scheda. Si prema invio finche' non si trova la propria scheda video. Quando si e' trovata, si inserisca il numero corrispondente e premere nuovamente invio. Se non si e' a conoscenza del tipo di scheda video, ci sono diverse possibilita'. In primo luogo, si puo' guardare che tipo di chipset riporta SuperProbe e cercare una scheda che impieghi questo chipset nel database. Oppure, si puo' scegliere di impiegare una generica scheda SVGA.Molte schede per le quali non e' disponibile un server specifico sono supportate attraverso il server SVGA, per cui, normalmente, questa scelta si puo' considerare sicura.

Dopo aver selezionato una scheda, verranno fornite ulteriori informazioni sulla stessa. Seguendo l'esempio della ATI Rage Pro riportato sopra, si dovrebbe vedere qualcosa di simile a questo:

Your selected card definition:
Identifier: ATI Mach64
Chipset: ATI-Mach64
Server: XF86_Mach64
Do NOT probe clocks or use any Clocks line.

A questo punto, controllare di aver installato il server giusto, altrimenti non si sara' in grado di far partire X. Il server XF86_Mach64 (quello giusto per il nostro esempio) e' contenuto nel pacchetto xma64.tgz.

Quale server usare?

La prossima domanda presenta la lista di tutti i server che e' possibile impiegare. Se si e' selezionato correttamente la scheda video, si puo' semplicemente premere invio. In questo modo, X utilizzera' il server specificato per quella scheda. Altrimenti, si puo' scegliere di usare il server Mono, quello VGA, quello SVGA oppure uno dei server con supporto per l'accelerazione. La scelta migliore e', comunque, usare il server indicato per la scheda.

Impostazione del link simbolico

Scegliere si' per impostare il link simbolico, che creera' un'associazionecon il giusto server.

Memoria video

Selezionate la quantita' di memoria di cui e' dotata la propria scheda video. Ancora una volta, si puo' ricavare questa informazione dai risultati di SuperProbe. Se nessuna delle scelte e' appropriata, scegliere "Other" e impostare direttamente il valore. Assicurarsi che lo stesso sia espresso in kilobytes.

Etichette di identificazione

Viene ora richiesto di inserire altre tre stringhe di identificazione per la scheda video. Come nel caso del monitor, si puo' semplicemente premere invio per tutte e tre, a meno che non si voglia specificare il nome della scheda.

RAMDAC

Si ha bisogno di scegliere un'impostazione per il RAMDAC solo se si e' scelto di usare il server S3, AGX, oppure W32. SuperProbe fornira' il tipo di chip RAMDAC presente sulla propria scheda. Sfogliare la lista fino al chip corretto e inserire il numero corrispondente. Se non si sta usando il server S3, AGX o W32, premete "q" per continuare senza selezionare un RAMDAC.

Impostazione del Clockchip

Se la propria scheda e' dotata di clockchip programmabile, si vorra' selezionarlo dalla lista seguente. Ricordarsi che la maggioranza delle schede non e' dotata di clockchip, quindi dovrebbe essere sufficiente premere invio. SuperProbe dira' se la scheda e' dotata di clockchip.

Linea di clock

Nella prossima schermata viene spiegato che cos'e' una linea di clock. Nella maggior parte delle schede moderne non vi sara' bisogno di usarla. Si potra' scegliere di testare la propria scheda per quanto riguarda il clock, inoltre il programma specifichera' se ha bisogno o no di effettuare il test. Nel caso della scheda ATI, il responso di xf86config sara':

The card definitions says to NOT probe clocks.

Se viene riportato qualcosa di simile, scegliere "n" per proseguire. Le schede video molto vecchie avranno bisogno di essere testate; in ogni caso, si verra' guidati da xf86config.

Modalita' video

E' tempo di selezionare le modalita' video che saranno utilizzate da X. Ci sono quattro diverse profondita' di colore - 8bpp, 16bpp, 24bpp e 32bpp. Ad ognuna di esse e' associata una lista delle varie modalita' video che e' possibile impostare. Quando si avvia X, esso si scegliera' una profondita' di colore predefinita e verra' impiegata la prima risoluzione disponibile. Se si desidera che X si avvii con una risoluzione diversa e' il momento giusto per configurarla.

Se l'ordine proposto e' corretto, selezionare "OK" e proseguire nella configurazione. Altrimenti, selezionare la profondita' di colore che si desidera cambiare. Ad esempio, supponiamo che siano presenti le seguenti opzioni:

"640x480" "800x600" "1024x768" "1280x1024" for 8bpp
"640x480" "800x600" "1024x768" "1280x1024" for 16bpp
"640x480" "800x600" "1024x768" "1280x1024" for 24bpp
"640x480" "800x600" "1024x768" for 32bpp

Si desidera far partire X a una risoluzione diversa: per prima cosa selezionare la profondita' di colore da cambiare, poi seguire le indicazioni fornite da xf86config. Si dovra' inserire le cifre corrispondenti all'ordine delle risoluzioni desiderato. Ad esempio, volendo semplicemente invertire l'ordine, si inserisca quanto segue:

Which modes? 5432

Allo stesso modo, si potra' eliminare delle risoluzioni. Se la propria scheda video non puo' operare a 1280x1024, non c'e' ragione per provare a farlo. Per rimuovere l'impostazione rispondere come segue:

Which modes? 432

Dopo aver selezionato le modalita' per una certa profondita' di colore, si potra' scegliere se impostare uno schermo virtuale. Questo non e' altro che uno schermo di grandezza superiore rispetto al monitor: muovendo il mouse lo schermo scorrera' fino a raggiungimento del bordo. Cio' permette di tenere aperto un maggior numero di finestre. Lo schermo virtuale puo' anche essere fastidioso, poiché impedisce di vedere tutto in una sola volta. Tuttavia, e' una cosa interessante con cui sperimentare, per cui si potrebbe volerlo provare.

A questo punto, si verra' riportati alla lista delle modalita' video. Dopo aver modificato le modalita' per la profondita' di colore 24bpp si avra' una schermata cosi':

"640x480" "800x600" "1024x768" "1280x1024" for 8bpp
"640x480" "800x600" "1024x768" "1280x1024" for 16bpp
"1280x1024" "1024x768" "800x600" "640x480" for 24bpp
"640x480" "800x600" "1024x768" for 32bpp

Si continui a modificare le modalita' video fin quando non si e' soddisfatti. Una volta terminato selezionare "OK" per continuare.

Scrivere il file di configurazione

A questo punto, la configurazione di X e' completata. xf86config chiedera' se deve scrivere il file di configurazione in /etc/XF86Config. Questo e' il luogo in cui X cerchera' la configurazione all'avvio, per cui rispondete "y2 alla domanda.

Supponendo che si e' risposto correttamente a tutte le domande e che e' stato installato il pacchetto del server, si dovrebbe essere in grado di far partire X con il seguente comando:

$ startx

Se e' stato installato KDE o GNOME, dovrebbe partire uno dei due automaticamente. Altrimenti, lanciare xwmconfig e selezionare il gestore di finestre che si desidera come predefinito. I gestori di finestre saranno descritti piu' avanti in questo capitolo. xwmconfig imposta il gestore di finestre predefinito solamente per l'utente che lo esegue. Se si hanno piu' di un utente sul sistema, ognuno di essi dovra' eseguire il programma per selezionare il proprio gestore di finestre preferito.

Ci sono alcune speciali combinazioni di tasti che possono tornare utili durante l'utilizzo di X. Se, ad un certo punto, si ha bisogno di uscire da X ma risulta impossibile chiuderlo normalmente, premendo control-alt-backspace verra' forzata l'uscita e si potra' tornare al prompt dei comandi. Mentre X e' in esecuzione premendo control-alt-tasto-funzione (in maniera analoga al cambio di console) si e' in grado di tornare al promt dei comandi. La sessione X e' in esecuzione sul terminale 7. Infine, e' possibile cambiare modalita' video mentre X e' in esecuzione: premendo control-alt- + (sul tastierino numerico) per impostare la modalita' immediatamente superiore, mentre control-alt- - per quella inferiore.


top

Torna all'indice

XF86Setup

Il secondo modo per configurare X Window e' usare XF86Setup, un programma di configurazione grafico che fa parte del pacchetto xset.tgz. Si avra' bisogno di installare anche il pacchetto xvg16.tgz.

Per lanciare XF86Setup, si effettui il login come root e digitare:

# XF86Setup

Se esiste gia' il file /etc/XF86Config (perché X e' gia' stato configurato), si puo' scegliere di usare le impostazioni correnti come default. Altrimenti, il programma partira' direttamente in modalita' grafica.

Figura 6-1. La schermata iniziale di XF86Setup.

XF86Setup e' molto simile a xf86config. Pone le stesse domande, ma le presenta con un'interfaccia grafica. Se si hanno dubbi sul significato di una domanda, si faccia riferimento alla sezione precedente. XF86Setup stesso fornisce aiuto, quindi non si dovrebbero incontrare particolari difficolta'.

File di configurazione della sessione.

xinitrc e ~/.xinitrc

Il programma che si occupa di far partire X e' xinit(1); essendo lanciato da startx(1) si potrebbe non averlo notato (e probabilmente non se ne ha nemmeno bisogno). Tuttavia, il suo file di configurazione determina quali programmi (in particolare, il gestore di finestre) vengono lanciati all'avvio di X. Per prima cosa, xinit controlla se esiste un file .xinitrc nella home directory. Se esiste, viene eseguito, altrimenti viene usato quello predefinito, che si trova in /var/X11R6/lib/xinit/xinitrc. Ecco un semplice file xinitrc:

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi

# Start the window manager:
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

I blocchi "if" servono ad includere le impostazioni presenti in altri files. Si arrivera' a .Xresources tra un momento, ma verra' trascurato .Xmodmap. La parte interessante di questo file e' quella finale, dove vengono lanciati diversi programmi. La sessione X inizia con il gestore di finestre twm(1), l'orologio e tre terminali. Da notare l'ultima exec che precede l'istanza di xterm. Esso serve a rimpiazzare la shell attuale (quella che sta eseguendo lo script xinitrc) con quel comando xterm(1). Quando l'utente chiude xterm, la sessione X ha termine.

Per personalizzare l'avvio di X, si copi il file /var/X11R6/lib/xinit/xinitrc come ~/.xinitrc modificarlo rimpiazzando a piacimento le suddette linee. La fine del mio e' piuttosto semplice:

# Start the window manager:
exec startkde

Notare che ci sono diversi file xinitrc.* nella directory /var/X11R6/lib/xinit, che corrispondono ai vari gestori di finestre e interfacce grafiche. Si possono usare a secondo della preferenza.

.Xresources e .Xdefaults

Molti programmi X usano un sistema chiamato X Resource Database per impostare le preferenze dell'utente (caratteri, colori, etc.). Questo database viene mantenuto attraverso il programma xrdb(1), che probabilmente non si avra' mai bisogno di lanciare manualmente. In Slackware, esso viene invocato da xinitrc. Il file da cui xrdb(1) legge le opzioni e' .Xresources. xrdb carica anche .Xdefaults, per cui uno qualunque dei due funzionera'. Un file .Xresources minimale appare cosi':

xterm*background: black
xterm*foreground: gray
xterm*scrollBar: true
wxterm*font: -*-lucidatypewriter-*-r-*-*-15-*-*-*-*-*-*-*

Queste quattro linee specificano delle opzioni di configurazione per il programma xterm. Una risorsa X e' specificata come segue:

programma*opzione: impostazione/valore

Pertanto, l'esempio riportato sopra dovrebbe essere abbastanza autoesplicativo. Non ci si lasci spaventare dalla riga "font"; in X, i caratteri sono sempre specificati in questo modo.


top

Torna all'indice

Server e gestori di finestre

Il sistema X Window e' stato progettato, fin dall'inizio, per essere in grado di lavorare in rete in maniera trasparente. I programmi X possono essere fatti girare su un server potente ed essere visualizzati da altre macchine client sparse nella rete. Questa capacita' puo' portare enormi vantaggi. Lo svantaggio principale di questo approccio e' una minore sicurezza rispetto all'esecuzione dei programmi in locale, che si unisce alla richiesta di una notevole ampiezza di banda. Di questo parleremo piu' tardi, nella sezione Esportare il display.

Anche quando X gira solamente sulla propria macchina viene utilizzato il modello client-server. Il server e' la parte relativa alla scheda video. Quando e' stato configurato X, specificando il tipo di scheda video, lo si e' informato sul server da utilizzare. La parte client e' costituita da tutti gli altri programmi che vengono lanciati sotto X. Un client speciale, chiamato gestore di finestre (il famigerato Window Manager), e' responsabile dell'aspetto e del comportamento della sessione X. Il gestore di finestre verra' trattato nel dettaglio in seguito.

Il lavoro del gestore di finestre consiste principalmente nel tracciare i contorni delle finestre all'interno delle quali vengono eseguiti i programmi e nel gestire l'input proveniente da tastiera e mouse. I primi gestori facevano questo e poco altro. Oggi, i gestori di finestre sono diventati molto piu' complessi e sono personalizzabili fino all'inverosimile. Sono dotati di ogni sorta di opzione, per rendere il vostro ambiente diverso da quello di chiunque altro.

Cio' che separa Linux da Windows, per quanto riguarda l'ambiente grafico, e' la possibilita', per Linux, di impiegare diversi gestori di finestre. Sotto Windows, si dispone unicamente di quello fornito col sistema. Su Linux, invece si puo' utilizzare uno qualsiasi dei tanti disponibili, ognuno con funzionalita' e aspetto differenti. Alcuni lo vedono come uno svantaggio, perché non si ha un aspetto grafico coerente. Tuttavia, la maggioranza degli utenti lo vede come un punto di forza, in quanto cio' permette di configurare il sistema a piacimento.


top

Torna all'indice

Selezionare un ambiente desktop

Per anni, Unix e' stato utilizzato quasi esclusivamente come sistema operativo per i server, con l'eccezione delle workstation professionali di alto profilo. La probabilita' che persone non dotate di certe competenze tecniche volessero usare un sistema di tipo Unix era veramente remota e l'interfaccia utente rifletteva appieno la situazione. Le interfacce grafiche tendevano ad essere estremamente spartane, studiate per permettere l'esecuzione di poche applicazioni necessariamente grafiche, quali i CAD e i programmi per il rendering delle immagini. La quasi totalita' delle operazioni sui file e dell'amministrazione del sistema veniva svolta tramite linea di comando. Diversi produttori (Sun Microsystems, Silicon Graphics, etc.) vendevano delle workstation su cui si tentava di dare un aspetto uniforme alla grafica, ma la varieta' dei kit di sviluppo impiegati dai programmatori finiva, inevitabilmente, per distruggere la coerenza del desktop. Una barra di scorrimento poteva apparire in modo diverso in due applicazioni differenti. I menu' potevano apparire in posizioni differenti. I programmi avevano caselle di opzione e bottoni differenti. I colori variavano enormemente e molto spesso erano definiti direttamente dal kit di sviluppo impiegato. Fino a quando gli utenti sono stati esclusivamente dei tecnici professionisti, tutto questo non ha avuto grande importanza.

Con l'avvento dei sistemi Unix-like liberi e la crescita, in numero e varieta', delle applicazioni grafiche, X ha recentemente guadagnato un'ampia base di utenti in ambito desktop. La maggior parte di essi, naturalmente, era abituata alla consistenza dell'aspetto e delle funzionalita' tipica di Windows e MacOS; la mancanza di questa coerenza delle applicazioni X divenne rapidamente una barriera alla loro diffusione. Per rispondere a questa esigenza, sono stati avviati due progetti opensource: il K Desktop Environment, o KDE e lo GNU Object Model Environment, piu' noto come GNOME. Ognuno dispone di un'ampia gamma di applicazioni, dalle barre degli strumenti e gestori di file ai giochi e suite da ufficio, tutte scritte con lo stesso kit di sviluppo e strettamente integrate, allo scopo di fornire un ambiente desktop uniforme e coerente.

Le differenze tra KDE e GNOME sono, in generale, piuttosto subdole. Ognuno si presenta in modo diverso dall'altro, poiché diversi sono i kit di sviluppo utilizzati. KDE e' basato sulle librerie Qt, della Troll Tech AS, mentre GNOME utilizza le GTK, un kit di sviluppo progettato originariamente per il programma di manipolazione delle immagini GNU (piu' noto come GIMP). Essendo progetti separati, KDE e GNOME hanno ognuno il proprio team di sviluppatori e progettisti, con differenti filosofie e stili di programmazione. Tuttavia, il risultato, in entrambi i casi, e' praticamente lo stesso: un ambiente desktop e una collezione di programmi consistenti e fortemente integrati. La funzionalita', l'usabilita' e la bellezza grafica sia di KDE sia di GNOME rivaleggiano egregiamente con tutto quanto e' disponibile per altri sistemi.

La cosa piu' bella, comunque, e' che questi ambienti desktop sono entrambi liberi. Si puo' averne uno o anche tutti e due (si', anche contemporaneamente). A ognuno la propria scelta. ;)

Oltre a GNOME e KDE, Slackware offre anche una vasta scelta di gestori di finestre. Alcuni sono studiati in modo da simulare altri sistemi operativi, altri per le possibilita' di personalizzazione, altri ancora per la velocita'. Ovviamente, si puo' installare e provare tutti quelli che si vuole per poi decidere quale vi piace di piu'.

Per rendere semplice la selezione del vostro desktop, Slackware offre un programma chiamato xwmconfig. Lanciatelo come segue:

$ xwmconfig

Figura 6-2. Il programma xwmconfig di Slackware.

Qui e' presentata una lista di tutti i gestori di finestre e ambienti desktop installati. Selezionare quello desiderato dalla lista. Ogni utente del sistema dovrebbe usare questo strumento, in quanto utenti diversi vorranno, presumibilmente, usare ambienti diversi, senza accontentarsi di quello predefinito che si e' selezionato durante l'installazione.

Vi bastera' poi far partire X e siete pronti a lavorare:

$ startx


top

Torna all'indice

Esportare il display

Come abbiamo detto, e' possibile far girare i programmi X su un computer e visualizzarli su un altro. Cio' ha un notevole impatto sulla banda, quindi e' sconsigliabile farlo se si e' dotati di un collegamento via modem o se la distanza da coprire e' considerevole. Inoltre, ci sono delle considerazioni per quanto riguarda la sicurezza: esportare un display non e' esattamente una operazione sicura, in quanto date la possibilita' all'intera rete di vedere cosa state facendo. Tuttavia, puo' essere molto utile in un contesto di rete locale.

Una precisazione importante da fare riguarda i termini "client" e "server". Quando si esporta un display, e' facile fare confusione su chi sia il client e chi il server. Ci riferiremo alla macchina che esegue i programmi X e che invia le informazioni al display come al "server". La macchina impiegata per visualizzare il programma in esecuzione remota e' invece il "client". Se parliamo, invece, della struttura di X, i termini sono invertiti. Il programma che mostra le informazioni e' chiamato "server", mentre ilprogramma in esecuzione e' chiamato "client". Non e' un concetto terribilmente complicato, ma e' bene puntualizzarlo.

Per questo esempio, faremo uso di due macchine: "golf" e' un server decisamente potente, collocato sotto una scrivania sul lato di una stanza affollata. E' dotato di parecchia RAM e ha un buon processore. Inoltre, ci sono molti programmi X al suo interno, ma non e' dotato di monitor. Dall'altra parte della stanza c'e' "couch", una vecchia macchina con poca RAM e dotata di un piccolo disco fisso. E' veramente troppo poco per far girare programmi pesanti come Netscape. Tuttavia, couch dispone di due punti forti: e' dotata di monitor ed e' collocata proprio di fianco al divano, in modo tale che non ci si debba alzare per usarla.L'ideale sarebbe poter far girare Netscape senza doversi alzare dal divano. L'esportazione del display e' la risposta. :)

Per prima cosa, si esegua il login su couch e si lanci X. Poi aprire il proprio programma di terminale preferito (xterm, rxvt, eterm, aterm o qualunque altro). Il primo passo da fare consiste nell'impostare la macchina client in modo che altre macchine possano usarla come display. Il programma usato per questo scopo si chiama xhost. Se si e' su una rete locale fidata, probabilmente non c'e' bisogno di preoccuparsi di chi puo' usare la macchina come display. In questo caso, si puo' lasciare l'accesso libero a chiunque:

couch$ xhost +
access control disabled, clients can connect from any host

D'altro canto, si potrebbe voler fare la stessa cosa su una rete insicura (Internet, una rete universitaria o qualunque altra non sia sotto il proprio pieno controllo). In questo caso non si vorra' che chiunque possa connettersi al proprio display. xhost permette di selezionare chi e' autorizzato a usare il display e chi no:

couch$ xhost + golf.foc
golf.foc being added to access control list

Ora, solo golf.foc (il server menzionato prima) puo' usare couch come display per i programmi. Si veda la lista degli accessi autorizzati lanciando xhost senza argomenti:

couch$ xhost
access control enabled, only authorized clients can connect
INET:golf.foc
INET:localhost
INET:couch.foc
LOCAL:

Questo e' tutto cio' che serve per quanto riguarda la parte client. Il prossimo passo e' impostare il server in modo che sappia che deve visualizzare i programmi non sul monitor, ma da qualche altra parte. Il server, infatti, non e' dotato di monitor (e quindi non sta eseguendo X) e deve, percio', sapere dove inviare i dati da visualizzare.

L'impostazione non e' poi cosi' difficile. Dopo essersi connessi, si deve modificare la variabile di ambiente $DISPLAY. Di solito, ad essa non e' assegnato alcun valore. Bastera' impostarla con il nome della macchina remota, seguito da un numero che rappresenta la sessione di X da usare come display. Normalmente, c'e' sempre in esecuzione una sola sessione, per cui non dovrebbero esserci problemi.

Ecco come andrebbe impostata la variabile $DISPLAY nel nostro esempio, usando come shell la bash. Altre shell usano una sintassi differente, ma il valore rimane sempre lo stesso.

golf$ export DISPLAY=couch.foc:0.0

E questo e' tutto cio' che serve per quanto riguarda la parte server. Ora, si rimanga connessi al server e si eseguano i programmi X al suo interno. Tutto l'output a schermo verra' inviato attraverso la rete alla macchina client, dall'altra parte della stanza.

golf$ netscape &

Questo comando esegue Netscape sul server, ma tutto verra' visualizzato su couch, in quanto la variabile DISPLAY e' impostata su esso. Non si avra' nemmeno bisogno di alzarsi dal vostro buon, vecchio terminale per far girare questi programmi. Nota importante: il server deve essere dotato di tutte le librerie di X e di tutti i file di supporto necessari all'esecuzione del programma. Non c'e', invece, bisogno né di un server X né di un file /etc/XF86Config, poiché nulla verra' visualizzato su di esso.

Una volta terminato, e' consigliabile rimuovere il server dalla lista delle macchine autorizzate a connettersi al proprio display:

couch$ xhost - golf.foc
golf.foc being removed from access control list

Si noti come questa e' un'ottima maniera di condividere le risorse a disposizione. Ma si consiglia cautela: si potrebbe ritrovarsi ad eseguire molti programmi X per molte macchine remote senza saperlo.


top

Torna all'indice

Sommario

In questo capitolo, si e' imparato a configurare il sistema X Window usando xf86config e XF86setup. Si dovrebbe anche aver capito cosa sono un ambiente desktop e un gestore di finestre, e come scegliere quale utilizzare fra quelli disponibili. Si dovrebbe essere in grado di esportare una sessione X su un'altra macchina. Di conseguenza si sara' perfettamente in grado di utilizzare il proprio ambiente grafico.


top
Torna all'indice

PREV
Capitolo 5 - Configurazione della Rete
NEXT
Capitolo 7 - Sequenza di Boot