dal 2015 - visita n. 530
Seminario.08
Seminario.08

 

Avvio del Kernel


Dopo le prime fasi di boot giunge finalmente il momento dell'avvio del kernel, il cui inizio è spesso caratterizzato dallo scorrere di una lunga serie di messaggi sul video. Con riferimento, ancora, al primo grafico riportato nel paragrafo precedente ecco illustrate le fasi successive al bootloader.


Kernel

Quando il kernel viene caricato, inizializza e configura immediatamente la memoria del computer. Visualizza vari messaggi utili per capire e conoscere il proprio sistema. È possibile, in seguito, visualizzare questi messaggi, che intanto scorrono velocemente sul monitor, tramite il comando:

dmesg

Il kernel configura i vari elementi hardware collegati al sistema, inclusi tutti i processori e i sottosistemi I/O, oltre a tutti i dispositivi di memorizzazione.

Dopo l'inizializzazione di tutti i dispositivi del sistema da parte del kernel, viene creato un dispositivo root, montata la partizione root di sola lettura e liberata la memoria non utilizzata.
Il kernel risulta così caricato in memoria e operativo. Tuttavia, senza alcuna applicazione che consenta all'utente di fornire input significativo al sistema, il kernel non è molto utile.
Per configurare l'ambiente utente, il kernel esegue il comando /sbin/init.


/sbin/init

Il processo init, il cui file si trova in /sbin/init/, è definito il padre di tutti i processi, tramite il suo file di configurazione /etc/inittab, provvede a lanciare tutti i programmi che completano il processo di caricamento e configura l'ambiente per l'utente.
Innanzitutto esegue lo script /etc/rc.d/rc.sysinit che imposta il percorso, attiva lo swapping, controlla i filesystem e così via. In sostanza, si occupa di tutti i processi che vanno eseguiti all'inizializzazione del sistema. Per esempio, la maggior parte dei sistemi utilizza un orologio e rc.sysinit usa il file di configurazione /etc/sysconfig/clock per inizializzare l'orologio. Un'altro esempio è se dovete inizializzare processi speciali per le porte seriali, rc.sysinit può eseguire anche il file /etc/rc.serial.
In seguito il comando init esegue lo script /etc/inittab, che descrive il modo in cui il sistema va configurato per ogni runlevel SysV. Questo file specifica, tra le altre cose, che /etc/inittab imposta il runlevel predefinito e che /sbin/update va eseguito a ogni avvio dei runlevel. [4].
Successivamente il comando init configura la libreria delle funzioni sorgenti /etc/rc.d/init.d/functions per il sistema, che stabilisce come avviare o terminare un programma e come trovare il PID di un programma.
A questo punto il programma init avvia tutti i processi di background cercando nella relativa directory rc il runlevel specificato come predefinito in /etc/inittab. Le directory rc sono numerate per corrispondere ai runlevel che rappresentano. Per esempio /etc/rc.d/rc5.d/ è la directory per il runlevel cinque.




RunLevels

Un runlevel è una configurazione software del sistema che permette l'esistenza solo di un gruppo selezionato di processi. I processi avviati da init per ognuno di questi runlevel sono definiti nel file /etc/inittab. Init può essere in uno degli otto runlevel, [0-6, S/s].
Il runlevel viene cambiato da un utente privilegiato lanciando /sbin/telinit, il quale invia un segnale appropriato a init, indicandogli a quale runlevel passare.

I runlevel [0,1,6] sono riservati:


I runlevel [2-5] definiscono le normali configurazioni operative, secondo il seguente schema:

In generale, gli utenti utilizzano Linux ad un runlevel 3 o runlevel 5 (entrambe modalità multiutente). Solo alcuni utenti, a volte, personalizzano i runlevel 2 e 4 per soddisfare delle esigenze specifiche

Il runlevel S o s non è in realtà pensato per essere usato direttamente, ma più che altro per gli script che sono eseguiti quando si entra nel runlevel 1. Per maggiori informazioni su questo, si vedano le pagine di manuale di shutdown(1) e inittab(5).

Sono validi anche i runlevel 7-9, sebbene non realmente documentati. Ciò perché le varianti di Unix "tradizionali" non li usano.

Nei sistemi che utilizzano l'avvio stile SystemV, e' presente il file /etc/inittab. Normalmente questo file:








Le fasi di boot
Avvio del Kernel
Applicativi (parte 2)
Comandi Base (parte 7)


Il record di boot
Linux/Windows
Guida a Grub
Linux Howto - 1


Cap08.pdf
Lucidi 08 PDF



Tutto ciò che è stato per il passato ed è al presente, sarà ancora in futuro; ma se mutano i nomi e le apparenze delle cose in modo che chi non ha buon occhio non le riconosce, né sa pigliare regola o fare giudicio per mezzo di quella osservazione.
Francesco Guicciardini

Valid CSS!
pagina generata in 0.001 secondi