A rakodási folyamat linux 1

A folyamat áttekintése

A főbb állomásai loading:

  1. számítógépes rendszer firmware végrehajtja a kezdeti hitelesítése és inicializálása hardver.
  2. Ez betölti a BIOS firmware-t a RAM és végrehajtja a boot kódot egyik szakaszok egy előre meghatározott töltési eszköz, amely tartalmaz egy fázist 1 Linux betöltő. 1. fázis 2. fázis terhelések (fő mérete bootloader kód). Néhány rakodók lehet használni erre a közbenső szakasz (az úgynevezett fázis 1,5), mivel a jelenlegi meghajtók nagy térfogatú lehet leolvasni minden további nélkül kódot. Abban az esetben, UEFI boot futtatja a letöltött Service Partition (EFS), amely szerint kiválasztott beállítás indítási prioritását határozza meg a nem-felejtő memória. Lehetőség van letölteni nem csak egy dedikált rakodó, de lehet letölteni közvetlenül a Linux kernel (mag erre a célra kell gyűjteni EFI_STUB opció).
  3. Loader gyakran biztosít a felhasználó számára rendelkezésre álló menü opciók közül választhat. Kiválasztása után, vagy azt követően egy meghatározott időkorlát értéket betölti a kernelt.
  4. Loaded kernel kicsomagolása a memóriában, akkor beállítja a rendszer funkcióit, mint például a munkamemória szükséges berendezések és kezelése oldalt, akkor teszi start_kernel () hívást.
  5. Ezt követően, a start_kernel () végzi az alap rendszer konfiguráció (megszakítást, a fennmaradó memória kezelése, az eszköz inicializálása, a járművezetők, és így tovább. D.), és előállítja az üresjárati folyamat. Manager és a tőlük függetlenül - ez a folyamat az init (futó felhasználói térben).
  6. Scheduler kezd hatékonyabban kezelni a rendszert, míg a mag mozdul a holtpontról.
  7. Az init folyamat végrehajtja a szükséges beállító parancsfájlokat az összes szolgáltatás és struktúrák, amelyek nem kapcsolódnak a szint a kernel, ami a felhasználói környezet jön létre, és a felhasználó bejelentkezési képernyő fognak nyújtani a rendszerben.

Ha a kikapcsolást, az init az úgynevezett szabályozott leállítását felhasználói szintű programok is, szerint a forgatókönyv. Ezt követően az init bezárja és a mag gyárt saját shutdown.







Amikor le BIOS-on keresztül: Boot Loader Phase befolyásolhatják az platformon. Mivel a korai szakaszában a terhelés nem függ az operációs rendszer boot folyamat rendszerint a következőképpen kezdődik:

  • Az x86 vagy x86-64. kódot egy boot partíció, szektor végre valós módban, és betölti az első szakaszban boot loader (mint általában - részben a LILO vagy GRUB).

Ettől a pillanattól kezdve betöltés folytatódik. Az első szakasz a kód betölti a többi rakodó, ami általában azt kérdezi, hogy milyen operációs rendszer (vagy típusától ülésén) a felhasználó akar futtatni. rakodó kód létrehozása a konfigurációs fájl /etc/lilo.conf (a LILO). amely meghatározza a rendelkezésre álló rendszerek. Ez a fájl tartalmazza többek között információt a boot partíció, és a helyét a kernel minden egyes ilyen rendszerek, valamint a Speciális rendszerindítási beállítások, ha be van állítva. Kiválasztja a megfelelő kernel betöltése a memóriába. minimális kezdeti fájlrendszer van konfigurálva Egy képfájl (initrd), majd együtt a megfelelő paramétereket vezérlés átkerül egy új operációs rendszer.

LILO GRUB, és van néhány különbség: [1]

  • LILO nem ismeri fel a fájlrendszert, ezért használja a közvetlen (nyers) ellensúlyozza a lemezen, és a BIOS-tól betölteni az adatokat. Ez betölti a menüt, majd ezután, választásától függően, letöltés akár 512 bájtos lemezszektorokat a rendszer alapján az MBR (például Microsoft Windows), a mag kép Linuxra. [1]
  • GRUB fordítva, érzékeli a közös fájlrendszer (például ext2, és ext3). [2] Mivel a GRUB az adatot a konfigurációs fájlban, de nem a boot rekordot, és a parancssori felület, gyakran könnyebb GRUB paraméterek javítására vagy módosítására, ha megfelelően konfigurálva, vagy sérült. [3]

