GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Una guida di base al processo di avvio di Linux

Ogni volta che accendi il tuo PC Linux, passa attraverso una serie di fasi prima di visualizzare finalmente una schermata di accesso che richiede il tuo nome utente o password. Ci sono 4 fasi distinte che ogni distribuzione Linux attraversa in un tipico processo di avvio.

In questa guida, evidenzieremo i vari passaggi eseguiti dal sistema operativo Linux dal momento dell'accensione al momento dell'accesso. Tieni presente che questa guida prende in considerazione solo GRUB2 bootloader e systemd init poiché sono attualmente utilizzati dalla stragrande maggioranza delle moderne distribuzioni Linux.

Il processo di avvio richiede i seguenti 4 passaggi di cui parleremo più in dettaglio:

  • BIOS Verifica dell'integrità (POST )
  • Caricamento del caricatore di avvio (GRUB2 )
  • Inizializzazione del kernel
  • Avvio di systemd , il genitore di tutti i processi

1. Il controllo dell'integrità del BIOS (POST)

Il processo di avvio viene in genere inizializzato quando un utente preme il accensione pulsante – se il PC era già spento – o riavvia il sistema utilizzando la GUI o la riga di comando.

Quando il sistema Linux si accende, il BIOS (Sistema di base di input e output ) si avvia ed esegue un Autotest all'accensione (POST ). Questo è un controllo di integrità che esegue una pletora di controlli diagnostici.

Il POST esamina l'operabilità hardware di componenti come l'HDD o SSD , Tastiera , RAM , USB porte e qualsiasi altro componente hardware. Se alcuni dispositivi hardware non vengono rilevati o se si verifica un malfunzionamento in uno qualsiasi dei dispositivi, come un HDD o SSD danneggiato, sullo schermo viene visualizzato un messaggio di errore che richiede l'intervento.

In alcuni casi, verrà emesso un segnale acustico soprattutto in caso di modulo RAM mancante. Tuttavia, se l'hardware previsto è presente e funziona come previsto, il processo di avvio procede alla fase successiva.

2. Il Bootloader (GRUB2)

Dopo il POST è completo e la costa è libera, il BIOS esamina l'MBR (Registro di avvio principale ) per le informazioni sul bootloader e sul partizionamento del disco.

Il MBR è un codice a 512 byte che si trova nel primo settore del disco rigido che di solito è /dev/sda o /dev/hda a seconda dell'architettura del tuo disco rigido. Tieni presente, tuttavia, che a volte il MBR può essere localizzato su una Live USB o DVD installazione di Linux.

Esistono 3 tipi principali di bootloader in Linux:LILO , GRUB, e GRUB2 . Il GRUB2 bootloader è l'ultimo e principale bootloader nelle moderne distribuzioni Linux e informa la nostra decisione di escludere gli altri due che sono diventati antiquati con il passare del tempo.

GRUB2 sta per GRand Unified Bootloader versione 2. Una volta che il BIOS individua il bootloader grub2, lo esegue e lo carica nella memoria principale (RAM ).

Il grub2 menu ti consente di fare un paio di cose. Ti consente di selezionare la versione del kernel Linux che desideri utilizzare. Se hai aggiornato il tuo sistema un paio di volte, potresti vedere elencate diverse versioni del kernel. Inoltre, ti dà la possibilità di modificare alcuni parametri del kernel premendo una combinazione di tasti della tastiera.

Inoltre, in una configurazione dual-boot in cui hai più installazioni di sistemi operativi, il menu di grub ti consente di selezionare in quale sistema operativo eseguire l'avvio. Il file di configurazione di grub2 è /boot/grub2/grub2.cfg file. L'obiettivo principale di GRUB è caricare il kernel Linux nella memoria principale.

3. Inizializzazione del kernel

Il kernel è il cuore di qualsiasi sistema Linux. Interfaccia l'hardware del PC con i processi sottostanti. Il kernel controlla tutti i processi sul tuo sistema Linux. Una volta che il kernel Linux selezionato è stato caricato dal bootloader, deve essere estratto automaticamente dalla sua versione compressa prima di intraprendere qualsiasi attività. Dopo l'autoestrazione, il kernel selezionato monta il file system di root e inizializza /sbin/init programma comunemente denominato init .

Inizia è sempre il primo programma da eseguire e gli viene assegnato l'ID processo o PID di 1. È il processo init che genera vari demoni e monta tutte le partizioni specificate in /etc/fstab file.

Il kernel monta quindi il disco RAM iniziale (initrd ) che è un filesystem di root temporaneo fino a quando non viene montato il filesystem di root reale. Tutti i kernel si trovano in /boot directory insieme all'immagine del disco RAM iniziale.

4.Avvio di Systemd

Il kernel finalmente carica Systemd , che sostituisce il vecchio SysV dentro. Sistema è la madre di tutti i processi Linux e gestisce tra l'altro il montaggio dei file system, l'avvio e l'arresto dei servizi solo per citarne alcuni.

Systemd utilizza /etc/systemd/system/default.target per determinare lo stato o la destinazione in cui il sistema Linux dovrebbe avviarsi.

  • Per una workstation desktop (con una GUI) il valore di destinazione predefinito è 5, che è l'equivalente del livello di esecuzione 5 per il vecchio SystemV init.
  • Per un server, la destinazione predefinita è multi-user.target che corrisponde al livello di esecuzione 3 in SysV init.

Ecco una ripartizione dei target di sistema:

  • poweroff.target (runlevel 0) :Spegni o Arresta il sistema.
  • rescue.target (runlevel 1) :avvia una sessione di shell di ripristino.
  • target multiutente (runlevel 2,3,4) :Configura il sistema su un sistema multiutente non grafico (console).
  • graphical.target (runlevel 5) :consente di impostare il sistema per utilizzare un'interfaccia grafica multiutente con i servizi di rete.
  • reboot.target (runlevel 6) :riavvia il sistema.

Per controllare la destinazione corrente sul tuo sistema, esegui il comando:

$ systemctl get-default

Puoi passare da una destinazione all'altra eseguendo il seguente comando sul terminale:

$ init runlevel-value

Ad esempio, init 3 configura il sistema in uno stato non grafico.

L'inizializzazione 6 comando riavvia il sistema e init 0 spegne il sistema. Assicurati di invocare il comando sudo quando vuoi passare a questi due target.

Il processo di avvio termina una volta systemd carica tutti i demoni e imposta il valore di destinazione o del livello di esecuzione. È a questo punto che ti viene richiesto il tuo nome utente e password su cui puoi accedere al tuo sistema Linux.


Ubuntu
  1. Processo di avvio di Linux:una guida per iniziare

  2. Linux – Init Process:antenato di tutti i processi?

  3. Il kernel Linux non si aggiorna alla 2.35.25?

  4. Qual è l'attuale sorgente del kernel Linux?

  5. I thread del kernel di Linux sono davvero processi del kernel?

comando sysctl in Linux

Linux, GPU AMD, schermo nero all'avvio

Guida completa alla registrazione di Linux

Come uccidere o terminare un processo Linux:la guida definitiva

Una guida al file system '/proc' in Linux

6 fasi del processo di avvio di Linux (sequenza di avvio)