chapter03 flowchart scr15 1Il boot process è la procedura di inizializzazione del sistema, da quando si accende il computer a quando si può interagire.

Conoscere il boot process consente da un lato di risolvere alcuni problemi, dall'altro di mettera a punto alcuni comportamenti in base alle proprie richieste.

BIOS

Il primo passo è effettuato dal BIOS (Basic Input Output System) che initializza l'hardware, inclusi lo schermo e la tastiera, e fa il test della memoria principale. Questo processo è chiamato anche POST (Power On Self Test). Il software del BIOS è presente su una ROM (Read Only Memory) sulla scheda madre del sistema. 

Master Boot Records (MBR) e Boot Loader 

Il boot loader risiede nel disco principale di sistema, nel boot sector chiamato Master Boot Record. Per sistemi nuovi risiede invece nella partizione EFI. Nella prima fase il boot loader esamina la tabella di partizione per vedere quale è la partizione di boot, poi cerca il boot loader di seconda fase, ad es. GRUB, GRand Unified Boot loader, che risiede in /boot. Compare quindi uno splash screen per scegliere il sistema operativo, e viene caricata l'immagine del kernel nella RAM (Random Access Memory). L'immagine viene viene decompressa, poi viene passato il controllo al kernel. 

Il Kernel Linux 

Il boot loader carica il kernel e un file system iniziale basato sulla RAM (initramfs) in memoria, in modo che il kernel lo possa utilizzare immediatamente.  

LFS01 ch03 screen21

Il kernel, caricato sulla RAM, inizializza e configura la memoria del computer e tutto l'hardware collegato al sistema, incluso i processori, i sottosistemi I/O, i dispositivi di memoria, etc. Il kernel carica anche alcune applicazioni necessarie all'utente.

Initial RAM Disk - initramfs image

Il filesystem initramfs contiene i programmi necessari ad eseguire il mount del filesystem root, a fornire le funzionalità al kernel per la localizzazione dei dispositivi, la localizzazione dei drivers, il loro caricamento, il controllo di eventuali errori. Lo fa tramite una facility chiamata udev (for User Device). Il programma mount comunica al sistema operativo che il filesystem è pronto ed associa un punto della gerarchia (il mount point). Se tutto è a posto l'initramfs viene cancellato e viene eseguito il programma init dalla root (/sbin/init).

LFS01 ch03 screen22

Il programma init gestisce il mounting e lo invia al reale root filesystem. Se occorrono drivers speciali prima dell'accesso alla memoria di massa, devono essere presenti nell'initramfs.

/sbin/init and Services

Dopo aver fatto le operazioni precedenti, il kernel esegue il /sbin/init. E' il processo iniziale che inizia tutti gli altri processi per far funzionare il sistema. Molti dei processi del sistema dono tracciati nel file init;  le eccezioni sono i processi del kernel, che iniziano direttamente dal kernel per gestire i i dettagli interni del sistema operativo. Questo processo di startup si riferisce storicamente alle convenzioni che risalgono a V UNIX, che il sistema passa attraverso una sequenza di runlevels che contengono gli scripts che avviano e fermano i servizi. Ciascun runlevel supporta un modo differente di eseguire il sistema. In ciascun runlevel i servizi individuali possono essere predisposti per essere avviati o spenti. Le distributioni più attuali non usano il System V standard, ma supportano le convenzioni del System V per mantenere la compatibilità.

Text-Mode Login

Verso la fine del boot process init chiede il login (fatto da un programma che si chiama getty). Chiede username e password, ed eventualmente di scegliere la shell. La shell di default è bash (la GNU Bourne Again Shell), ma ne sono disponibili tante altre. Compare un prompt che indica che la shell è pronta per accettare i comandi; dopo che si digita un comando e si preme Enter il comando è eseguito e il prompt si ripresenta. Il terminale è disponibile usando ALT più un tasto funzione. Molte distribuzioni rendono disponibili sei terminali testuali e uno grafico. Se viene inizializzato anche l'ambiente grafico si può passare alla console premendo CTRL-ALT + funzione opportuna (F7 or F1). Se si inizia in text mode, potrebbe essere necessario digitare il comando startx per passare al modo grafico.

 

X Window System

X Window System è caricato alla fine del boot process. Il display manager mantiene traccia dei display disponibili e carica l'X server (così chiamato perché fornisce i servizi grafici alle applicazioni, chiamate anche X clients). Il display manager gestisce anche i logins grafici, e inizia l'ambiente grafico opportuno per fare il login. Un ambiente desktop è costituito da un session manager che inizializza e mantiene i componenti della sessione grafica, e fal window manager, che controlla il posizionamento e il movimento di finestre, barre di applicazioni ecc. Se il display manager non è avviato all'inizio si può avviare da console con il comando startx.