Amikor elindítod a UEFI: nem kell verni magad külön fázisokra és elhelyezni őket a különböző helyeken a UEFI boot loader azonnal elindul védett módban (32-bit vagy 64-bit), és gyakorlatilag az összes terhelés azonnal rakodó fázis (figyelembe véve a szolgáltatás boot betöltő számára ). Ellenkező esetben a kernel boot és inicializálási folyamat eltér a kiviteli alakban a BIOS.

Egy másik módja, hogy letölthető Linux - DOS vagy Windows 9x. a Linux kernel teljesen helyettesíti futó példányát az operációs rendszer. Ez akkor lehet hasznos, ha a hardver és szoftver kell tartalmaznia, mivel léteznek megfelelő programok csak a DOS, de nem a Linux, mint a szabadalmaztatott szoftver gyártó és figyelemmel az üzleti titok. Az indító módszer nem különösebben fontos, mivel a Linux van vezetők a különböző hardver eszközök, bár a múltban nagyon hasznos volt.
Egy másik példa: ha a Linux egy adattároló eszköz, amely nem szánt letölthető a BIOS, a DOS vagy Windows letöltheti a megfelelő illesztőprogramokat, hogy megkerülje a BIOS korlátozás, majd töltse ki a Linux.







A Linux kernel kezeli a fő funkciók, mint például a memória kezelése. Feladatkezelő. IO. közötti kommunikációt, és a teljes rendszer ellenőrzése. Loading zajlik két szakaszból áll: az első kernel (a tömörített képfájl) betöltődik a memóriába, és kibontja, majd állítsa be olyan alapvető funkciók, mint a fő memória kezelése. Ezután a vezérlés átadódik az utóbbi időben a fő kernel elindítása folyamatban. Amikor a kernel teljes mértékben működőképessé válik (azaz. F. Loaded és végrehajtja a kódot), akkor megkeresi és elindítja az init folyamat, amely automatikusan beállítja a felhasználói tér és a folyamatok működéséhez szükséges a felhasználói környezet és az utolsó bejegyzés a rendszerbe. A kernel maga alvó módba, és készen áll a kihívásokra más folyamatok.

magtöltés lépés

A kernelnek rendszerint úgy valósul meg a képfájl tömörített formátumban zImage vagy bzImage zlib használatával. Ez tartalmazza a szülő program, amely elvégzi a minimális hardver konfiguráció, kibontja a képet teljes egészében a felső memória és a RAM-lemez tartók. ha van ilyen. [5] Ezután, végrehajt egy indítási kernel ./arch/x86/boot/head és startup_32 () eljárás (x86 processzor család).

Step dob kernel

nucleus start funkció (más néven svopper vagy eljárás 0) szervezi memóriakezelés (oldal asztal és egy oldalt memória egység) meghatározza a processzor típusát, és további funkciók (például, a jelenléte a matematikai társprocesszor), majd átvált a architektúra-független funkcionális Linux kernel hívja start_kernel ().

start_kernel () végzi a különböző inicializálási feladatokat. Ez beállítja megszakításkezelõkben (IRQ), akkor beállítja a memóriát, elindítja a folyamatot, az init (első felhasználói módban folyamat), majd futtatja tétlen feladat hívja cpu_idle (). Meg kell jegyezni, hogy a folyamat a kiindulási nucleus is tartóknak kezdeményező RAM-ROM ( «initrd»), amelyet korábban betöltött ideiglenes root fájlrendszert a terhelési fázis. Ez lehetővé teszi, hogy töltse meghajtó-modulok nélkül támaszkodva más fizikai eszközök és a járművezetők, és fenntartani a kis méret a sejtmagban. A gyökér fájlrendszer helyébe később keresztül pivot_root () hívást. amely leszáll az idő és a helyére igazi gyökér fájlrendszer, amint az utóbbi elérhetővé válik. Felhasználási ideiglenes memória rendszer ezután kiengedik.

Így a kernel inicializálja a készülék tartók említett rakodó fájlrendszer a „csak olvasható” módban, és elindítja a folyamatot a init (/ sbin / init), amelyet A eljárás első futó rendszer (azonosító PID = 1 folyamat). [1] A megfelelő kimeneteket üzenetek mag (felszerelésekor a fájlrendszer), és az init (indítási folyamat ugyanaz a neve). A mag végre a feldolgozást initrd inicializálás beállításokkal és eszközökkel, hogy felmászik egy root fájlrendszert. [1]

A cég szerint «Red Hat», a boot folyamat ezen szakaszában lehet a következőkben foglalhatók össze: [2]

Amikor a kernel betöltése után azonnal alaphelyzetbe állítja és konfigurálja a számítógép memóriájában, és konfigurálja a különböző hardver csatlakozik a rendszer, beleértve az összes processzort, alrendszer input-output, és a tároló eszközök. Ezután megkeresi a tömörített initrd egy előre meghatározott memóriahely kicsomagolja, tartók és tölti be az összes szükséges illesztőprogramokat. Ezután inicializálja virtuális eszközök kapcsolódnak a fájlrendszer, például LVM vagy RAID szoftver -massivy előtt szét initrd lemezképet, és engedje szabadon az összes memóriát által korábban elfoglalt a képeket. Ezután a rendszermag létrehoz egy gyökér eszköz, csatolja a root partíció csak olvasható, és felszabadítja a fel nem használt memóriát. Ekkorra a kernel betöltődik a memóriába, és működőképes. Azonban mivel nincs egyedi programozás értelmes bemenő adatokat a rendszerbe, akkor alig kell tenni.

Most, hogy magában foglalja a megszakítás-vezérlő is eltarthat a teljes ellenőrzést a rendszer, hogy az elővásárlási multitasking, és az init folyamat folytatásához betöltésekor a felhasználói környezet felhasználói térben.

Process init (csak UNIX System V típusú)

Init a szülő a folyamatok. A fő feladat -, hogy hozzon létre egy eljárás a szkriptet a / etc / inittab. Ez a fájl általában tartalmaz bejegyzéseket jelzi init spawn getty minden vonalon, amelyen a felhasználó bejelentkezik a rendszerbe. Továbbá azt is szabályozza az autonóm folyamatok által igényelt bármilyen rendszeren. A szintű teljesítményt - egy szoftver konfiguráció a rendszer, amely lehetővé teszi a csak egy előre meghatározott csoport folyamatok léteznek. Folyamatok init által generált minden egyes ilyen teljesítmény szinten. határozza meg az / etc / inittab. [6]

Valójában init szervezi és támogatja az összes felhasználói térben. amely magában foglalja ellenőrzése és szerelési fájlrendszerek indítási szolgáltatásokat, valamint a szükséges felhasználói váltson a felhasználói környezetet, amikor a rendszer indításakor befejeződött. Ez hasonló az init a Unix és BSD. ahonnan nem volt, de bizonyos esetekben ez a módosított vagy megváltoztatott. Egy tipikus Linux init rendszer paraméter ismert, mint a teljesítményt. jelentése 1-től 6, és meghatározzuk, mely területeket tartalmazza. Minden szinten a megvalósítás saját script, amelyek szabályozzák a különböző folyamatok létrehozására vagy eltávolítására ezen a szinten, és ezek a forgatókönyvek nélkülözhetetlennek tartják az indítási folyamatot. init szkriptek általában könyvtárakban tárolják nevekkel, mint az / etc / rc .... A fő szintű konfigurációs fájlja init - / etc / inittab. [7]

Indításkor, ellenőrzi, hogy az alapértelmezett szint a / etc / inittab ismertetjük. és ha nem - kéri a konzolra. Aztán továbbra is teljesíti az összes vonatkozó terhelési forgatókönyvek ezen a szinten, beleértve a modulbetöltés, ellenőrizze a fájlrendszer integritásának (melyet írásvédett), újra fel írható-olvasható, és a hálózati konfigurációt. [1]

Különösen szerint a Red Hat. init folyamat követi a következő séma szerint: [2]

  1. Úgy néz ki, sysinit forgatókönyv. amely „meghatározza az elérési utat a környezet váltja ki a csere. ellenőrzi a fájlrendszert, és teszi minden, ami szükséges elindítani a rendszert. Különösen a rendszer és a hardver órát, speciális eljárások a soros port, és így tovább. n.
  2. Akkor úgy néz ki, az init konfigurációs beállítása egy adott teljesítményt.
  3. Ezt követően, az init beállítja a forrás függvénykönyvtár a rendszer. Ez határozza meg, hogyan kell kezdeni, vagy távolítsa el a programot, és hogyan kell meghatározni a PID.
  4. Aztán kezdődik minden előírt folyamatokat, és létrehoz egy felhasználói bejelentkezési ülés.

Azt követően, hogy létrehozta az összes, az adott folyamat az init készenléti üzemmódba kapcsol, és vár egy három esemény:

  1. Normál vagy rendellenes terminációs szült folyamatok.
  2. Jel áramszünet.
  3. Kérése / sbin / telinit változtatni a futási szintet. [6]

Ez arra utal, hogy az init programot a UNIX System V init Más stílus programok másképp viselkednek.




Kapcsolódó cikkek