|
Quello che avviene all'accensione del pc e al boot del
sistema operativo in dettaglio è argomento che lascio
volentieri descrivere a chi è più preparato
di me.
In poche parole, si possono distinguere 3 fasi:
- inizializzazione del bios e test del processore
- caricamento del kernel
- avvio del system v.
Dopo il montaggio del file system viene eseguito il processo
init.
Il processo INIT (/sbin/init) è il processo padre
di tutti i processi; è un file eseguibile che parte
automaticamente all'avvio del sistema.
Init determina quali siano i processi da avviare in base
al contenuto di /ETC/INITTAB, il quale a sua volta fa riferimento
a una serie di script contenuti solitamente nella directory
/etc/rc.d/.
L'argomento di questo breve articolo è la configurazione
del file /ETC/INITTAB
attraverso l'esempio proposto di seguito:
# INIZIO /ETC/INITTAB #
# inittab Questo file descrive come il processo INIT dovrebbe
# configurare il sistema in un certo runlevel
# Autore: Miquel van Smoorenburg,
# Modificato per RHS Linux da Marc Ewing e Donnie Barnes
# Il runlevel di default. I runlevel usati da RHS sono:
# 0 - ferma (non selezionarlo di default)
# 1 - modalità singolo utente
# 2 - multiutente, senza NFS (il solito del 3, se non sei
in rete)
# 3 - modalità multiutente completa
# 4 - non utilizzato
# 5 - X11 (cioè con interfaccia grafica)
# 6 - riavvia (non selezionarlo di default)
# Impostiamo il runlevel di default; in questo caso partirà
in modalità
# multiutente completa con interfaccia a caratteri.
# Il formato è id:runlevel:azione:processo.
id:3:initdefault:
# Inizializzazione del sistema.
# Viene avviato lo script /etc/rc.d/rc.sysinit (imposta
l'hostname
# della macchina, monta la directory /proc e la root in
sola
# lettura, attiva lo swap, verifica il file system e le
dipendenze).
si::sysinit:/etc/rc.d/rc.sysinit
# Di seguito vengono indicate le directory il cui contenuto
viene
# eseguito alla partenza in base al runlevel scelto.
# Wait indica che il processo sarà avviato quando
si entra nel
# runlevel e init attenderà la sua terminazione.
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Blocca il CTRL-ALT-DELETE
# se non viene commentato, permette di riavviare il pc premendo
i tasti
# ctrl+alt+canc.
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# Quando il gruppo di continuità avverte della mancanza
di tensione,
# si presuppone che abbiamo ancora alcuni minuti di autonomia.
Impostiamo
# lo shutdown a 2 minuti da quel momento.
# Si suppone ovviamente di avere il demone powerd installato
e il gruppo di
# continuità funzionante.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure;
System Shutting Down"
# Se in questi 2 minuti la tensione è tornata, lo
shutdown è cancellato.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored;
Shutdown Cancelled"
# Indica i terminali attivi e con quali runlevel possono
essere avviati.
# Respawn indica che il processo sarà riavviato quando
termina.
# In questo caso il 2° terminale può partire
solo con runlevel 3, mentre
# il 6° è disabilitato.
1:2345:respawn:/sbin/mingetty tty1
2:3:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
# 6:2345:respawn:/sbin/mingetty tty6
# Lancia xdm per il runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
# FINE /ETC/INITTAB #
|