Processo di avvio di Linux: cosa dovresti sapere

Sei mai stato curioso delle diverse fasi di Linux, un sistema operativo open source? Conoscere l'intero processo di avvio può aiutarti a risolvere i problemi, soprattutto se sei l'amministratore.

Cosa succede dietro le quinte quando si accende il dispositivo? Continuate a leggere per scoprirlo.

BIOS

Il BIOS (Basic Input / Output System) è un firmware di basso livello memorizzato su un piccolo chip di memoria nella scheda madre del tuo computer. Questo firmware aiuta il processo di avvio e gestisce il flusso di dati tra la macchina e altri dispositivi collegati, come un mouse, una stampante e una scheda video.

BIOS del processo di avvio di Linux

La funzione principale del BIOS, mostrata sopra, è eseguire il Power-On Self Test (POST). Questo test verifica l'operabilità dell'hardware del sistema e trova il settore di avvio, che contiene il software necessario per il resto del processo. Se il POST ha esito positivo, il BIOS caricherà il passaggio successivo, il caricatore di avvio Stage One, nella RAM del sistema.

Se il POST non ha esito positivo, il BIOS restituirà un codice che è possibile utilizzare per la risoluzione dei problemi.

Caricatore di avvio della fase uno

Il primo stadio del boot loader – chiamato Master Boot Record (MBR) o Guided Partition Table (GPT) – è progettato per rendere il programma online.

L'MBR è un semplice software senza comprensione integrata dei file system. Di conseguenza, sarà sempre necessario memorizzare il caricatore di avvio della fase due tra l'MBR e la prima partizione sul disco rigido.

Una volta che l'MBR rileva il boot loader della fase due, passa il controllo.

Caricatore di avvio fase due

Il compito del boot loader della fase due è trovare il kernel e caricarlo in memoria.

La maggior parte delle divisioni Linux utilizzerà uno dei tre caricatori di avvio diversi: GRUB, GRUB2 o LIL. Molto probabilmente vedrai GRUB2, rappresentato di seguito, in quanto è il più recente.

Linux Boot Process Grub2

Una volta che il boot loader ha trovato un kernel e lo ha caricato nella RAM, passa il controllo. Invia anche un'immagine del file system del dispositivo che il kernel può utilizzare per trovare i moduli.

nocciolo

Poiché tutti i kernel esistono in un formato compresso per risparmiare spazio sul disco rigido, la prima cosa che farà una volta dato il controllo è l'estrazione automatica. Quindi monterà la versione dell'immagine del file system ricevuta dal caricatore di avvio.

Il kernel rileverà l'hardware del sistema e passerà sopra l'immagine al file root sul disco.

init (systemd)

Successivamente, il kernel avvierà il sistema di inizializzazione (init), il primo processo che genera tutti i processi necessari per il processo di avvio. Sulla maggior parte dei sistemi, questo sarà systemd.

La funzione principale di Systemd è lanciare tutti i demoni – processi e servizi in background – necessari per far funzionare il sistema. Questi servizi continueranno a essere eseguiti dopo l'inizializzazione e gestiranno i processi di sistema essenziali come la registrazione di vari messaggi di sistema, il monitoraggio dei dispositivi e la garanzia che il file system sia sincronizzato con la memoria di sistema.

Se sei curioso di sapere quali servizi systemd è in esecuzione, eseguendo il comando systemctl da solo verrà restituito un elenco completo.

È inoltre possibile utilizzare systemd per avviare altri servizi all'avvio utilizzando una combinazione del comando systemctl e del servizio che si desidera avviare. Ad esempio, se si desidera che il sistema controlli lo stato di NFS, è possibile digitare systemctl status nfs-server.service. È inoltre possibile avviare, arrestare, abilitare o disabilitare un servizio con una combinazione di systemctl e uno di questi comandi.

runlevel

Il livello di esecuzione è uno stato di INIT e il sistema definisce quali servizi sono in esecuzione. Il kernel standard di Linux supporta sette diversi runlevel:

  • 0: Arresto del sistema, pronto per essere spento
  • 1: Modalità utente singolo
  • 2: Modalità multipla utente, nessun file system di rete
  • 3: Modalità utente multipla che utilizza l'interfaccia della durata dei comandi anziché quella utente grafica
  • 4: Definito dall'utente
  • 5: Modalità utente multipla, utilizzando l'interfaccia utente grafica che la maggior parte dei sistemi Linux avvierà per impostazione predefinita
  • 6: Reboot

Runlevel Init processo di avvio Linux

Se è necessario modificare il runlevel per qualsiasi motivo, INIT sarà responsabile della sua modifica utilizzando il comando telinit, mostrato sopra.

Interruzione del processo di avvio

Questa suddivisione è semplicemente una panoramica del processo di avvio di Linux e lascia fuori alcuni dei dettagli più fini. Tuttavia, dovrebbe fornirti le informazioni necessarie per risolvere eventuali problemi che potresti incontrare.

Questo articolo è utile?