.


[*]
[*]
[*]

[*]
index


  
init, az első

Az init  egyike azon programoknak, melyek alapvetőek egy Linux rendszer működése szempontjából, ám többnyire nem veszünk róla tudomást. Egy jó Linux terjesztés egy olyan konfigurációjú init -tet tartalmaz, mely a legtöbb rendszeren megfelelően működik, és ekkor nem szükséges vele kapcsolatban tenni semmit. Általában csak akkor kell az init -tel foglalkozni, ha soros terminált vagy betárcsázó modemet kapcsolunk a géphez, vagy ha meg akarjuk változtatni az alapértelmezett futásszintet.

Amikor a kernel elindítja önmagát (azaz betöltődött a memóriába, elindult, inicializálta az eszközvezérlőket és az adatstruktúrákat), a rendszerindítás folyamatának rá eső részét egy felhasználói szintű program, az init  indításával fejezi be. Ezért az init  mindig a legelső processz, azaz processzazonosítója mindig 1. A kernel az init -et néhány olyan helyen keresi, ahol a rendszer korábbi változataiban lenni szokott, de egy Linux rendszeren az igazi helye az /sbin/init . Ha a kernel sehol sem találja az init -et, megpróbálja futtatni a /bin/sh -t, és ha azt sem találja, a rendszer indítása sikertelenül fejeződik be.

Amikor az init  elindul, először a rendszerindítási folyamatot fejezi be néhány adminisztratív feladat elvégzésével. Ilyen pl. a fájlrendszerek ellenőrzése, a /tmp  kitakarítása, különféle szolgáltatások elindítása és a getty  indítása minden terminálra illetve virtuális konzolra, ahonnét a felhasználók bejelentkezhetnek. (Lásd a 8. fejezetet.)

Amikor a rendszer megfelelően felállt, az init  újraindítja a getty -t azokra a terminálokra, ahonnét a felhasználók kijelentkeztek, hogy a következő felhasználó bejelentkezhessen. Az init  továbbá örökbe fogadja (adopt) az árva (orphan) processzeket: amikor egy processz gyermekprocesszt (child process) indít, és gyermeke előtt meghal, a gyermek azonnal az init  gyermekévé válik. Ez többféle technikai okból fontos, és jó tudni róla, mivel könnyebben érthetővé teszi a processzek listáját és fadiagrammjait.7.1

Az init -nek néhány változata érhető el. A legtöbb Linux terjesztés a sysvinit -et használja (Miquel van Smoorenburg alkotása), és amely a System V init -jén alapul. A UNIX BSD változatainak más az init  programja. Az alapvető különbség a futásszintekben van: a System V-nek vannak futásszintjei, a hagyományos BSD-nek nincsenek. Ez a különbség nem alapvető. A továbbiakban mi a sysvinit -tel foglalkozunk.

[*]
Linux rendszeradminisztrátorok kézikönyve (első javított változat; SAG-HU 0.6b1)