Opensuse: Il processo di avvio.

Opensuse come qualsiasi sistema linux o altro esegue una sequenza di avvio ben determinata dal momento di accensione del computer al momento in cui sia arriva alla finestra di login dell’utente.

Le fasi di avvio di un sistema linux generalmente sono:

Sequenza del Bios e caricamento del boot manager.
Il kernel.
Inittramfs (Initial Ram System).
Init.
La sequenza di avvio del Bios (Basic Input Output System) che parte quando viene acceso il computer esegue una serie di test hardware sugli eventuali dispositivi di boot quali hard disks, cdrom anche periferiche usb nelle mainboard moderne, una volta trovato il primo hard disk avviabile (bootable) il Bios legge l’ MBR (Master Boot Record) presente sul disco leggendo perciò il codice li presente avvia il boot manager.

Il boot manager è il programma che avvia ogni sistema operativo, in linux questo è di default Grub che negli anni ha sostituito il vecchio LILO, grub carica il kernel e initrd in memoria e successivamente avvia il kernel.

Il kernel (/boot/vmlinux che non è altro che un link simbolico a /boot/vmlinux-kernel_versione) viene decompresso e si organizza per continuare l’avvio (boot) del sistema operativo.

Il kernel controlla e predispone la console (Il Bios, registra la scheda grafica e l’output della risoluzione video dello schermo), poi legge i parametri del Bios e inizializza le interfacce hardware e le vari periferiche.

Vengono poi caricati i drivers, che sono parte del kernel stesso, controlla e gestisce l’hardware presente in base ai drivers conosciuti.

Inittramfs (Initial Ram System) è un archivio creato in formato cpio che viene caricato nella ram, provvede un sistema minimale linux che abilita l’esecuzione dei programmi prima che il filesystem di root venga caricato.

Inittramfs deve sempre caricare un eseguibile chiamato init che esegue appunto il programma init sul filesystem di root per permettere al processo di boot di avviarsi.

I sistemi opensuse utilizzano il modulo initrd, /boot/initrd è un link a /boot/initrd-kernel_versione ovvero il file che contiene l’archivio compresso cpio.

Il kernel carica il programma init contenuto in initramfs, questo è script della shell di linux che carica i moduli del kernel e monta il filesystem root, e successivamente avvia /sbin/init dalla root stessa.

Una volt controllato le partizioni e montato la root, il programma init carica /sbin/init che effettua il boot del sistema operativo avviando i suoi programmi e le eventuali configurazioni.

Al processo init è sempre assegnato il PID (process ID) uguale a 1, questo si affida al file /etc/inittab per l’ informazioni sulla configurazione e su quali processi avviare.

  1. Lascia un commento

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: