GNU/Linux >> Znalost Linux >  >> Linux

6 fází procesu spouštění systému Linux (spouštěcí sekvence)

Stiskněte tlačítko napájení na vašem systému a po chvíli se zobrazí výzva k přihlášení k Linuxu.

Přemýšleli jste někdy o tom, co se děje v zákulisí od chvíle, kdy stisknete tlačítko napájení, dokud se neobjeví výzva k přihlášení k systému Linux?

Následuje 6 fází na vysoké úrovni typického procesu spouštění Linuxu.

1. BIOS

  • BIOS je zkratka pro Basic Input/Output System
  • Provádí některé kontroly integrity systému
  • Vyhledává, načítá a spouští zaváděcí program.
  • Hledá zavaděč na disketě, CD-ROM nebo pevném disku. Můžete stisknout klávesu (obvykle F12 nebo F2, ale to závisí na vašem systému) během spouštění systému BIOS a změnit sekvenci zavádění.
  • Jakmile je zavaděč detekován a nahrán do paměti, BIOS mu předá řízení.
  • Zjednodušeně řečeno, BIOS načte a spustí zavaděč MBR.

2. MBR

  • MBR znamená Master Boot Record.
  • Je umístěn v 1. sektoru spouštěcího disku. Obvykle /dev/hda nebo /dev/sda
  • MBR je menší než 512 bajtů. To má tři součásti 1) informace o primárním zavaděči v prvních 446 bajtech 2) informace o tabulce oddílů v dalších 64 bytech 3) kontrola ověření mbr v posledních 2 bytech.
  • Obsahuje informace o GRUB (nebo LILO ve starých systémech).
  • Zjednodušeně tedy MBR načte a spustí zavaděč GRUB.

3. GRUB

  • GRUB znamená Grand Unified Bootloader.
  • Pokud máte v systému nainstalováno více obrazů jádra, můžete si vybrat, který z nich se má spustit.
  • GRUB zobrazí úvodní obrazovku, několik sekund počká, pokud nic nezadáte, načte výchozí obraz jádra, jak je uvedeno v konfiguračním souboru grub.
  • GRUB má znalosti o souborovém systému (starší zavaděč Linuxu LILO souborovému systému nerozuměl).
  • Konfigurační soubor Grub je /boot/grub/grub.conf (na toto je odkaz /etc/grub.conf). Následuje ukázka grub.conf 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
  • Jak jste si všimli z výše uvedených informací, obsahuje obraz jádra a initrd.
  • Zjednodušeně řečeno GRUB pouze načte a spustí obrazy jádra a initrd.

4. Jádro

  • Připojí kořenový souborový systém, jak je uvedeno v „root=“ v grub.conf
  • Jádro spustí program /sbin/init
  • Protože init byl prvním programem spuštěným jádrem Linuxu, má id procesu (PID) 1. Proveďte příkaz ‚ps -ef | grep init’ a zkontrolujte pid.
  • initrd je zkratka pro Initial RAM Disk.
  • initrd používá jádro jako dočasný kořenový souborový systém, dokud není jádro zavedeno a není připojen skutečný kořenový souborový systém. Obsahuje také potřebné ovladače zkompilované uvnitř, což mu pomáhá při přístupu k oddílům pevného disku a dalšímu hardwaru.

5. Init

  • Podívá se do souboru /etc/inittab a určí úroveň běhu Linuxu.
  • Následují dostupné úrovně spuštění
    • 0 – zastavení
    • 1 – Režim jednoho uživatele
    • 2 – Víceuživatelský, bez NFS
    • 3 – Plný režim pro více uživatelů
    • 4 – nepoužité
    • 5 – X11
    • 6 – restartování
  • Init identifikuje výchozí initlevel z /etc/inittab a použije ji k načtení všech příslušných programů.
  • Spusťte ve svém systému příkaz „grep initdefault /etc/inittab“, abyste určili výchozí úroveň spuštění
  • Pokud se chcete dostat do problémů, můžete nastavit výchozí úroveň běhu na 0 nebo 6. Protože víte, co 0 a 6 znamená, pravděpodobně to neuděláte.
  • Výchozí úroveň běhu byste obvykle nastavili na 3 nebo 5.

6. Runlevel programy

  • Při spouštění systému Linux můžete vidět spouštění různých služeb. Může to například říkat „spouštění sendmailu…. OK". To jsou programy na úrovni běhu, spouštěné z adresáře úrovně běhu, jak je definováno vaší úrovní běhu.
  • V závislosti na vašem výchozím nastavení úrovně inicializace bude systém spouštět programy z jednoho z následujících adresářů.
    • Úroveň běhu 0 – /etc/rc.d/rc0.d/
    • Úroveň běhu 1 – /etc/rc.d/rc1.d/
    • Úroveň běhu 2 – /etc/rc.d/rc2.d/
    • Úroveň běhu 3 – /etc/rc.d/rc3.d/
    • Úroveň běhu 4 – /etc/rc.d/rc4.d/
    • Úroveň běhu 5 – /etc/rc.d/rc5.d/
    • Úroveň běhu 6 – /etc/rc.d/rc6.d/
  • Upozorňujeme, že pro tyto adresáře jsou k dispozici také symbolické odkazy přímo pod /etc. Takže /etc/rc0.d je propojen s /etc/rc.d/rc0.d.
  • V adresářích /etc/rc.d/rc*.d/ uvidíte programy, které začínají na S a K.
  • Programy začínající na S se používají při spouštění. S pro spuštění.
  • Programy začínající na K se používají během vypínání. K pro zabití.
  • V názvech programů jsou čísla hned vedle S a K. Jedná se o pořadové číslo, ve kterém by měly být programy spuštěny nebo ukončeny.
  • Například S12syslog má spustit démona syslog, který má pořadové číslo 12. S80sendmail má spustit démona sendmail, který má pořadové číslo 80. Program syslog bude tedy spuštěn před sendmailem.
  • li>

Tady to máš. To se děje během procesu spouštění Linuxu.


Linux
  1. spouštěcí skript utorrent / spouštění utorrentu při spouštění – Ubuntu 14.04 / 14.10

  2. Proces spouštění systému Linux:Průvodce, jak začít

  3. Linux – Spouštět aplikace Mac OS X na Linuxu?

  1. Linux – příkaz ke spuštění podřízeného procesu „offline“ (bez externí sítě) v systému Linux?

  2. Jak zrychlit proces spouštění Linuxu pomocí příkladů příkazů Startpar

  3. Proces spouštění Linuxu

  1. Stavy procesu Linuxu

  2. Proč spouštět příkaz prostředí Linux s '&'?

  3. Jak změnit pořadí spouštění/zavádění služeb Linuxu?