GNU/Linux >> Linux Esercitazione >  >> Linux

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

Premi il pulsante di accensione sul tuo sistema e dopo pochi istanti vedrai la richiesta di accesso a Linux.

Ti sei mai chiesto cosa succede dietro le quinte dal momento in cui premi il pulsante di accensione fino a quando non viene visualizzata la richiesta di accesso a Linux?

Le seguenti sono le 6 fasi di alto livello di un tipico processo di avvio di Linux.

1. BIOS

  • BIOS sta per Basic Input/Output System
  • Esegue alcuni controlli di integrità del sistema
  • Cerca, carica ed esegue il programma del caricatore di avvio.
  • Cerca il boot loader in floppy, cd-rom o hard disk. Puoi premere un tasto (in genere F12 o F2, ma dipende dal tuo sistema) durante l'avvio del BIOS per modificare la sequenza di avvio.
  • Una volta che il programma del boot loader è stato rilevato e caricato nella memoria, il BIOS gli dà il controllo.
  • Quindi, in parole povere, il BIOS carica ed esegue il boot loader MBR.

2. MBR

  • MBR sta per Master Boot Record.
  • Si trova nel 1° settore del disco di avvio. Tipicamente /dev/hda o /dev/sda
  • L'MBR ha una dimensione inferiore a 512 byte. Questo ha tre componenti 1) informazioni sul caricatore di avvio principale nei primi 446 byte 2) informazioni sulla tabella delle partizioni nei prossimi 64 byte 3) controllo di convalida mbr negli ultimi 2 byte.
  • Contiene informazioni su GRUB (o LILO nei vecchi sistemi).
  • Quindi, in parole povere, MBR carica ed esegue il boot loader GRUB.

3. GRUB

  • GRUB sta per Grand Unified Bootloader.
  • Se hai più immagini del kernel installate sul tuo sistema, puoi scegliere quale eseguire.
  • GRUB mostra una schermata iniziale, attende alcuni secondi, se non inserisci nulla, carica l'immagine del kernel predefinita come specificato nel file di configurazione di grub.
  • GRUB ha la conoscenza del filesystem (il vecchio caricatore Linux LILO non capiva il filesystem).
  • Il file di configurazione di Grub è /boot/grub/grub.conf (/etc/grub.conf è un collegamento a questo). Quello che segue è un esempio grub.conf di CentOS.
  • #boot=/dev/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/boot/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.18-194.el5PAE)
              root (hd0,0)
              kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
              initrd /boot/initrd-2.6.18-194.el5PAE.img
  • Come puoi notare dalle informazioni di cui sopra, contiene il kernel e l'immagine initrd.
  • Quindi, in parole povere GRUB carica ed esegue semplicemente il kernel e le immagini initrd.

4. kernel

  • Monta il file system di root come specificato in “root=" in grub.conf
  • Il kernel esegue il programma /sbin/init
  • Poiché init è stato il primo programma ad essere eseguito dal kernel Linux, ha l'ID di processo (PID) di 1. Eseguire un 'ps -ef | grep init' e controlla il pid.
  • initrd sta per Initial RAM Disk.
  • initrd viene utilizzato dal kernel come file system radice temporaneo finché il kernel non viene avviato e viene montato il file system radice reale. Contiene anche i driver necessari compilati all'interno, che lo aiutano ad accedere alle partizioni del disco rigido e ad altro hardware.

5. Inizia

  • Guarda il file /etc/inittab per decidere il livello di esecuzione di Linux.
  • Di seguito sono riportati i livelli di esecuzione disponibili
    • 0 – arresto
    • 1 – Modalità utente singolo
    • 2 – Multiutente, senza NFS
    • 3 – Modalità multiutente completa
    • 4 – inutilizzato
    • 5 – X11
    • 6 – riavvia
  • Init identifica l'initlevel predefinito da /etc/inittab e lo usa per caricare tutto il programma appropriato.
  • Esegui 'grep initdefault /etc/inittab' sul tuo sistema per identificare il livello di esecuzione predefinito
  • Se vuoi metterti nei guai, puoi impostare il livello di esecuzione predefinito su 0 o 6. Poiché sai cosa significano 0 e 6, probabilmente potresti non farlo.
  • In genere imposti il ​​livello di esecuzione predefinito su 3 o 5.

6. Programmi a livello di esecuzione

  • Quando il sistema Linux si avvia, è possibile che vengano avviati vari servizi. Ad esempio, potrebbe dire "avvio di sendmail .... OK". Questi sono i programmi del livello di esecuzione, eseguiti dalla directory del livello di esecuzione come definita dal livello di esecuzione.
  • A seconda dell'impostazione predefinita del livello di init, il sistema eseguirà i programmi da una delle seguenti directory.
    • Esegui livello 0 – /etc/rc.d/rc0.d/
    • Esegui livello 1 – /etc/rc.d/rc1.d/
    • Esegui livello 2 – /etc/rc.d/rc2.d/
    • Esegui livello 3 – /etc/rc.d/rc3.d/
    • Esegui livello 4 – /etc/rc.d/rc4.d/
    • Esegui livello 5 – /etc/rc.d/rc5.d/
    • Esegui livello 6 – /etc/rc.d/rc6.d/
  • Si noti che ci sono anche collegamenti simbolici disponibili per queste directory direttamente in /etc. Quindi, /etc/rc0.d è collegato a /etc/rc.d/rc0.d.
  • Sotto le directory /etc/rc.d/rc*.d/, vedresti i programmi che iniziano con S e K.
  • I programmi che iniziano con S vengono utilizzati durante l'avvio. S per l'avvio.
  • I programmi che iniziano con K vengono utilizzati durante l'arresto. K per uccidere.
  • Ci sono numeri proprio accanto a S e K nei nomi dei programmi. Quelli sono il numero di sequenza in cui i programmi dovrebbero essere avviati o terminati.
  • Ad esempio, S12syslog avvia il demone syslog, che ha il numero di sequenza di 12. S80sendmail deve avviare il demone sendmail, che ha il numero di sequenza di 80. Quindi, il programma syslog verrà avviato prima di sendmail.

Ecco qua. Questo è ciò che accade durante il processo di avvio di Linux.


Linux
  1. script di avvio utorrent / esegui utorrent all'avvio – Ubuntu 14.04 / 14.10

  2. Processo di avvio di Linux:una guida per iniziare

  3. Linux:esegui applicazioni Mac Os X su Linux?

  4. Processo di avvio di Linux

  5. Perché eseguire un comando shell Linux con "&"?

Come eseguire Windows 95 su Linux

Come elencare i servizi di avvio all'avvio in Linux

Monitoraggio dei processi su Linux

Una guida di base al processo di avvio di Linux

Seq comando in Linux

Processo di avvio di Linux:spiegato passo dopo passo per i principianti