7.5. Runlevel e XFree86

Nella maggior parte dei casi, l'installazione predefinita di Red Hat Linux configura una macchina ad avviarsi in un ambiente login grafico, conosciuto come runlevel 5. É possibile, tuttavia, effettuare un avvio nella modalitá utenti multipli di solo testo, chiamata anche come runlevel 3 iniziando una sessione X da li.

Per maggiori informazioni sui runlevel, consultare la Sezione 1.4.

Questa sezione riporta come XFree86 effettua un avvio nei runlevel 3 e 5.

7.5.1. Runlevel 3

Se vi trovate nel runlevel 3, è preferibile avviare una sessione X digitando il comando startx. startx è un front-end del programma xinit, che lancia il server XFree86 e connette a esso i client X. Poiché dovete già aver eseguito il login nel sistema al runlevel 3 per poter digitare i comandi, startx non avvia un display manager o non effettua le autenticazione degli utenti. Consultate la Sezione 7.5.2 per maggiori informazioni sui display managers.

Quando il comando startx entra in esecuzione, cerca nella home directory un file .xinitrc nella home directory dell'utente per definire l'ambiente desktop ed altri client X da avviare. Se non trova il file specificato, avvia al suo posto /etc/X11/xinit/xinitrc.

Lo script di default xinitrc cerca quindi i file definiti dall'utente e i file di sistema predefiniti, inclusi .Xresources, .Xmodmap e .Xkbmap nella home directory dell'utente, e i file Xresources, Xmodmap e Xkbmap nella directory /etc/X11. I file Xmodmap e Xkbmap, se presenti, sono usati dall'utility xmodmap per configurare la tastiera. Vengono letti i file Xresources per assegnare valori di default specifici ad applicazioni particolari.

Una volta impostate queste opzioni, lo script xinitrc esegue gli script presenti in /etc/X11/xinit/xinitrc.d. Fra gli script più importanti contenuti in questa directory vi è xinput, che configura le impostazioni, per esempio la lingua di default da usare.

Successivamente, lo script xinitrc tenta di eseguire .Xclients presente nella home directory dell'utente, e si rivolge a /etc/X11/init/Xclients nel caso in cui il primo non fosse disponibile. Lo scopo del file Xclients è di avviare l'ambiente desktop o, se possibile, anche solo un Window Manager di base. Lo script .Xclients nella home directory dell'utente avvia l'ambiente desktop o il Window Manager specificato dall'utente nel file .Xclients-default. Se .Xclients non è disponibile nella home directory dell'utente, lo script standard /etc/X11/init/Xclients cerca di avviare un altro ambiente desktop, prima con GNOME e successivamente con KDE seguito da twm.

L'utente viene riportato ad una sessione in modalitá di testo dopo aver effettuato il loggin out dal runlevel 3.

7.5.2. Runlevel 5

Quando il sistema effettua un avvio nel runlevel 5, viene lanciato un'applicazione speciale del client X. Un utente deve effettuare l'autenticazione usando il display manager prima che venga lanciato un ambiente desktop oppure un window manager.

A seconda degli ambienti desktop installati sul vostro sistema Red Hat Linux, sono disponibili tre diversi display manager per la gestione dell'autenticazione utente.

Quando il sistema entra nel runlevel 5, lo script prefdm determina il display manager preferito riferendosi al file /etc/sysconfig/desktop. Consultare il file /usr/share/doc/initscripts-<version-number>/sysconfig.txt (dove <version-number> é la versione del numero del pacchetto initscripts) per un elenco di opzioni disponibili per questo file.

I display manager fanno riferimento al file /etc/X11/xdm/Xsetup_0 per impostare la schermata di registrazione. Effettuata la registrazione nel sistema, lo script /etc/X11/xdm/GiveConsole assegna all'utente la proprietà della console. Successivamente, lo script /etc/X11/xdm/Xsession entra in esecuzione per compiere molti dei compiti di cui si occupa in genere lo script xinitrc all'avvio di X nel runlevel 3, incluse le impostazioni del sistema e delle risorse utente, oltre all'esecuzione degli script nella directory /etc/X11/xinit/xinitrc.d.

I display manager gdm e kdm consentono agli utenti di specificare quale ambiente desktop utilizzare durante l'autenticazione selezionandolo dal menu Session (si puó accedere selezionando Pulsante menu principale [sul pannello] => Preferenze => Piú Preferenze => Sessioni). Se il display manager non specifica l'ambiente desktop, lo script /etc/X11/xdm/Xsession controllerà i file .xsession e .Xclients nella home directory utente per decidere quale ambiente desktop dovrà essere caricato. Come ultima risorsa viene usato il file /etc/X11/xinit/Xclients per selezionare un ambiente desktop oppure un Window Manager da usare allo stesso modo del runlevel 3.

Quando l'utente termina una sessione X sul display predefinito (:0) ed effettua l'uscita, lo script /etc/X11/xdm/TakeConsole si avvia e assegna nuovamente la proprietà della console all'utente di root. Il display manager originale, che è rimasto operativo dopo la registrazione dell'utente, prende il controllo eseguendo lo spawn di un nuovo display manager. Questo riavvia il server XFree86, visualizza una nuova finestra di login e avvia ancora l'intero processo.

L'utente viene riportato al display manager dopo aver effettuato un logging out da X dal runlevel 5.

Per ulteriori informazioni relative al controllo del display manager sull'autenticazione utente, consultate /usr/share/doc/gdm-<version-number>/README (dove <version-number> é il numero della versione per il pacchetto gdm installato) e la pagina man xdm.