11. Una giornata nei panni di un sistema X

Questo è un esempio di come procede una tipica sessione GNOME in un ambiente desktop moderno su un sistema Linux. Le cose funzionano in maniera simile ad altri ambienti, fermo restando che il sistema alla base sia X.

Quando un sistema Linux fa partire X, il server X si avvia e inizializza il dispositivo grafico, aspettando richieste dai client. Per primo parte un programma chiamato gnome-session e inizializza la sessione di lavoro. Una sessione include cose come applicazioni usate di frequente, la loro posizione su schermo e cose simili. Poi viene avviato il pannello. Il pannello appare in fondo (di solito) ed è una specie di cruscotto per un ambiente a finestre. Permetterà di lanciare programmi, vedere quali sono in esecuzione e di controllare l'ambiente di lavoro. Poi si avvia il window manager. Visto che stiamo usando GNOME potrebbe essere uno dei tanti, ma in questo caso assumiamo che sia Sawfish. Infine viene avviato il file manager (gmc o Nautilus). Il file manager gestisce la presentazione delle icone del desktop. A questo punto l'ambiente GNOME è pronto.

Fin qui tutti i programmi che sono stati avviati sono client, che si connettono al server X. Nel caso specifico il server X risiede sullo stesso computer, ma come abbiamo visto prima ciò non è necessario.

Apriamo un terminale xterm per scrivere qualche comando. Quando clicchiamo sull'icona xterm, il pannello fa partire l'applicazione xterm. È un'altra applicazione client X, quindi essa si avvia, si connette al server X e comincia a visualizzare i suoi elementi. Quando il server X assegna lo spazio su schermo ad xterm, fa in modo che il window manager (Sawfish) decori la finestra con una bella barra del titolo e decida dove essa debba apparire sullo schermo.

Ora navighiamo un po'. Clicchiamo sull'icona di Netscape sul pannello e parte un browser. Bisogna ricordare che questo browser non usa le librerie di GNOME né il toolkit Gtk. Sembra un po' fuori luogo... inoltre non interagisce in maniera molto fluida con il resto dell'ambiente. Ora apriamo il menu "File". Motif fornisce i controlli che appaiono sullo schermo, quindi è compito della libreria di Motif quello di usare la libreria Xlib per disegnare su schermo i componenti necessari a visualizzare il menu e fare in modo che si possa selezionare l'opzione "exit" per chiudere l'applicazione.

Ora apriamo un foglio di calcolo Gnumeric e incominciamo a lavorarci. Ad un certo punto abbiamo bisogno di usare xterm, quindi ci clicchiamo sopra. Sawfish vede questa azione ed essendo incaricato della gestione delle finestre porta xterm in primo piano e gli concede il focus di modo che ci si possa lavorare.

Dopodiché, torniamo al nostro foglio di calcolo; avendo finito di modificarlo vorremmo stampare il nostro documento. Gnumeric è un'applicazione GNOME, quindi può usare gli strumenti forniti dall'ambiente GNOME. Quando stampiamo Gnumeric richiama la libreria gnome-print, che comunica effettivamente con la stampante e produce la copia su carta di cui ho bisogno.