Capitolo 12. I file di avvio del sistema: init "System V"

Sommario
12.1. In principio fu init
12.2. I runlevel

Nella tradizione Unix esistono due diversi "stili" di avvio del sistema: lo stile BSD e lo stile "System V"; entrambi devono il loro nome al sistema Unix che li ha utilizzati per primo (lo Unix Berkeley Software Distribution e lo Unix System V della AT&T, rispettivamente). Lo stile di avvio BSD è il più semplice, ma quello System V, sebbene sia meno facile da comprendere (fatto che cambierà grazie alla lettura di questo capitolo), è estremamente più flessibile.

12.1. In principio fu init

All'avvio del sistema, subito dopo aver configurato tutti i componenti hardware e aver montato il filesystem della partizione root, il kernel lancia il programma /sbin/init[1]. init è il padre di tutti i processi del sistema, e ha il compito di portare il sistema al runlevel desiderato. Nel prossimo paragrafo daremo uno sguardo al concetto di runlevel (livello di esecuzione).

Il file di configurazione di init è /etc/inittab. C'è una pagina di manuale che ne descrive l'uso nei minimi dettagli (man inittab), ma qui vedremo solo alcune delle opzioni di configurazione.

La prima riga che dovrebbe attirare la vostra attenzione è la seguente:

si::sysinit:/etc/rc.d/rc.sysinit

Questa istruzione dice a init che, al momento dell'inizializzazione del sistema, lo script /etc/rc.d/rc.sysinit deve essere eseguito prima di ogni altra operazione. In seguito, init controlla la riga che contiene l'indicazione initdefault per determinare il runlevel predefinito:

id:5:initdefault:

In questo caso, init utilizzerà il 5 come runlevel predefinito. init inoltre sa che per portare il sistema al runlevel 5 dovrà eseguire questo comando:

l5:5:wait:/etc/rc.d/rc 5

Come potete notare, la sintassi di questi comandi è più o meno la stessa per tutti i runlevel.

init ha anche il compito di riavviare (respawn) determinati servizi, e solo lui può farlo. Questo avviene, ad esempio, per tutti i programmi di login che girano in ciascuna delle 6 console virtuali[2]. Questo, ad esempio, è il comando relativo alla seconda console virtuale:

2:2345:respawn:/sbin/mingetty tty2

Note

[1]

Ora sapete perché mettere la directory /sbin su un filesystem diverso da root è una pessima idea :-)

[2]

Modificando il file /etc/inittab potete, se lo desiderate, aumentare fino a un massimo di 64 il numero delle console virtuali, oppure ridurlo, seguendo sempre la stessa sintassi. Ma non dimenticate che anche X gira su una console virtuale, quindi lasciategliene almeno una!


Tux on Star from MandrakeSoft Linux è un trademark registrato di Linus Torvalds. Tutti gli altri copyright e trademark appartengono ai rispettivi proprietari.
A meno che non sia specificato diversamente, tutto il contenuto di queste pagine e tutte le immagini sono Copyright MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/