Il boot di un sistema Linux prevede i seguenti step principali:
1- All'accensione il BIOS su ROM non volatile definisce l'ordine dei device da utilizzare per effettuare il boot.
2- Il BOOT SECTOR del primo device di boot contiene il codice (o i riferimenti su dove trovarlo) del loader che esegue il bootstrap del sistema operativo.
Nel caso di Linux il più diffuso loader è GRUB, una vecchia alternativa evoluta è LILO.
3- Il loader lancia il caricamento del kernel di Linux, che si copia in memoria ed esegue i controlli e il riconoscimento dell'hardware presente.
4- A fine caricamento il kernel esegue il processo init, padre di tutti i processi, che gestisce il caricamento di tutti gli altri programmi da eseguire per completare il boot.
L'ultima operazione eseguita dal kernel (4) alla fine del suo caricamento è il lancio del processo init, il padre di tutti i processi.
Da questo momento tutto il codice eseguito lavora in user space (in kernel space lavorano solo il kernel e i suoi moduli).
L'init, tramite il suo file di configurazione /etc/inittab, provvede a lanciare tutti i programmi che completano il processo di caricamento.
approfondimenti e dettagli: Init e runlevels.
In alcune distribuzioni tipo Ubuntu o derivate sembra ( da approfondire ) che il processo di boot Init sia stato sostituito da UPSTART un concetto un po' diverso....
per ora ho trovato questo link : http://www.dynamicduo.it/ilfornaio/2007/03/21/ed-oggi-parliamo-di-upstart
Roberto Lissandrin