Capitolo 11. I file di avvio del sistema: init sysv

Sommario
11.1. In principio fu init
11.2. I runlevel

Nella tradizione Unix esistono due diversi schemi di avvio del sistema: lo schema BSD e lo schema "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.

11.1. In principio fu init

All'avvio del sistema, subito dopo aver configurato ogni cosa 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 (inittab(5)), 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, ed è l'unico processo in grado di 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 marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/