|
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.
|